From d8b26d94da64fc93061a4612d9bd932d3acd277f Mon Sep 17 00:00:00 2001 From: Gustav Hansen Date: Tue, 31 Jan 2023 09:56:20 +0100 Subject: [PATCH] Add tests for ReviewWorkflowsPage --- .../Stages/Stage/tests/Stage.test.js | 2 +- .../components/Stages/tests/Stages.test.js | 2 +- .../tests/ReviewWorkflows.test.js | 86 +++++++++++++++++++ 3 files changed, 88 insertions(+), 2 deletions(-) create mode 100644 packages/core/admin/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/tests/ReviewWorkflows.test.js diff --git a/packages/core/admin/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/Stages/Stage/tests/Stage.test.js b/packages/core/admin/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/Stages/Stage/tests/Stage.test.js index d34ffbb7e0..52bd82480c 100644 --- a/packages/core/admin/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/Stages/Stage/tests/Stage.test.js +++ b/packages/core/admin/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/Stages/Stage/tests/Stage.test.js @@ -24,7 +24,7 @@ const setup = (props) => render(); const user = userEvent.setup(); -describe('Admin | Settings | Revie Workflow | Stage', () => { +describe('Admin | Settings | Review Workflow | Stage', () => { beforeEach(() => { jest.clearAllMocks(); }); diff --git a/packages/core/admin/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/Stages/tests/Stages.test.js b/packages/core/admin/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/Stages/tests/Stages.test.js index 7dd91128ac..f989b82bc3 100644 --- a/packages/core/admin/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/Stages/tests/Stages.test.js +++ b/packages/core/admin/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/Stages/tests/Stages.test.js @@ -28,7 +28,7 @@ const ComponentFixture = (props) => ( const setup = (props) => render(); -describe('Admin | Settings | Revie Workflow | Stages', () => { +describe('Admin | Settings | Review Workflow | Stages', () => { beforeEach(() => { jest.clearAllMocks(); }); diff --git a/packages/core/admin/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/tests/ReviewWorkflows.test.js b/packages/core/admin/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/tests/ReviewWorkflows.test.js new file mode 100644 index 0000000000..a7a2712a30 --- /dev/null +++ b/packages/core/admin/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/tests/ReviewWorkflows.test.js @@ -0,0 +1,86 @@ +import React from 'react'; +import { render } from '@testing-library/react'; +import { IntlProvider } from 'react-intl'; +import { Provider } from 'react-redux'; +import { QueryClientProvider, QueryClient } from 'react-query'; + +import { ThemeProvider, lightTheme } from '@strapi/design-system'; + +import configureStore from '../../../../../../../admin/src/core/store/configureStore'; +import ReviewWorkflowsPage from '..'; +import { reducer } from '../reducer'; +import { useReviewWorkflows } from '../hooks/useReviewWorkflows'; + +jest.mock('../hooks/useReviewWorkflows', () => ({ + ...jest.requireActual('../hooks/useReviewWorkflows'), + useReviewWorkflows: jest.fn().mockReturnValue({ + workflows: { + status: 'loading', + data: null, + }, + }), +})); + +const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, +}); + +const ComponentFixture = () => { + const store = configureStore([], [reducer]); + + return ( + + + + + + + + + + ); +}; + +const setup = (props) => render(); + +describe('Admin | Settings | Review Workflow | ReviewWorkflowsPage', () => { + beforeEach(() => { + jest.clearAllMocks(); + }); + + test('handle initial loading state', () => { + const { getByText } = setup(); + + expect(getByText('0 stages')).toBeInTheDocument(); + expect(getByText('Workflow is loading')).toBeInTheDocument(); + }); + + test('handle loaded stage', () => { + useReviewWorkflows.mockReturnValue({ + workflows: { + status: 'success', + data: [ + { + id: 1, + stages: [ + { + id: 1, + name: 'stage-1', + }, + ], + }, + ], + }, + }); + + const { getByText, queryByText } = setup(); + + expect(getByText('1 stage')).toBeInTheDocument(); + expect(queryByText('Workflow is loading')).not.toBeInTheDocument(); + expect(getByText('stage-1')).toBeInTheDocument(); + }); +});