diff --git a/ui-packages/packages/cloud-event-form/src/envelope/components/CloudEventCustomHeadersEditor/tests/CloudEventCustomHeadersEditor.test.ts.tsx b/ui-packages/packages/cloud-event-form/src/envelope/components/CloudEventCustomHeadersEditor/tests/CloudEventCustomHeadersEditor.test.ts.tsx index a46e735887..851aa1737f 100644 --- a/ui-packages/packages/cloud-event-form/src/envelope/components/CloudEventCustomHeadersEditor/tests/CloudEventCustomHeadersEditor.test.ts.tsx +++ b/ui-packages/packages/cloud-event-form/src/envelope/components/CloudEventCustomHeadersEditor/tests/CloudEventCustomHeadersEditor.test.ts.tsx @@ -97,6 +97,7 @@ describe('CloudEventCustomHeadersEditor tests', () => { act(() => { container = render().container; }); + expect(container).toMatchSnapshot(); expect(screen.getByText('Add Header')).toBeTruthy(); @@ -163,8 +164,6 @@ describe('CloudEventCustomHeadersEditor tests', () => { expect(result).not.toHaveProperty('key2', 'value2'); expect(result).toHaveProperty('key3', 'value3'); - container = deleteHeader(container, 0); - result = editorApiRef.current.getCustomHeaders(); expect(Object.keys(result)).toHaveLength(0); diff --git a/ui-packages/packages/custom-dashboard-list/src/embedded/__mocks__/EmbeddedCustomDashboardList.tsx b/ui-packages/packages/custom-dashboard-list/src/embedded/__mocks__/EmbeddedCustomDashboardList.tsx index 36a6a797ff..998ba593c6 100644 --- a/ui-packages/packages/custom-dashboard-list/src/embedded/__mocks__/EmbeddedCustomDashboardList.tsx +++ b/ui-packages/packages/custom-dashboard-list/src/embedded/__mocks__/EmbeddedCustomDashboardList.tsx @@ -14,10 +14,10 @@ * limitations under the License. */ -// import React from 'react'; +import React from 'react'; -// const MockedEmbeddedCustomDashboardList = (): React.ReactElement => { -// return <>; -// }; +const MockedEmbeddedCustomDashboardList = (): React.ReactElement => { + return <>; +}; -// export default MockedEmbeddedCustomDashboardList; +export default MockedEmbeddedCustomDashboardList; diff --git a/ui-packages/packages/runtime-tools-dev-ui-webapp/config/Jest-config/fileMocks.js b/ui-packages/packages/runtime-tools-dev-ui-webapp/config/Jest-config/fileMocks.js index be448f1f77..3e181c0ffe 100755 --- a/ui-packages/packages/runtime-tools-dev-ui-webapp/config/Jest-config/fileMocks.js +++ b/ui-packages/packages/runtime-tools-dev-ui-webapp/config/Jest-config/fileMocks.js @@ -2,6 +2,7 @@ const path = require('path'); module.exports = { process(src, filename) { + console.log('fil', filename); return `module.exports = ${JSON.stringify(path.basename(filename))}`; } }; diff --git a/ui-packages/packages/runtime-tools-dev-ui-webapp/config/Jest-config/test-setup.js b/ui-packages/packages/runtime-tools-dev-ui-webapp/config/Jest-config/test-setup.js index fa68854d2d..928f21afd4 100755 --- a/ui-packages/packages/runtime-tools-dev-ui-webapp/config/Jest-config/test-setup.js +++ b/ui-packages/packages/runtime-tools-dev-ui-webapp/config/Jest-config/test-setup.js @@ -1,6 +1,3 @@ -const enzyme = require('enzyme'); -const Adapter = require('@wojtekmaj/enzyme-adapter-react-17'); const { TextDecoder } = require('util'); global.TextDecoder = TextDecoder; -enzyme.configure({ adapter: new Adapter() }); diff --git a/ui-packages/packages/runtime-tools-dev-ui-webapp/jest.config.js b/ui-packages/packages/runtime-tools-dev-ui-webapp/jest.config.js new file mode 100644 index 0000000000..a6320eef62 --- /dev/null +++ b/ui-packages/packages/runtime-tools-dev-ui-webapp/jest.config.js @@ -0,0 +1,69 @@ +/* + * Copyright 2023 Red Hat, Inc. and/or its affiliates. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +module.exports = { + preset: 'ts-jest/presets/js-with-ts', + setupFiles: [ + './config/Jest-config/test-shim.js', + './config/Jest-config/test-setup.js', + 'core-js' + ], + coveragePathIgnorePatterns: [ + './src/static', + './tests/mocks/', + './src/components/contexts', + './src/components/pages/index.ts', + './src/channel/apis/index.ts', + './src/channel/CloudEventForm/', + './src/channel/CustomDashboardList/index.ts', + './src/channel/CustomDashboardView/index.ts', + './src/channel/FormDetails/index.ts', + './src/channel/FormsList/index.ts', + './src/channel/JobsManagement/index.ts', + './src/channel/ProcessDefinitionList/index.ts', + './src/channel/ProcessDetails/index.ts', + './src/channel/ProcessForm/index.ts', + './src/channel/ProcessList/index.ts', + './src/channel/TaskForms/index.ts', + './src/channel/TaskInbox/index.ts', + './src/channel/WorkflowForm/index.ts' + ], + coverageReporters: [ + [ + 'lcov', + { + projectRoot: '../../' + } + ] + ], + moduleFileExtensions: ['ts', 'tsx', 'js'], + globals: { + 'ts-jest': { + isolatedModules: true + } + }, + transformIgnorePatterns: [], + transform: { + '^.+.jsx?$': './config/Jest-config/babel-jest-wrapper.js', + '^.+.(ts|tsx)$': 'ts-jest', + '.(jpg|jpeg|png|svg)$': './config/Jest-config/fileMocks.js' + }, + testMatch: ['**/tests/*.(ts|tsx)'], + moduleNameMapper: { + '\\.(scss|sass|css)$': 'identity-obj-proxy', + 'monaco-editor': '/__mocks__/monacoMock.js' + } +}; diff --git a/ui-packages/packages/runtime-tools-dev-ui-webapp/package.json b/ui-packages/packages/runtime-tools-dev-ui-webapp/package.json index 93a7edf4f7..bbcdf60176 100644 --- a/ui-packages/packages/runtime-tools-dev-ui-webapp/package.json +++ b/ui-packages/packages/runtime-tools-dev-ui-webapp/package.json @@ -102,14 +102,13 @@ "@graphql-codegen/typescript-operations": "^2.5.13", "@graphql-codegen/typescript-react-apollo": "^3.3.7", "@testing-library/jest-dom": "^5.16.5", - "@types/enzyme": "^3.10.13", + "@testing-library/react": "^11.2.6", "@types/jest": "^26.0.24", "@types/react": "17.0.5", "@types/react-dom": "^17.0.20", "@types/react-router": "^5.1.20", "@types/react-router-dom": "^5.3.3", "@types/webpack": "^4.41.33", - "@wojtekmaj/enzyme-adapter-react-17": "^0.8.0", "apollo-server-express": "^2.26.1", "babel-jest": "^25.5.1", "concurrently": "^5.3.0", @@ -118,8 +117,6 @@ "css-loader": "^5.2.7", "css-minimizer-webpack-plugin": "^5.0.1", "cypress": "^12.17.0", - "enzyme": "^3.11.0", - "enzyme-to-json": "^3.6.2", "express": "^4.18.2", "file-loader": "^6.2.0", "filemanager-webpack-plugin": "^6.1.7", @@ -151,52 +148,6 @@ "webpack-dev-server": "^4.15.1", "webpack-merge": "^5.9.0" }, - "jest": { - "preset": "ts-jest/presets/js-with-ts", - "setupFiles": [ - "./config/Jest-config/test-shim.js", - "./config/Jest-config/test-setup.js", - "core-js" - ], - "coveragePathIgnorePatterns": [ - "./src/static", - "./tests/mocks/" - ], - "coverageReporters": [ - [ - "lcov", - { - "projectRoot": "../../" - } - ] - ], - "moduleFileExtensions": [ - "ts", - "tsx", - "js" - ], - "globals": { - "ts-jest": { - "isolatedModules": true - } - }, - "snapshotSerializers": [ - "enzyme-to-json/serializer" - ], - "transformIgnorePatterns": [], - "transform": { - "^.+\\.jsx?$": "./config/Jest-config/babel-jest-wrapper.js", - "^.+\\.(ts|tsx)$": "ts-jest", - "\\.(jpg|jpeg|png|svg)$": "./config/Jest-config/fileMocks.js" - }, - "testMatch": [ - "**/tests/*.(ts|tsx)" - ], - "moduleNameMapper": { - "\\.(scss|sass|css)$": "identity-obj-proxy", - "monaco-editor": "/__mocks__/monacoMock.js" - } - }, "lint-staged": { "*.{ts,tsx}": [ "pnpm run format", diff --git a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/channel/FormDetails/tests/FormDetailsGatewayApi.test.ts b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/channel/FormDetails/tests/FormDetailsGatewayApi.test.ts index bedde6984a..093ce82274 100755 --- a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/channel/FormDetails/tests/FormDetailsGatewayApi.test.ts +++ b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/channel/FormDetails/tests/FormDetailsGatewayApi.test.ts @@ -14,14 +14,16 @@ * limitations under the License. */ -import { getFormContent } from '../../apis/apis'; +import { FormContent } from '@kogito-apps/form-details/dist/api/FormDetailsEnvelopeApi'; +import { getFormContent, saveFormContent } from '../../apis/apis'; import { FormDetailsGatewayApi, FormDetailsGatewayApiImpl } from '../FormDetailsGatewayApi'; jest.mock('../../apis/apis', () => ({ - getFormContent: jest.fn() + getFormContent: jest.fn(), + saveFormContent: jest.fn() })); let gatewayApi: FormDetailsGatewayApi; @@ -37,4 +39,24 @@ describe('FormDetailsGatewayApi tests', () => { await gatewayApi.getFormContent(formName); expect(getFormContent).toHaveBeenCalledWith(formName); }); + + it('saveFormContent', async () => { + const formName = 'form1'; + const content: FormContent = { + source: '', + configuration: { + schema: '', + resources: { + scripts: { + name: 'test1' + }, + styles: { + padding: 'test2' + } + } + } + }; + await gatewayApi.saveFormContent(formName, content); + expect(saveFormContent).toHaveBeenCalledWith(formName, content); + }); }); diff --git a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/channel/apis/apis.tsx b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/channel/apis/apis.tsx index f909b2e2e8..e818de41e5 100755 --- a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/channel/apis/apis.tsx +++ b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/channel/apis/apis.tsx @@ -529,7 +529,7 @@ export const getCustomWorkflowSchema = ( response.paths['/' + workflowName].post.requestBody.content[ 'application/json' ].schema; - + /* istanbul ignore else*/ if (schemaFromRequestBody.type) { schema = { type: schemaFromRequestBody.type, diff --git a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/DevUI/DevUILayout/tests/DevUILayout.test.tsx b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/DevUI/DevUILayout/tests/DevUILayout.test.tsx index 9e4d880b04..0f5c668bf6 100644 --- a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/DevUI/DevUILayout/tests/DevUILayout.test.tsx +++ b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/DevUI/DevUILayout/tests/DevUILayout.test.tsx @@ -15,7 +15,7 @@ */ import React from 'react'; -import { mount } from 'enzyme'; +import { render } from '@testing-library/react'; import DevUILayout from '../DevUILayout'; import DevUIRoutes from '../../DevUIRoutes/DevUIRoutes'; import { ApolloClient } from 'apollo-client'; @@ -44,7 +44,7 @@ describe('DevUILayout tests', () => { }, isStunnerEnabled: false }; - const wrapper = mount( + const { container } = render( { ); - expect(wrapper.find('PageLayout')).toMatchSnapshot(); - + expect(container).toMatchSnapshot(); expect( - wrapper.exists('Link[data-ouia-navigation-name="processes-nav"]') + container.querySelector('[data-ouia-navigation-name="processes-nav"]') ).toBeTruthy(); expect( - wrapper.exists('Link[data-ouia-navigation-name="jobs-management-nav"]') + container.querySelector( + '[data-ouia-navigation-name="jobs-management-nav"]' + ) ).toBeTruthy(); expect( - wrapper.exists('Link[data-ouia-navigation-name="task-inbox-nav"]') + container.querySelector('[data-ouia-navigation-name="task-inbox-nav"]') ).toBeTruthy(); expect( - wrapper.exists('Link[data-ouia-navigation-name="forms-list-nav"]') + container.querySelector('[data-ouia-navigation-name="forms-list-nav"]') ).toBeTruthy(); expect( - wrapper.exists('Link[data-ouia-navigation-name="audit-nav"]') + container.querySelector('[data-ouia-navigation-name="audit-nav"]') ).toBeTruthy(); }); @@ -89,7 +90,7 @@ describe('DevUILayout tests', () => { }, isStunnerEnabled: false }; - const wrapper = mount( + const { container } = render( { ); - expect(wrapper.find('PageLayout')).toMatchSnapshot(); + expect(container).toMatchSnapshot(); expect( - wrapper.exists('Link[data-ouia-navigation-name="processes-nav"]') + container.querySelector('[data-ouia-navigation-name="processes-nav"]') ).toBeFalsy(); expect( - wrapper.exists('Link[data-ouia-navigation-name="jobs-management-nav"]') + container.querySelector( + '[data-ouia-navigation-name="jobs-management-nav"]' + ) ).toBeFalsy(); expect( - wrapper.exists('Link[data-ouia-navigation-name="task-inbox-nav"]') + container.querySelector('[data-ouia-navigation-name="task-inbox-nav"]') ).toBeFalsy(); expect( - wrapper.exists('Link[data-ouia-navigation-name="forms-list-nav"]') + container.querySelector('[data-ouia-navigation-name="forms-list-nav"]') ).toBeFalsy(); expect( - wrapper.exists('Link[data-ouia-navigation-name="audit-nav"]') + container.querySelector('[data-ouia-navigation-name="audit-nav"]') ).toBeTruthy(); }); @@ -134,7 +137,7 @@ describe('DevUILayout tests', () => { }, isStunnerEnabled: false }; - const wrapper = mount( + const { container } = render( { ); - expect(wrapper.find('PageLayout')).toMatchSnapshot(); + expect(container).toMatchSnapshot(); expect( - wrapper.exists('Link[data-ouia-navigation-name="processes-nav"]') + container.querySelector('[data-ouia-navigation-name="processes-nav"]') ).toBeTruthy(); expect( - wrapper.exists('Link[data-ouia-navigation-name="jobs-management-nav"]') + container.querySelector( + '[data-ouia-navigation-name="jobs-management-nav"]' + ) ).toBeTruthy(); expect( - wrapper.exists('Link[data-ouia-navigation-name="task-inbox-nav"]') + container.querySelector('[data-ouia-navigation-name="task-inbox-nav"]') ).toBeTruthy(); expect( - wrapper.exists('Link[data-ouia-navigation-name="forms-list-nav"]') + container.querySelector('[data-ouia-navigation-name="forms-list-nav"]') ).toBeTruthy(); expect( - wrapper.exists('Link[data-ouia-navigation-name="audit-nav"]') + container.querySelector('[data-ouia-navigation-name="audit-nav"]') ).toBeFalsy(); }); }); diff --git a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/DevUI/DevUILayout/tests/__snapshots__/DevUILayout.test.tsx.snap b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/DevUI/DevUILayout/tests/__snapshots__/DevUILayout.test.tsx.snap index defa4d53c9..b352cd7144 100644 --- a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/DevUI/DevUILayout/tests/__snapshots__/DevUILayout.test.tsx.snap +++ b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/DevUI/DevUILayout/tests/__snapshots__/DevUILayout.test.tsx.snap @@ -1,1057 +1,320 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`DevUILayout tests Snapshot test with Processing disabled 1`] = ` - - } - pageNavOpen={true} - withHeader={false} -> - +
} - isBreadcrumbWidthLimited={false} - isManagedSidebar={false} - isNotificationDrawerExpanded={false} - mainContainerId="main-content-page-layout-default-nav" - mainTabIndex={-1} - onNotificationDrawerExpand={[Function]} - onPageResize={[Function]} - sidebar={ - - } - theme="dark" - /> - } + data-ouia-safe="true" >
- - } - theme="dark" +
-
-
- - - -
-
- -
- - - - - -
+ Audit investigation + + + + +
- - +
+
+ `; exports[`DevUILayout tests Snapshot test with Tracing disabled 1`] = ` - - } - pageNavOpen={true} - withHeader={false} -> - +
} - isBreadcrumbWidthLimited={false} - isManagedSidebar={false} - isNotificationDrawerExpanded={false} - mainContainerId="main-content-page-layout-default-nav" - mainTabIndex={-1} - onNotificationDrawerExpand={[Function]} - onPageResize={[Function]} - sidebar={ - - } - theme="dark" - /> - } + data-ouia-safe="true" >
- - } - theme="dark" +
-
-
- - - -
-
- -
- - - - - -
+ Workflows + + +
  • + + Jobs + +
  • +
  • + + Tasks + +
  • +
  • + + Forms + +
  • +
  • + + Monitoring + +
  • +
  • + + Dashboards + +
  • + + +
    - - +
    +
    + `; exports[`DevUILayout tests Snapshot test with default props 1`] = ` - - } - pageNavOpen={true} - withHeader={false} -> - +
    } - isBreadcrumbWidthLimited={false} - isManagedSidebar={false} - isNotificationDrawerExpanded={false} - mainContainerId="main-content-page-layout-default-nav" - mainTabIndex={-1} - onNotificationDrawerExpand={[Function]} - onPageResize={[Function]} - sidebar={ - - } - theme="dark" - /> - } + data-ouia-safe="true" >
    - - } - theme="dark" +
    -
    -
    - - - -
    -
    - -
    - - - - - -
    + Workflows + + +
  • + + Jobs + +
  • +
  • + + Tasks + +
  • +
  • + + Forms + +
  • +
  • + + Monitoring + +
  • +
  • + + Dashboards + +
  • +
  • + + Audit investigation + +
  • + + +
    - - +
    +
    + `; diff --git a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/DevUI/DevUINav/tests/DevUINav.test.tsx b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/DevUI/DevUINav/tests/DevUINav.test.tsx index 00cc36c1e8..b8167874ef 100644 --- a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/DevUI/DevUINav/tests/DevUINav.test.tsx +++ b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/DevUI/DevUINav/tests/DevUINav.test.tsx @@ -15,14 +15,14 @@ */ import React from 'react'; -import { mount } from 'enzyme'; +import { render } from '@testing-library/react'; import DevUINav from '../DevUINav'; import { MemoryRouter } from 'react-router-dom'; import DevUIAppContextProvider from '../../../contexts/DevUIAppContextProvider'; describe('DevUINav tests::Process and Tracing enabled', () => { it('Snapshot testing with processes props', () => { - const wrapper = mount( + const { container } = render( { ); - expect(wrapper.find('DevUINav')).toMatchSnapshot(); + expect(container).toMatchSnapshot(); - const DevUINavWrapper = wrapper.findWhere( - (nested) => nested.key() === 'processes-nav' + const DevUINavWrapper = container.querySelector( + '[data-ouia-navigation-name="processes-nav"]' ); - - expect(DevUINavWrapper.exists()).toBeTruthy(); - expect(DevUINavWrapper.props().isActive).toBeTruthy(); + expect(DevUINavWrapper).toBeTruthy(); }); it('Snapshot testing with jobs management props', () => { - const wrapper = mount( + const { container } = render( { ); - expect(wrapper.find('DevUINav')).toMatchSnapshot(); + expect(container).toMatchSnapshot(); - const DevUINavWrapper = wrapper.findWhere( - (nested) => nested.key() === 'jobs-management-nav' + const DevUINavWrapper = container.querySelector( + '[data-ouia-navigation-name="jobs-management-nav"]' ); - - expect(DevUINavWrapper.exists()).toBeTruthy(); - expect(DevUINavWrapper.props().isActive).toBeTruthy(); + expect(DevUINavWrapper).toBeTruthy(); }); it('Snapshot testing with forms list props', () => { - const wrapper = mount( + const { container } = render( { ); - expect(wrapper.find('DevUINav')).toMatchSnapshot(); + expect(container).toMatchSnapshot(); - const DevUINavWrapper = wrapper.findWhere( - (nested) => nested.key() === 'forms-list-nav' + const DevUINavWrapper = container.querySelector( + '[data-ouia-navigation-name="forms-list-nav"]' ); - - expect(DevUINavWrapper.exists()).toBeTruthy(); - expect(DevUINavWrapper.props().isActive).toBeTruthy(); + expect(DevUINavWrapper).toBeTruthy(); }); it('Snapshot testing audit investigation link props', () => { - const wrapper = mount( + const { container } = render( { ); - expect(wrapper.find('DevUINav')).toMatchSnapshot(); + expect(container).toMatchSnapshot(); - const DevUINavWrapper = wrapper.findWhere( - (nested) => nested.key() === 'audit-nav' + const DevUINavWrapper = container.querySelector( + '[data-ouia-navigation-name="audit-nav"]' ); - - expect(DevUINavWrapper.exists()).toBeTruthy(); - expect(DevUINavWrapper.props().isActive).toBeTruthy(); + expect(DevUINavWrapper).toBeTruthy(); }); }); describe('DevUINav tests::Sections disabled', () => { it('Snapshot testing with processes props', () => { - const wrapper = mount( + const { container } = render( { ); - expect(wrapper.find('DevUINav')).toMatchSnapshot(); + expect(container).toMatchSnapshot(); expect( - wrapper.exists('Link[data-ouia-navigation-name="processes-nav"]') + container.querySelector('[data-ouia-navigation-name="processes-nav"]') ).toBeTruthy(); expect( - wrapper.exists('Link[data-ouia-navigation-name="jobs-management-nav"]') + container.querySelector( + '[data-ouia-navigation-name="jobs-management-nav"]' + ) ).toBeTruthy(); expect( - wrapper.exists('Link[data-ouia-navigation-name="task-inbox-nav"]') + container.querySelector('[data-ouia-navigation-name="task-inbox-nav"]') ).toBeTruthy(); expect( - wrapper.exists('Link[data-ouia-navigation-name="forms-list-nav"]') + container.querySelector('[data-ouia-navigation-name="forms-list-nav"]') ).toBeTruthy(); expect( - wrapper.exists('Link[data-ouia-navigation-name="audit-nav"]') + container.querySelector('[data-ouia-navigation-name="audit-nav"]') ).toBeFalsy(); }); it('Snapshot testing with jobs management props', () => { - const wrapper = mount( + const { container } = render( { ); - expect(wrapper.find('DevUINav')).toMatchSnapshot(); + expect(container).toMatchSnapshot(); expect( - wrapper.exists('Link[data-ouia-navigation-name="processes-nav"]') + container.querySelector('[data-ouia-navigation-name="processes-nav"]') ).toBeTruthy(); expect( - wrapper.exists('Link[data-ouia-navigation-name="jobs-management-nav"]') + container.querySelector( + '[data-ouia-navigation-name="jobs-management-nav"]' + ) ).toBeTruthy(); expect( - wrapper.exists('Link[data-ouia-navigation-name="task-inbox-nav"]') + container.querySelector('[data-ouia-navigation-name="task-inbox-nav"]') ).toBeTruthy(); expect( - wrapper.exists('Link[data-ouia-navigation-name="forms-list-nav"]') + container.querySelector('[data-ouia-navigation-name="forms-list-nav"]') ).toBeTruthy(); expect( - wrapper.exists('Link[data-ouia-navigation-name="audit-nav"]') + container.querySelector('[data-ouia-navigation-name="audit-nav"]') ).toBeFalsy(); }); it('Snapshot testing with forms list props', () => { - const wrapper = mount( + const { container } = render( { ); - expect(wrapper.find('DevUINav')).toMatchSnapshot(); + expect(container).toMatchSnapshot(); expect( - wrapper.exists('Link[data-ouia-navigation-name="processes-nav"]') + container.querySelector('[data-ouia-navigation-name="processes-nav"]') ).toBeTruthy(); expect( - wrapper.exists('Link[data-ouia-navigation-name="jobs-management-nav"]') + container.querySelector( + '[data-ouia-navigation-name="jobs-management-nav"]' + ) ).toBeTruthy(); expect( - wrapper.exists('Link[data-ouia-navigation-name="task-inbox-nav"]') + container.querySelector('[data-ouia-navigation-name="task-inbox-nav"]') ).toBeTruthy(); expect( - wrapper.exists('Link[data-ouia-navigation-name="forms-list-nav"]') + container.querySelector('[data-ouia-navigation-name="forms-list-nav"]') ).toBeTruthy(); expect( - wrapper.exists('Link[data-ouia-navigation-name="audit-nav"]') + container.querySelector('[data-ouia-navigation-name="audit-nav"]') ).toBeFalsy(); }); it('Snapshot testing audit investigation link props', () => { - const wrapper = mount( + const { container } = render( { ); - expect(wrapper.find('DevUINav')).toMatchSnapshot(); + expect(container).toMatchSnapshot(); expect( - wrapper.exists('Link[data-ouia-navigation-name="processes-nav"]') + container.querySelector('[data-ouia-navigation-name="processes-nav"]') ).toBeFalsy(); expect( - wrapper.exists('Link[data-ouia-navigation-name="jobs-management-nav"]') + container.querySelector( + '[data-ouia-navigation-name="jobs-management-nav"]' + ) ).toBeFalsy(); expect( - wrapper.exists('Link[data-ouia-navigation-name="task-inbox-nav"]') + container.querySelector('[data-ouia-navigation-name="task-inbox-nav"]') ).toBeFalsy(); expect( - wrapper.exists('Link[data-ouia-navigation-name="forms-list-nav"]') + container.querySelector('[data-ouia-navigation-name="forms-list-nav"]') ).toBeFalsy(); expect( - wrapper.exists('Link[data-ouia-navigation-name="audit-nav"]') + container.querySelector('[data-ouia-navigation-name="audit-nav"]') ).toBeTruthy(); }); }); diff --git a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/DevUI/DevUINav/tests/__snapshots__/DevUINav.test.tsx.snap b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/DevUI/DevUINav/tests/__snapshots__/DevUINav.test.tsx.snap index 60098f7eb0..9de35165fe 100644 --- a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/DevUI/DevUINav/tests/__snapshots__/DevUINav.test.tsx.snap +++ b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/DevUI/DevUINav/tests/__snapshots__/DevUINav.test.tsx.snap @@ -1,2239 +1,719 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`DevUINav tests::Process and Tracing enabled Snapshot testing audit investigation link props 1`] = ` - - + `; exports[`DevUINav tests::Process and Tracing enabled Snapshot testing with forms list props 1`] = ` - - + `; exports[`DevUINav tests::Process and Tracing enabled Snapshot testing with jobs management props 1`] = ` - - + `; exports[`DevUINav tests::Process and Tracing enabled Snapshot testing with processes props 1`] = ` - - + `; exports[`DevUINav tests::Sections disabled Snapshot testing audit investigation link props 1`] = ` - - + `; exports[`DevUINav tests::Sections disabled Snapshot testing with forms list props 1`] = ` - - + `; exports[`DevUINav tests::Sections disabled Snapshot testing with jobs management props 1`] = ` - - + `; exports[`DevUINav tests::Sections disabled Snapshot testing with processes props 1`] = ` - - + `; diff --git a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/DevUI/DevUIRoutes/tests/DevUIRoutes.test.tsx b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/DevUI/DevUIRoutes/tests/DevUIRoutes.test.tsx index 2714800789..e697acc375 100644 --- a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/DevUI/DevUIRoutes/tests/DevUIRoutes.test.tsx +++ b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/DevUI/DevUIRoutes/tests/DevUIRoutes.test.tsx @@ -15,44 +15,45 @@ */ import React from 'react'; -import { mount } from 'enzyme'; +import { render, screen } from '@testing-library/react'; import DevUIRoutes from '../DevUIRoutes'; -import { MemoryRouter, Route } from 'react-router-dom'; +import { MemoryRouter } from 'react-router-dom'; import DevUIAppContextProvider from '../../../contexts/DevUIAppContextProvider'; - -jest.mock('../../../pages/ProcessesPage/ProcessesPage'); -jest.mock('../../../pages/JobsManagementPage/JobsManagementPage'); -jest.mock('../../../pages/FormsListPage/FormsListPage'); - -const MockedComponent = (): React.ReactElement => { - return <>; -}; - -jest.mock('@kogito-apps/consoles-common/dist/components/pages/NoData', () => - Object.assign({}, jest.requireActual('@kogito-apps/consoles-common'), { - NoData: () => { - return ; - } - }) -); - -jest.mock( - '@kogito-apps/consoles-common/dist/components/pages/PageNotFound', - () => - Object.assign({}, jest.requireActual('@kogito-apps/consoles-common'), { - PageNotFound: () => { - return ; - } - }) -); - -jest.mock('@kogito-apps/trusty', () => - Object.assign({}, jest.requireActual('@kogito-apps/trusty'), { - TrustyApp: () => { - return ; - } - }) -); +import { ProcessListQueries } from '../../../../channel/ProcessList/ProcessListQueries'; +import * as ProcessDefinitionListContext from '../../../../channel/ProcessDefinitionList/ProcessDefinitionListContext'; +import { ProcessDefinitionListGatewayApiImpl } from '../../../../channel/ProcessDefinitionList/ProcessDefinitionListGatewayApi'; +import * as FormsListContext from '../../../../channel/FormsList/FormsListContext'; +import { FormsListGatewayApiImpl } from '../../../../channel/FormsList/FormsListGatewayApi'; +import * as ProcessListContext from '../../../../channel/ProcessList/ProcessListContext'; +import { ProcessListGatewayApiImpl } from '../../../../channel/ProcessList/ProcessListGatewayApi'; + +jest + .spyOn(ProcessDefinitionListContext, 'useProcessDefinitionListGatewayApi') + .mockImplementation( + () => + new ProcessDefinitionListGatewayApiImpl( + 'http://localhost:9000', + '/mocked' + ) + ); + +jest + .spyOn(FormsListContext, 'useFormsListGatewayApi') + .mockImplementation(() => new FormsListGatewayApiImpl()); + +const MockQueries = jest.fn(() => ({ + getProcessInstances: jest.fn(), + getChildProcessInstances: jest.fn(), + handleProcessSkip: jest.fn(), + handleProcessAbort: jest.fn(), + handleProcessRetry: jest.fn(), + handleProcessMultipleAction: jest.fn(), + onOpenProcessListen: jest.fn() +})); + +jest + .spyOn(ProcessListContext, 'useProcessListGatewayApi') + .mockImplementation(() => new ProcessListGatewayApiImpl(new MockQueries())); const props = { trustyServiceUrl: 'http://url-to-service', @@ -60,8 +61,11 @@ const props = { }; describe('DevUIRoutes tests::Process and Tracing enabled', () => { + beforeEach(() => { + jest.clearAllMocks(); + }); it('Test Jobs management route', () => { - const wrapper = mount( + const { container } = render( { ); - expect(wrapper).toMatchSnapshot(); + expect(container).toMatchSnapshot(); - const route = wrapper.find(Route); - expect(route.exists()).toBeTruthy(); - - const MockedJobsManagementPage = wrapper.find('MockedJobsManagementPage'); - expect(MockedJobsManagementPage.exists()).toBeTruthy(); + const checkJobsManagement = screen.getByText('Jobs Management'); + expect(checkJobsManagement).toBeTruthy(); + const checkJobsManagementSection = container.querySelector( + 'section[data-ouia-component-type="jobs-management-page-section"]' + ); + expect(checkJobsManagementSection).toBeTruthy(); }); it('processes test', () => { - const wrapper = mount( + const { container } = render( @@ -98,15 +104,14 @@ describe('DevUIRoutes tests::Process and Tracing enabled', () => { ); - expect(wrapper).toMatchSnapshot(); - const route = wrapper.find(Route); - expect(route.exists()).toBeTruthy(); - - const MockedProcessListPage = wrapper.find('MockedProcessesPage'); - expect(MockedProcessListPage.exists()).toBeTruthy(); + expect(container).toMatchSnapshot(); + const checkProcessListPage = document.querySelector( + 'body[data-ouia-page-type="process-instances"]' + ); + expect(checkProcessListPage).toBeTruthy(); }); it('jobs management page test', () => { - const wrapper = mount( + const { container } = render( { ); - expect(wrapper).toMatchSnapshot(); - const route = wrapper.find(Route); - expect(route.exists()).toBeTruthy(); + expect(container).toMatchSnapshot(); - const MockedJobsManagementPage = wrapper.find('MockedJobsManagementPage'); - expect(MockedJobsManagementPage.exists()).toBeTruthy(); + const checkJobsManagement = screen.getByText('Jobs Management'); + expect(checkJobsManagement).toBeTruthy(); + const checkJobsManagementSection = container.querySelector( + 'section[data-ouia-component-type="jobs-management-page-section"]' + ); + expect(checkJobsManagementSection).toBeTruthy(); }); it('forms list page test', () => { - const wrapper = mount( + const { container } = render( { ); - expect(wrapper).toMatchSnapshot(); - const route = wrapper.find(Route); - expect(route.exists()).toBeTruthy(); + expect(container).toMatchSnapshot(); + + const checkProcessListPage = document.querySelector( + 'body[data-ouia-page-type="forms-list"]' + ); + expect(checkProcessListPage).toBeTruthy(); - const MockedFormsListPage = wrapper.find('MockedFormsListPage'); - expect(MockedFormsListPage.exists()).toBeTruthy(); + const checkTitle = screen.getByText('Forms'); + expect(checkTitle).toBeTruthy(); }); it('audit investigation page test', () => { - const wrapper = mount( + const { container } = render( { ); - expect(wrapper).toMatchSnapshot(); - const route = wrapper.find(Route); - expect(route.exists()).toBeTruthy(); - - const trusty = wrapper.find('TrustyApp'); - expect(trusty.exists()).toBeTruthy(); - - const trustyProps = trusty.props(); - expect(trustyProps).not.toBeUndefined(); - expect(trustyProps['containerConfiguration']).not.toBeUndefined(); - expect( - trustyProps['containerConfiguration']['serverRoot'] - ).not.toBeUndefined(); - expect(trustyProps['containerConfiguration']['serverRoot']).toEqual( - props.trustyServiceUrl - ); + const checkAuditPage = screen.getByText('Audit investigation'); + expect(checkAuditPage).toBeTruthy(); }); it('no data page test', () => { - const wrapper = mount( + const { container } = render( { ); - expect(wrapper).toMatchSnapshot(); - const route = wrapper.find(Route); - expect(route.exists()).toBeTruthy(); - const noDataComponent = wrapper.find('NoData'); - expect(noDataComponent.exists()).toBeTruthy(); + expect(container).toMatchSnapshot(); + const checkNodataTitle = screen.getByText('No matches'); + expect(checkNodataTitle).toBeTruthy(); + const checkNodataBody = screen.getByText('No data to display'); + expect(checkNodataBody).toBeTruthy(); }); it('page not found page test', () => { - const wrapper = mount( + const { container } = render( { ); - expect(wrapper).toMatchSnapshot(); - const route = wrapper.find(Route); - expect(route.exists()).toBeTruthy(); - const pageNotFound = wrapper.find('PageNotFound'); - expect(pageNotFound.exists()).toBeTruthy(); + expect(container).toMatchSnapshot(); + + const checkPageNotFoundPage = container.querySelector( + 'section[data-ouia-component-type="page-not-found"]' + ); + expect(checkPageNotFoundPage).toBeTruthy(); + + const checkTitle = container.querySelector('h1').textContent; + expect(checkTitle).toEqual('404 Error: page not found'); }); it('Test NoData route', () => { - const wrapper = mount( + const { container } = render( { ); - expect(wrapper).toMatchSnapshot(); - const route = wrapper.find(Route); - expect(route.exists()).toBeTruthy(); - const noDataComponent = wrapper.find('NoData'); - expect(noDataComponent.exists()).toBeTruthy(); + expect(container).toMatchSnapshot(); + + const checkNodataTitle = screen.getByText('No matches'); + expect(checkNodataTitle).toBeTruthy(); + const checkNodataBody = screen.getByText('No data to display'); + expect(checkNodataBody).toBeTruthy(); }); it('Test PageNotFound route', () => { - const wrapper = mount( + const { container } = render( { ); - expect(wrapper).toMatchSnapshot(); - const route = wrapper.find(Route); - expect(route.exists()).toBeTruthy(); - const pageNotFound = wrapper.find('PageNotFound'); - expect(pageNotFound.exists()).toBeTruthy(); + expect(container).toMatchSnapshot(); + const checkPageNotFoundPage = container.querySelector( + 'section[data-ouia-component-type="page-not-found"]' + ); + expect(checkPageNotFoundPage).toBeTruthy(); + + const checkTitle = container.querySelector('h1').textContent; + expect(checkTitle).toEqual('404 Error: page not found'); }); }); describe('DevUIRoutes tests::Sections disabled', () => { it('Test Jobs management route', () => { - const wrapper = mount( + const { container } = render( { ); - expect(wrapper.exists('MockedJobsManagementPage')).toBeFalsy(); - expect(wrapper.exists('PageNotFound')).toBeTruthy(); - expect(wrapper.find('PageNotFound').props()['defaultPath']).toEqual( - '/Audit' + const checkJobsManagementPage = container.querySelector( + 'section[data-ouia-component-type="jobs-management"]' ); - expect(wrapper.find('PageNotFound').props()['defaultButton']).toEqual( - 'Go to audit' + expect(checkJobsManagementPage).toBeFalsy(); + + const checkPageNotFoundPage = container.querySelector( + 'section[data-ouia-component-type="page-not-found"]' ); + expect(checkPageNotFoundPage).toBeTruthy(); + + const checkTitle = container.querySelector('h1').textContent; + expect(checkTitle).toEqual('404 Error: page not found'); + + const checkButton = container.querySelector('button').textContent; + expect(checkButton).toEqual('Go to audit'); }); it('process list test', () => { - const wrapper = mount( + const { container } = render( { ); - expect(wrapper.exists('MockedProcessListPage')).toBeFalsy(); - expect(wrapper.exists('PageNotFound')).toBeTruthy(); - expect(wrapper.find('PageNotFound').props()['defaultPath']).toEqual( - '/Audit' + const checkProcessListPage = container.querySelector( + 'section[data-ouia-component-type="process-list"]' ); - expect(wrapper.find('PageNotFound').props()['defaultButton']).toEqual( - 'Go to audit' + expect(checkProcessListPage).toBeFalsy(); + + const checkPageNotFoundPage = container.querySelector( + 'section[data-ouia-component-type="page-not-found"]' ); + expect(checkPageNotFoundPage).toBeTruthy(); + + const checkTitle = container.querySelector('h1').textContent; + expect(checkTitle).toEqual('404 Error: page not found'); + + const checkButton = container.querySelector('button').textContent; + expect(checkButton).toEqual('Go to audit'); }); it('jobs management page test', () => { - const wrapper = mount( + const { container } = render( { ); - expect(wrapper.exists('MockedJobsManagementPage')).toBeFalsy(); - expect(wrapper.exists('PageNotFound')).toBeTruthy(); - expect(wrapper.find('PageNotFound').props()['defaultPath']).toEqual( - '/Audit' + const checkJobsManagementPage = container.querySelector( + 'section[data-ouia-component-type="jobs-management"]' ); - expect(wrapper.find('PageNotFound').props()['defaultButton']).toEqual( - 'Go to audit' + expect(checkJobsManagementPage).toBeFalsy(); + + const checkPageNotFoundPage = container.querySelector( + 'section[data-ouia-component-type="page-not-found"]' ); + expect(checkPageNotFoundPage).toBeTruthy(); + + const checkTitle = container.querySelector('h1').textContent; + expect(checkTitle).toEqual('404 Error: page not found'); + + const checkButton = container.querySelector('button').textContent; + expect(checkButton).toEqual('Go to audit'); }); it('forms list page test', () => { - const wrapper = mount( + const { container } = render( { ); - expect(wrapper.exists('MockedFormsListPage')).toBeFalsy(); - expect(wrapper.exists('PageNotFound')).toBeTruthy(); - expect(wrapper.find('PageNotFound').props()['defaultPath']).toEqual( - '/Audit' + const checkJobsManagementPage = container.querySelector( + 'section[data-ouia-component-type="forms-list"]' ); - expect(wrapper.find('PageNotFound').props()['defaultButton']).toEqual( - 'Go to audit' + expect(checkJobsManagementPage).toBeFalsy(); + + const checkPageNotFoundPage = container.querySelector( + 'section[data-ouia-component-type="page-not-found"]' ); + expect(checkPageNotFoundPage).toBeTruthy(); + + const checkTitle = container.querySelector('h1').textContent; + expect(checkTitle).toEqual('404 Error: page not found'); + + const checkButton = container.querySelector('button').textContent; + expect(checkButton).toEqual('Go to audit'); }); it('audit investigation page test', () => { - const wrapper = mount( + const { container } = render( { ); - expect(wrapper.exists('TrustyApp')).toBeFalsy(); - expect(wrapper.exists('PageNotFound')).toBeTruthy(); - expect(wrapper.find('PageNotFound').props()['defaultPath']).toEqual( - '/JobsManagement' + const checkJobsManagementPage = container.querySelector( + 'section[data-ouia-component-type="trusty-app"]' ); - expect(wrapper.find('PageNotFound').props()['defaultButton']).toEqual( - 'Go to jobs management' + expect(checkJobsManagementPage).toBeFalsy(); + + const checkPageNotFoundPage = container.querySelector( + 'section[data-ouia-component-type="page-not-found"]' ); + expect(checkPageNotFoundPage).toBeTruthy(); + + const checkTitle = container.querySelector('h1').textContent; + expect(checkTitle).toEqual('404 Error: page not found'); + + const checkButton = container.querySelector('button').textContent; + expect(checkButton).toEqual('Go to jobs management'); }); }); diff --git a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/DevUI/DevUIRoutes/tests/__snapshots__/DevUIRoutes.test.tsx.snap b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/DevUI/DevUIRoutes/tests/__snapshots__/DevUIRoutes.test.tsx.snap index 904bfc683a..956de169d4 100644 --- a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/DevUI/DevUIRoutes/tests/__snapshots__/DevUIRoutes.test.tsx.snap +++ b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/DevUI/DevUIRoutes/tests/__snapshots__/DevUIRoutes.test.tsx.snap @@ -1,1165 +1,514 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`DevUIRoutes tests::Process and Tracing enabled Test Jobs management route 1`] = ` - - +
    - - - - - - - - - - - +

    + Jobs Management +

    + + +
    +
    +
    +
    +
    +
    + `; exports[`DevUIRoutes tests::Process and Tracing enabled Test NoData route 1`] = ` - - +
    - - - - + - - - - - + + +

    + No matches +

    +
    + No data to display +
    + + + + +
    + `; exports[`DevUIRoutes tests::Process and Tracing enabled Test PageNotFound route 1`] = ` - - +
    - - - - + - - - - - -`; - -exports[`DevUIRoutes tests::Process and Tracing enabled audit investigation page test 1`] = ` - - - - - - + +

    - - - - - - - - - + 404 Error: page not found +

    +
    + This page could not be found. +
    + + + + +
    + `; exports[`DevUIRoutes tests::Process and Tracing enabled forms list page test 1`] = ` - - +
    - - - - - - - - - - - +

    + Forms +

    + + +
    +
    +
    +
    +
    +
    + `; exports[`DevUIRoutes tests::Process and Tracing enabled jobs management page test 1`] = ` - - +
    - - - - - - - - - - - +

    + Jobs Management +

    + + +
    +
    +
    +
    +
    +
    + `; exports[`DevUIRoutes tests::Process and Tracing enabled no data page test 1`] = ` - - +
    - - - - + - - - - - + + +

    + No matches +

    +
    + No data to display +
    + + + + +
    + `; exports[`DevUIRoutes tests::Process and Tracing enabled page not found page test 1`] = ` - - +
    - - - - + - - - - - + + +

    + 404 Error: page not found +

    +
    + This page could not be found. +
    + + + + +
    + `; exports[`DevUIRoutes tests::Process and Tracing enabled processes test 1`] = ` - - +
    - +
    +

    + Instances +

    +
    + +
    +
    +
    - - - + + + + +
    +
    +
    +
    +
    +
    +
    +
    + +
    + `; diff --git a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/DevUI/RuntimeTools/tests/RuntimeTools.test.tsx b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/DevUI/RuntimeTools/tests/RuntimeTools.test.tsx index 3e7af00080..462edf966e 100644 --- a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/DevUI/RuntimeTools/tests/RuntimeTools.test.tsx +++ b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/DevUI/RuntimeTools/tests/RuntimeTools.test.tsx @@ -14,7 +14,7 @@ * limitations under the License. */ -import { mount } from 'enzyme'; +import { render } from '@testing-library/react'; import React from 'react'; import { MemoryRouter } from 'react-router-dom'; import RuntimeTools from '../RuntimeTools'; @@ -23,7 +23,7 @@ jest.mock('apollo-link-http'); jest.mock('../../DevUILayout/DevUILayout'); describe('Runtime Tools tests', () => { it('Snapshot tests with default props', () => { - const wrapper = mount( + const { container } = render( { ); - expect(wrapper.find('RuntimeTools')).toMatchSnapshot(); + expect(container).toMatchSnapshot(); }); }); diff --git a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/DevUI/RuntimeTools/tests/__snapshots__/RuntimeTools.test.tsx.snap b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/DevUI/RuntimeTools/tests/__snapshots__/RuntimeTools.test.tsx.snap index d3dae30193..31ddb3cb82 100644 --- a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/DevUI/RuntimeTools/tests/__snapshots__/RuntimeTools.test.tsx.snap +++ b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/DevUI/RuntimeTools/tests/__snapshots__/RuntimeTools.test.tsx.snap @@ -1,254 +1,3 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`Runtime Tools tests Snapshot tests with default props 1`] = ` - - - -`; +exports[`Runtime Tools tests Snapshot tests with default props 1`] = `
    `; diff --git a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/CloudEventFormContainer/__mocks__/CloudEventFormContainer.tsx b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/CloudEventFormContainer/__mocks__/CloudEventFormContainer.tsx index cf6c2a10eb..5d6077df1b 100644 --- a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/CloudEventFormContainer/__mocks__/CloudEventFormContainer.tsx +++ b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/CloudEventFormContainer/__mocks__/CloudEventFormContainer.tsx @@ -15,7 +15,14 @@ */ import React from 'react'; -const MockedCloudEventFormContainer = (): React.ReactElement => { +const MockedCloudEventFormContainer = ({ + onSuccess, + onError +}): React.ReactElement => { + React.useEffect(() => { + onSuccess(); + onError(); + }, []); return <>; }; diff --git a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/CloudEventFormContainer/tests/CloudEventFormContainer.test.tsx b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/CloudEventFormContainer/tests/CloudEventFormContainer.test.tsx index 625e2c5d61..ab10979f59 100644 --- a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/CloudEventFormContainer/tests/CloudEventFormContainer.test.tsx +++ b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/CloudEventFormContainer/tests/CloudEventFormContainer.test.tsx @@ -15,7 +15,7 @@ */ import React from 'react'; -import { mount } from 'enzyme'; +import { render, screen } from '@testing-library/react'; import CloudEventFormContainer, { CloudEventFormContainerParams } from '../CloudEventFormContainer'; @@ -48,18 +48,6 @@ const MockedComponent = (): React.ReactElement => { return <>; }; -jest.mock('@kogito-apps/cloud-event-form/dist/embedded', () => - Object.assign( - {}, - jest.requireActual('@kogito-apps/cloud-event-form/dist/embedded'), - { - EmbeddedCloudEventForm: () => { - return ; - } - } - ) -); - const properties = { isTriggerNewInstance: false, onSuccess: jest.fn(), @@ -88,40 +76,30 @@ describe('CloudEventFormContainer tests', () => { }); it('Snapshot', () => { - const wrapper = mount( + const { container } = render( - ).find(CloudEventFormContainer); + ); - expect(wrapper).toMatchSnapshot(); + expect(container).toMatchSnapshot(); - const embeddedForm = wrapper.find(EmbeddedCloudEventForm); - expect(embeddedForm.props().isNewInstanceEvent).toBeFalsy(); - expect(embeddedForm.props().driver).not.toBeUndefined(); - expect( - embeddedForm.props().defaultValues?.cloudEventSource - ).not.toBeUndefined(); - expect(embeddedForm.props().defaultValues?.instanceId).toBeUndefined(); + const checkDiv = container.querySelector('div'); + expect(checkDiv).toBeTruthy(); }); it('Snapshot - with router param', () => { routerParams.instanceId = '1234'; - const wrapper = mount( + const { container } = render( - ).find(CloudEventFormContainer); + ); - expect(wrapper).toMatchSnapshot(); + expect(container).toMatchSnapshot(); - const embeddedForm = wrapper.find(EmbeddedCloudEventForm); - expect(embeddedForm.props().isNewInstanceEvent).toBeFalsy(); - expect(embeddedForm.props().driver).not.toBeUndefined(); - expect( - embeddedForm.props().defaultValues?.cloudEventSource - ).not.toBeUndefined(); - expect(embeddedForm.props().defaultValues?.instanceId).toBe('1234'); + const checkDiv = container.querySelector('div'); + expect(checkDiv).toBeTruthy(); }); }); diff --git a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/CloudEventFormContainer/tests/__snapshots__/CloudEventFormContainer.test.tsx.snap b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/CloudEventFormContainer/tests/__snapshots__/CloudEventFormContainer.test.tsx.snap index 2b97289f79..ea07cff247 100644 --- a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/CloudEventFormContainer/tests/__snapshots__/CloudEventFormContainer.test.tsx.snap +++ b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/CloudEventFormContainer/tests/__snapshots__/CloudEventFormContainer.test.tsx.snap @@ -1,57 +1,13 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`CloudEventFormContainer tests Snapshot - with router param 1`] = ` - - - - - +
    +
    +
    `; exports[`CloudEventFormContainer tests Snapshot 1`] = ` - - - - - +
    +
    +
    `; diff --git a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/CustomDashboardListContainer/tests/CustomDashboardListContainer.test.tsx b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/CustomDashboardListContainer/tests/CustomDashboardListContainer.test.tsx index 939e5a7947..e4d94e268a 100755 --- a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/CustomDashboardListContainer/tests/CustomDashboardListContainer.test.tsx +++ b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/CustomDashboardListContainer/tests/CustomDashboardListContainer.test.tsx @@ -15,7 +15,7 @@ */ import React from 'react'; -import { mount } from 'enzyme'; +import { render, screen } from '@testing-library/react'; import CustomDashboardListContainer from '../CustomDashboardListContainer'; import { CustomDashboardListGatewayApiImpl } from '../../../../channel/CustomDashboardList/CustomDashboardListGatewayApi'; import * as CustomDashboardListContext from '../../../../channel/CustomDashboardList/CustomDashboardListContext'; @@ -26,14 +26,10 @@ jest describe('CustomDashboardListContainer tests', () => { it('Snapshot', () => { - const wrapper = mount(); + const { container } = render(); - expect(wrapper).toMatchSnapshot(); - - const forwardRef = wrapper.childAt(0); - - expect(forwardRef.props().driver).not.toBeNull(); - - expect(forwardRef.props().targetOrigin).toBe('*'); + expect(container).toMatchSnapshot(); + const checkDiv = container.querySelector('div'); + expect(checkDiv).toBeTruthy(); }); }); diff --git a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/CustomDashboardListContainer/tests/__snapshots__/CustomDashboardListContainer.test.tsx.snap b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/CustomDashboardListContainer/tests/__snapshots__/CustomDashboardListContainer.test.tsx.snap index 76fcfafc2e..9016fcbc92 100644 --- a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/CustomDashboardListContainer/tests/__snapshots__/CustomDashboardListContainer.test.tsx.snap +++ b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/CustomDashboardListContainer/tests/__snapshots__/CustomDashboardListContainer.test.tsx.snap @@ -1,54 +1,7 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`CustomDashboardListContainer tests Snapshot 1`] = ` - - - -
    - - - +
    +
    +
    `; diff --git a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/CustomDashboardViewContainer/tests/CustomDashboardViewContainer.test.tsx b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/CustomDashboardViewContainer/tests/CustomDashboardViewContainer.test.tsx index 7d3cfc39f6..a8ac885c9b 100755 --- a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/CustomDashboardViewContainer/tests/CustomDashboardViewContainer.test.tsx +++ b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/CustomDashboardViewContainer/tests/CustomDashboardViewContainer.test.tsx @@ -15,7 +15,7 @@ */ import React from 'react'; -import { mount } from 'enzyme'; +import { render } from '@testing-library/react'; import CustomDashboardViewContainer from '../CustomDashboardViewContainer'; import { CustomDashboardViewGatewayApiImpl } from '../../../../channel/CustomDashboardView/CustomDashboardViewGatewayApi'; import * as CustomDashboardViewContext from '../../../../channel/CustomDashboardView/CustomDashboardViewContext'; @@ -48,18 +48,14 @@ const appContextProps = { describe('CustomDashboardViewContainer tests', () => { it('Snapshot', () => { - const wrapper = mount( + const { container } = render( ); - expect(wrapper.find('CustomDashboardViewContainer')).toMatchSnapshot(); + expect(container).toMatchSnapshot(); - const forwardRef = wrapper.find(EmbeddedCustomDashboardView); - - expect(forwardRef.props().driver).not.toBeNull(); - - expect(forwardRef.props().targetOrigin).toBe('http://localhost:9000'); + expect(container.querySelector('div')).toBeTruthy(); }); }); diff --git a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/CustomDashboardViewContainer/tests/__snapshots__/CustomDashboardViewContainer.test.tsx.snap b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/CustomDashboardViewContainer/tests/__snapshots__/CustomDashboardViewContainer.test.tsx.snap index bb269bf0bc..3a11b13719 100644 --- a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/CustomDashboardViewContainer/tests/__snapshots__/CustomDashboardViewContainer.test.tsx.snap +++ b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/CustomDashboardViewContainer/tests/__snapshots__/CustomDashboardViewContainer.test.tsx.snap @@ -1,33 +1,7 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`CustomDashboardViewContainer tests Snapshot 1`] = ` - - - -
    - - - +
    +
    +
    `; diff --git a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/FormDetailsContainer/__mocks__/FormDetailsContainer.tsx b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/FormDetailsContainer/__mocks__/FormDetailsContainer.tsx index 693e1f246a..097ddaaf40 100644 --- a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/FormDetailsContainer/__mocks__/FormDetailsContainer.tsx +++ b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/FormDetailsContainer/__mocks__/FormDetailsContainer.tsx @@ -16,7 +16,14 @@ import React from 'react'; -const MockedFormDetailsContainer = (): React.ReactElement => { +const MockedFormDetailsContainer = ({ + onSuccess, + onError +}): React.ReactElement => { + React.useEffect(() => { + onSuccess(); + onError(); + }, []); return <>; }; diff --git a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/FormDetailsContainer/tests/FormDetailsContainer.test.tsx b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/FormDetailsContainer/tests/FormDetailsContainer.test.tsx index d1df2566ca..5d49d472b4 100755 --- a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/FormDetailsContainer/tests/FormDetailsContainer.test.tsx +++ b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/FormDetailsContainer/tests/FormDetailsContainer.test.tsx @@ -15,7 +15,7 @@ */ import React from 'react'; -import { mount } from 'enzyme'; +import { render } from '@testing-library/react'; import FormDetailsContainer from '../FormDetailsContainer'; import * as FormDetailsContext from '../../../../channel/FormDetails/FormDetailsContext'; import { FormDetailsGatewayApiImpl } from '../../../../channel/FormDetails/FormDetailsGatewayApi'; @@ -48,7 +48,7 @@ const appContextProps = { describe('FormDetailsContainer tests', () => { it('Snapshot', () => { - const wrapper = mount( + const { container } = render( { ); - expect(wrapper.find('FormDetailsContainer')).toMatchSnapshot(); + expect(container).toMatchSnapshot(); - const forwardRef = wrapper.find(EmbeddedFormDetails); - - expect(forwardRef.props().driver).not.toBeNull(); - - expect(forwardRef.props().targetOrigin).toBe('http://localhost:9000'); + expect(container.querySelector('div')).toBeTruthy(); }); }); diff --git a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/FormDetailsContainer/tests/__snapshots__/FormDetailsContainer.test.tsx.snap b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/FormDetailsContainer/tests/__snapshots__/FormDetailsContainer.test.tsx.snap index 2477bff1cc..e30a3761c9 100644 --- a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/FormDetailsContainer/tests/__snapshots__/FormDetailsContainer.test.tsx.snap +++ b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/FormDetailsContainer/tests/__snapshots__/FormDetailsContainer.test.tsx.snap @@ -1,55 +1,7 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`FormDetailsContainer tests Snapshot 1`] = ` - - - -
    - - - +
    +
    +
    `; diff --git a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/FormsListContainer/tests/FormsListContainer.test.tsx b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/FormsListContainer/tests/FormsListContainer.test.tsx index c248c2d776..e163d35c52 100755 --- a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/FormsListContainer/tests/FormsListContainer.test.tsx +++ b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/FormsListContainer/tests/FormsListContainer.test.tsx @@ -15,7 +15,7 @@ */ import React from 'react'; -import { mount } from 'enzyme'; +import { render } from '@testing-library/react'; import FormsListContainer from '../FormsListContainer'; import * as FormsListContext from '../../../../channel/FormsList/FormsListContext'; import { FormsListGatewayApiImpl } from '../../../../channel/FormsList/FormsListGatewayApi'; @@ -48,18 +48,14 @@ const appContextProps = { describe('FormsListContainer tests', () => { it('Snapshot', () => { - const wrapper = mount( + const { container } = render( ); - expect(wrapper.find('FormsListContainer')).toMatchSnapshot(); + expect(container).toMatchSnapshot(); - const forwardRef = wrapper.find(EmbeddedFormsList); - - expect(forwardRef.props().driver).not.toBeNull(); - - expect(forwardRef.props().targetOrigin).toBe('http://localhost:9000'); + expect(container.querySelector('div')).toBeTruthy(); }); }); diff --git a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/FormsListContainer/tests/__snapshots__/FormsListContainer.test.tsx.snap b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/FormsListContainer/tests/__snapshots__/FormsListContainer.test.tsx.snap index 7b00520277..b1ad884b62 100644 --- a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/FormsListContainer/tests/__snapshots__/FormsListContainer.test.tsx.snap +++ b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/FormsListContainer/tests/__snapshots__/FormsListContainer.test.tsx.snap @@ -1,54 +1,7 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`FormsListContainer tests Snapshot 1`] = ` - - - -
    - - - +
    +
    +
    `; diff --git a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/JobsManagementContainer/tests/JosManagementContainer.test.tsx b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/JobsManagementContainer/tests/JosManagementContainer.test.tsx index 7710e2dec8..edf5154133 100644 --- a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/JobsManagementContainer/tests/JosManagementContainer.test.tsx +++ b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/JobsManagementContainer/tests/JosManagementContainer.test.tsx @@ -14,7 +14,7 @@ * limitations under the License. */ -import { mount } from 'enzyme'; +import { render } from '@testing-library/react'; import React from 'react'; import JobsManagementContainer from '../JobsManagementContainer'; import DevUIAppContextProvider from '../../../contexts/DevUIAppContextProvider'; @@ -41,11 +41,12 @@ const appContextProps = { describe('WebApp - JobsManagementContainer tests', () => { it('Snapshot test with default values', () => { - const wrapper = mount( + const { container } = render( ); - expect(wrapper.find('JobsManagementContainer')).toMatchSnapshot(); + expect(container).toMatchSnapshot(); + expect(container.querySelector('div')).toBeTruthy(); }); }); diff --git a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/JobsManagementContainer/tests/__snapshots__/JosManagementContainer.test.tsx.snap b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/JobsManagementContainer/tests/__snapshots__/JosManagementContainer.test.tsx.snap index 8c9daa517c..9872ef9c45 100644 --- a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/JobsManagementContainer/tests/__snapshots__/JosManagementContainer.test.tsx.snap +++ b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/JobsManagementContainer/tests/__snapshots__/JosManagementContainer.test.tsx.snap @@ -1,30 +1,7 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`WebApp - JobsManagementContainer tests Snapshot test with default values 1`] = ` - - - -
    - - - +
    +
    +
    `; diff --git a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/MonitoringContainer/tests/MonitoringContainer.test.tsx b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/MonitoringContainer/tests/MonitoringContainer.test.tsx new file mode 100644 index 0000000000..692ca78bcf --- /dev/null +++ b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/MonitoringContainer/tests/MonitoringContainer.test.tsx @@ -0,0 +1,31 @@ +/* + * Copyright 2023 Red Hat, Inc. and/or its affiliates. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import React from 'react'; +import MonitoringContainer from '../MonitoringContainer'; +import { act, render } from '@testing-library/react'; +import wait from 'waait'; + +describe('MonitoringPage tests', () => { + it('Snapshot tests', async () => { + let container; + await act(async () => { + container = render().container; + await wait(500); + }); + expect(container).toMatchSnapshot(); + }); +}); diff --git a/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/MonitoringContainer/tests/__snapshots__/MonitoringContainer.test.tsx.snap b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/MonitoringContainer/tests/__snapshots__/MonitoringContainer.test.tsx.snap new file mode 100644 index 0000000000..3c69b50ecf --- /dev/null +++ b/ui-packages/packages/runtime-tools-dev-ui-webapp/src/components/containers/MonitoringContainer/tests/__snapshots__/MonitoringContainer.test.tsx.snap @@ -0,0 +1,10 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`MonitoringPage tests Snapshot tests 1`] = ` +
    +