From 5cefe1bfbb58ad899230e7256e1e8c3e2738f117 Mon Sep 17 00:00:00 2001 From: Chirag Madlani <12962843+chirag-madlani@users.noreply.github.com> Date: Sat, 27 Aug 2022 16:00:38 +0530 Subject: [PATCH] refactor(ui): mock matchMedia globally for unit tests (#6985) * refactor(ui): mock matchMedia globally for unit tests * remove unused tests --- .../src/main/resources/ui/jest.config.js | 2 +- .../IngestionStepper/IngestionStepper.test.tsx | 14 -------------- .../AddAnnouncementModal.test.tsx | 14 -------------- .../EditAnnouncementModal.test.tsx | 14 -------------- .../AddPolicyPage/AddPolicyPage.test.tsx | 14 -------------- .../PoliciesDetailPage/AddRulePage.test.tsx | 14 -------------- .../PoliciesDetailPage/EditRulePage.test.tsx | 14 -------------- .../PoliciesPage/RuleForm/RuleForm.test.tsx | 14 -------------- .../AddAttributeModal/AddAttributeModal.test.tsx | 14 -------------- .../RolesPage/AddRolePage/AddRolePage.test.tsx | 14 -------------- .../RolesDetailPage/RolesDetailPage.test.tsx | 14 -------------- .../RolesPage/RolesListPage/RolesList.test.tsx | 14 -------------- .../RolesListPage/RolesListPage.test.tsx | 14 -------------- .../src/main/resources/ui/src/setupTests.js | 16 +++++++++++++++- 14 files changed, 16 insertions(+), 170 deletions(-) diff --git a/openmetadata-ui/src/main/resources/ui/jest.config.js b/openmetadata-ui/src/main/resources/ui/jest.config.js index 94b48d9afdb..6d45d2b0306 100644 --- a/openmetadata-ui/src/main/resources/ui/jest.config.js +++ b/openmetadata-ui/src/main/resources/ui/jest.config.js @@ -41,7 +41,7 @@ module.exports = { // Test Environment testEnvironment: 'jest-environment-jsdom-fourteen', - setupFilesAfterEnv: ['@testing-library/jest-dom/extend-expect'], + setupFilesAfterEnv: ['./src/setupTests.js'], clearMocks: true, moduleNameMapper: { '\\.svg': '/src/test/unit/mocks/svg.mock.js', // Mock SVG imports diff --git a/openmetadata-ui/src/main/resources/ui/src/components/IngestionStepper/IngestionStepper.test.tsx b/openmetadata-ui/src/main/resources/ui/src/components/IngestionStepper/IngestionStepper.test.tsx index 6ae7fa6e53d..33b29773d8f 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/IngestionStepper/IngestionStepper.test.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/IngestionStepper/IngestionStepper.test.tsx @@ -16,20 +16,6 @@ import React from 'react'; import { MemoryRouter } from 'react-router-dom'; import IngestionStepper from './IngestionStepper.component'; -Object.defineProperty(window, 'matchMedia', { - writable: true, - value: jest.fn().mockImplementation((query) => ({ - matches: false, - media: query, - onchange: null, - addListener: jest.fn(), - removeListener: jest.fn(), - addEventListener: jest.fn(), - removeEventListener: jest.fn(), - dispatchEvent: jest.fn(), - })), -}); - describe('IngestionStepper Tests', () => { it('Component should render properly', () => { const { container } = render( diff --git a/openmetadata-ui/src/main/resources/ui/src/components/Modals/AnnouncementModal/AddAnnouncementModal.test.tsx b/openmetadata-ui/src/main/resources/ui/src/components/Modals/AnnouncementModal/AddAnnouncementModal.test.tsx index c5b46cd5c8e..aa1bdde9752 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/Modals/AnnouncementModal/AddAnnouncementModal.test.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/Modals/AnnouncementModal/AddAnnouncementModal.test.tsx @@ -15,20 +15,6 @@ import { fireEvent, render, screen } from '@testing-library/react'; import React from 'react'; import AddAnnouncementModal from './AddAnnouncementModal'; -Object.defineProperty(window, 'matchMedia', { - writable: true, - value: jest.fn().mockImplementation((query) => ({ - matches: false, - media: query, - onchange: null, - addListener: jest.fn(), - removeListener: jest.fn(), - addEventListener: jest.fn(), - removeEventListener: jest.fn(), - dispatchEvent: jest.fn(), - })), -}); - jest.mock('../../../AppState', () => ({ userDetails: { name: '', diff --git a/openmetadata-ui/src/main/resources/ui/src/components/Modals/AnnouncementModal/EditAnnouncementModal.test.tsx b/openmetadata-ui/src/main/resources/ui/src/components/Modals/AnnouncementModal/EditAnnouncementModal.test.tsx index 20af5c8bafc..389c5ca228e 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/Modals/AnnouncementModal/EditAnnouncementModal.test.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/Modals/AnnouncementModal/EditAnnouncementModal.test.tsx @@ -15,20 +15,6 @@ import { fireEvent, render, screen } from '@testing-library/react'; import React from 'react'; import EditAnnouncementModal from './EditAnnouncementModal'; -Object.defineProperty(window, 'matchMedia', { - writable: true, - value: jest.fn().mockImplementation((query) => ({ - matches: false, - media: query, - onchange: null, - addListener: jest.fn(), - removeListener: jest.fn(), - addEventListener: jest.fn(), - removeEventListener: jest.fn(), - dispatchEvent: jest.fn(), - })), -}); - jest.mock('../../../utils/AnnouncementsUtils', () => ({ validateMessages: { title: '', diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/PoliciesPage/AddPolicyPage/AddPolicyPage.test.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/PoliciesPage/AddPolicyPage/AddPolicyPage.test.tsx index a528d397eef..be6fa945531 100644 --- a/openmetadata-ui/src/main/resources/ui/src/pages/PoliciesPage/AddPolicyPage/AddPolicyPage.test.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/pages/PoliciesPage/AddPolicyPage/AddPolicyPage.test.tsx @@ -16,20 +16,6 @@ import React from 'react'; import { MemoryRouter } from 'react-router-dom'; import AddPolicyPage from './AddPolicyPage'; -Object.defineProperty(window, 'matchMedia', { - writable: true, - value: jest.fn().mockImplementation((query) => ({ - matches: false, - media: query, - onchange: null, - addListener: jest.fn(), - removeListener: jest.fn(), - addEventListener: jest.fn(), - removeEventListener: jest.fn(), - dispatchEvent: jest.fn(), - })), -}); - jest.mock('react-router-dom', () => ({ useHistory: jest.fn().mockReturnValue({ push: jest.fn(), diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/PoliciesPage/PoliciesDetailPage/AddRulePage.test.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/PoliciesPage/PoliciesDetailPage/AddRulePage.test.tsx index 5ee3c5e037e..c4d7a571651 100644 --- a/openmetadata-ui/src/main/resources/ui/src/pages/PoliciesPage/PoliciesDetailPage/AddRulePage.test.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/pages/PoliciesPage/PoliciesDetailPage/AddRulePage.test.tsx @@ -16,20 +16,6 @@ import React from 'react'; import { POLICY_DATA } from '../policies.mock'; import AddRulePage from './AddRulePage'; -Object.defineProperty(window, 'matchMedia', { - writable: true, - value: jest.fn().mockImplementation((query) => ({ - matches: false, - media: query, - onchange: null, - addListener: jest.fn(), - removeListener: jest.fn(), - addEventListener: jest.fn(), - removeEventListener: jest.fn(), - dispatchEvent: jest.fn(), - })), -}); - jest.mock('react-router-dom', () => ({ useHistory: jest.fn().mockReturnValue({ push: jest.fn(), diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/PoliciesPage/PoliciesDetailPage/EditRulePage.test.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/PoliciesPage/PoliciesDetailPage/EditRulePage.test.tsx index fb6b07afd3e..163249b6cdc 100644 --- a/openmetadata-ui/src/main/resources/ui/src/pages/PoliciesPage/PoliciesDetailPage/EditRulePage.test.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/pages/PoliciesPage/PoliciesDetailPage/EditRulePage.test.tsx @@ -16,20 +16,6 @@ import React from 'react'; import { POLICY_DATA } from '../policies.mock'; import EditRulePage from './EditRulePage'; -Object.defineProperty(window, 'matchMedia', { - writable: true, - value: jest.fn().mockImplementation((query) => ({ - matches: false, - media: query, - onchange: null, - addListener: jest.fn(), - removeListener: jest.fn(), - addEventListener: jest.fn(), - removeEventListener: jest.fn(), - dispatchEvent: jest.fn(), - })), -}); - jest.mock('react-router-dom', () => ({ useHistory: jest.fn().mockReturnValue({ push: jest.fn(), diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/PoliciesPage/RuleForm/RuleForm.test.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/PoliciesPage/RuleForm/RuleForm.test.tsx index f8e5ba3654c..12579a21cb6 100644 --- a/openmetadata-ui/src/main/resources/ui/src/pages/PoliciesPage/RuleForm/RuleForm.test.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/pages/PoliciesPage/RuleForm/RuleForm.test.tsx @@ -16,20 +16,6 @@ import React from 'react'; import { Rule } from '../../../generated/api/policies/createPolicy'; import RuleForm from './RuleForm'; -Object.defineProperty(window, 'matchMedia', { - writable: true, - value: jest.fn().mockImplementation((query) => ({ - matches: false, - media: query, - onchange: null, - addListener: jest.fn(), - removeListener: jest.fn(), - addEventListener: jest.fn(), - removeEventListener: jest.fn(), - dispatchEvent: jest.fn(), - })), -}); - jest.mock('../../../axiosAPIs/rolesAPIV1', () => ({ getPolicyFunctions: jest.fn().mockImplementation(() => Promise.resolve()), getPolicyResources: jest.fn().mockImplementation(() => Promise.resolve()), diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/RolesPage/AddAttributeModal/AddAttributeModal.test.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/RolesPage/AddAttributeModal/AddAttributeModal.test.tsx index 931a2bd4e30..1833eac834c 100644 --- a/openmetadata-ui/src/main/resources/ui/src/pages/RolesPage/AddAttributeModal/AddAttributeModal.test.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/pages/RolesPage/AddAttributeModal/AddAttributeModal.test.tsx @@ -17,20 +17,6 @@ import { EntityType } from '../../../enums/entity.enum'; import { POLICY_LIST_WITH_PAGING } from '../Roles.mock'; import AddAttributeModal from './AddAttributeModal'; -Object.defineProperty(window, 'matchMedia', { - writable: true, - value: jest.fn().mockImplementation((query) => ({ - matches: false, - media: query, - onchange: null, - addListener: jest.fn(), - removeListener: jest.fn(), - addEventListener: jest.fn(), - removeEventListener: jest.fn(), - dispatchEvent: jest.fn(), - })), -}); - jest.mock('../../../axiosAPIs/rolesAPIV1', () => ({ getPolicies: jest .fn() diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/RolesPage/AddRolePage/AddRolePage.test.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/RolesPage/AddRolePage/AddRolePage.test.tsx index 4e483749b6f..78066fc6efc 100644 --- a/openmetadata-ui/src/main/resources/ui/src/pages/RolesPage/AddRolePage/AddRolePage.test.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/pages/RolesPage/AddRolePage/AddRolePage.test.tsx @@ -16,20 +16,6 @@ import React from 'react'; import { MemoryRouter } from 'react-router-dom'; import AddRolePage from './AddRolePage'; -Object.defineProperty(window, 'matchMedia', { - writable: true, - value: jest.fn().mockImplementation((query) => ({ - matches: false, - media: query, - onchange: null, - addListener: jest.fn(), - removeListener: jest.fn(), - addEventListener: jest.fn(), - removeEventListener: jest.fn(), - dispatchEvent: jest.fn(), - })), -}); - jest.mock('react-router-dom', () => ({ useHistory: jest.fn().mockReturnValue({ push: jest.fn(), diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/RolesPage/RolesDetailPage/RolesDetailPage.test.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/RolesPage/RolesDetailPage/RolesDetailPage.test.tsx index b41143df882..e4f7666abe4 100644 --- a/openmetadata-ui/src/main/resources/ui/src/pages/RolesPage/RolesDetailPage/RolesDetailPage.test.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/pages/RolesPage/RolesDetailPage/RolesDetailPage.test.tsx @@ -17,20 +17,6 @@ import { getRoleByName } from '../../../axiosAPIs/rolesAPIV1'; import { ROLE_DATA } from '../Roles.mock'; import RolesDetailPage from './RolesDetailPage'; -Object.defineProperty(window, 'matchMedia', { - writable: true, - value: jest.fn().mockImplementation((query) => ({ - matches: false, - media: query, - onchange: null, - addListener: jest.fn(), - removeListener: jest.fn(), - addEventListener: jest.fn(), - removeEventListener: jest.fn(), - dispatchEvent: jest.fn(), - })), -}); - jest.mock('react-router-dom', () => ({ useHistory: jest.fn().mockReturnValue({ push: jest.fn(), diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/RolesPage/RolesListPage/RolesList.test.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/RolesPage/RolesListPage/RolesList.test.tsx index 9249b6c6045..02083e221e8 100644 --- a/openmetadata-ui/src/main/resources/ui/src/pages/RolesPage/RolesListPage/RolesList.test.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/pages/RolesPage/RolesListPage/RolesList.test.tsx @@ -16,20 +16,6 @@ import React from 'react'; import { ROLES_LIST } from '../Roles.mock'; import RolesList from './RolesList'; -Object.defineProperty(window, 'matchMedia', { - writable: true, - value: jest.fn().mockImplementation((query) => ({ - matches: false, - media: query, - onchange: null, - addListener: jest.fn(), - removeListener: jest.fn(), - addEventListener: jest.fn(), - removeEventListener: jest.fn(), - dispatchEvent: jest.fn(), - })), -}); - jest.mock('react-router-dom', () => ({ Link: jest.fn().mockImplementation(({ children, to, ...res }) => ( diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/RolesPage/RolesListPage/RolesListPage.test.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/RolesPage/RolesListPage/RolesListPage.test.tsx index a97e3eb1e0d..b8fc74517b6 100644 --- a/openmetadata-ui/src/main/resources/ui/src/pages/RolesPage/RolesListPage/RolesListPage.test.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/pages/RolesPage/RolesListPage/RolesListPage.test.tsx @@ -18,20 +18,6 @@ import RolesListPage from './RolesListPage'; const mockPush = jest.fn(); -Object.defineProperty(window, 'matchMedia', { - writable: true, - value: jest.fn().mockImplementation((query) => ({ - matches: false, - media: query, - onchange: null, - addListener: jest.fn(), - removeListener: jest.fn(), - addEventListener: jest.fn(), - removeEventListener: jest.fn(), - dispatchEvent: jest.fn(), - })), -}); - jest.mock('react-router-dom', () => ({ useHistory: jest.fn().mockImplementation(() => ({ push: mockPush, diff --git a/openmetadata-ui/src/main/resources/ui/src/setupTests.js b/openmetadata-ui/src/main/resources/ui/src/setupTests.js index eac730216c9..1aadf87c33c 100644 --- a/openmetadata-ui/src/main/resources/ui/src/setupTests.js +++ b/openmetadata-ui/src/main/resources/ui/src/setupTests.js @@ -16,4 +16,18 @@ // expect(element).toHaveTextContent(/react/i) // learn more: https://github.com/testing-library/jest-dom import '@testing-library/jest-dom/extend-expect'; -import './jest.overrides.js'; + +// Reference: https://github.com/ant-design/ant-design/issues/21096 +Object.defineProperty(window, 'matchMedia', { + writable: true, + value: jest.fn().mockImplementation((query) => ({ + matches: false, + media: query, + onchange: null, + addListener: jest.fn(), // deprecated + removeListener: jest.fn(), // deprecated + addEventListener: jest.fn(), + removeEventListener: jest.fn(), + dispatchEvent: jest.fn(), + })), +});