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();
+ });
+});