diff --git a/packages/ui/src/components/Visualization/ContextToolbar/Flows/FlowsList.test.tsx b/packages/ui/src/components/Visualization/ContextToolbar/Flows/FlowsList.test.tsx index debdf06aa..33782fb4d 100644 --- a/packages/ui/src/components/Visualization/ContextToolbar/Flows/FlowsList.test.tsx +++ b/packages/ui/src/components/Visualization/ContextToolbar/Flows/FlowsList.test.tsx @@ -2,10 +2,13 @@ import { act, fireEvent, render } from '@testing-library/react'; import { CamelRouteResource } from '../../../../models/camel'; import { EntityType } from '../../../../models/camel/entities'; import { VisualFlowsApi } from '../../../../models/visualization/flows/support/flows-visibility'; +import { + ActionConfirmationModalContext, + ActionConfirmationModalContextProvider, +} from '../../../../providers/action-confirmation-modal.provider'; import { VisibleFLowsContextResult } from '../../../../providers/visible-flows.provider'; import { TestProvidersWrapper } from '../../../../stubs'; import { FlowsList } from './FlowsList'; -import { ActionConfirmationModalContext } from '../../../../providers/action-confirmation-modal.provider'; describe('FlowsList.tsx', () => { let camelResource: CamelRouteResource; @@ -117,7 +120,7 @@ describe('FlowsList.tsx', () => { , ); - act(() => { + await act(async () => { fireEvent.click(wrapper.getByTestId('delete-btn-route-1234')); }); @@ -127,6 +130,52 @@ describe('FlowsList.tsx', () => { }); }); + it('should delete a flow when clicking the delete icon and then clicking delete', async () => { + const { Provider } = TestProvidersWrapper({ camelResource }); + const wrapper = render( + + + + + , + ); + + await act(async () => { + const deleteBtn = wrapper.getByTestId('delete-btn-route-1234'); + fireEvent.click(deleteBtn); + }); + + await act(async () => { + const actionConfirmationModalBtnConfirm = wrapper.getByTestId('action-confirmation-modal-btn-confirm'); + fireEvent.click(actionConfirmationModalBtnConfirm); + }); + + expect(camelResource.getVisualEntities()).toHaveLength(1); + }); + + it('should not delete a flow when clicking the delete icon and then clicking cancel', async () => { + const { Provider } = TestProvidersWrapper({ camelResource }); + const wrapper = render( + + + + + , + ); + + await act(async () => { + const deleteBtn = wrapper.getByTestId('delete-btn-route-1234'); + fireEvent.click(deleteBtn); + }); + + await act(async () => { + const actionConfirmationModalBtnCancel = wrapper.getByTestId('action-confirmation-modal-btn-cancel'); + fireEvent.click(actionConfirmationModalBtnCancel); + }); + + expect(camelResource.getVisualEntities()).toHaveLength(2); + }); + it('should toggle the visibility of a flow clicking on the Eye icon', async () => { let resId = ''; const visualFlowsApi = new VisualFlowsApi(jest.fn); @@ -148,7 +197,7 @@ describe('FlowsList.tsx', () => { const toggleFlowId = await wrapper.findByTestId('toggle-btn-route-1234'); - act(() => { + await act(async () => { fireEvent.click(toggleFlowId); }); diff --git a/packages/ui/src/components/Visualization/ContextToolbar/Flows/FlowsList.tsx b/packages/ui/src/components/Visualization/ContextToolbar/Flows/FlowsList.tsx index 6b440f740..7384fcda3 100644 --- a/packages/ui/src/components/Visualization/ContextToolbar/Flows/FlowsList.tsx +++ b/packages/ui/src/components/Visualization/ContextToolbar/Flows/FlowsList.tsx @@ -2,15 +2,18 @@ import { Button, Icon } from '@patternfly/react-core'; import { EyeIcon, EyeSlashIcon, TrashIcon } from '@patternfly/react-icons'; import { Table, Tbody, Td, Th, Thead, Tr } from '@patternfly/react-table'; import { FunctionComponent, useCallback, useContext, useRef } from 'react'; +import { ValidationResult } from '../../../../models'; import { BaseVisualCamelEntity } from '../../../../models/visualization/base-visual-entity'; +import { + ACTION_ID_CONFIRM, + ActionConfirmationModalContext, +} from '../../../../providers/action-confirmation-modal.provider'; import { EntitiesContext } from '../../../../providers/entities.provider'; -import { ActionConfirmationModalContext } from '../../../../providers/action-confirmation-modal.provider'; import { VisibleFlowsContext } from '../../../../providers/visible-flows.provider'; import { InlineEdit } from '../../../InlineEdit'; +import { RouteIdValidator } from '../../../InlineEdit/routeIdValidator'; import './FlowsList.scss'; import { FlowsListEmptyState } from './FlowsListEmptyState'; -import { RouteIdValidator } from '../../../InlineEdit/routeIdValidator'; -import { ValidationResult } from '../../../../models'; interface IFlowsList { onClose?: () => void; @@ -110,7 +113,7 @@ export const FlowsList: FunctionComponent = (props) => { text: 'All steps will be lost.', }); - if (!isDeleteConfirmed) return; + if (isDeleteConfirmed !== ACTION_ID_CONFIRM) return; camelResource.removeEntity(flow.id); updateEntitiesFromCamelResource();