Skip to content

Commit abd86a3

Browse files
author
Lingxi Chen
committed
updated uts for WorkloadManagement
Signed-off-by: Lingxi Chen <[email protected]>
1 parent d52ef33 commit abd86a3

File tree

1 file changed

+49
-19
lines changed

1 file changed

+49
-19
lines changed

public/pages/WorkloadManagement/WorkloadManagement.test.tsx

Lines changed: 49 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,14 @@
33
* SPDX-License-Identifier: Apache-2.0
44
*/
55

6-
/**
7-
* @jest-environment jsdom
8-
*/
9-
106
import React from 'react';
117
import { render, screen } from '@testing-library/react';
128
import { MemoryRouter, Route } from 'react-router-dom';
139
import '@testing-library/jest-dom/extend-expect';
14-
import { WorkloadManagement, WLM_MAIN, WLM_DETAILS } from './WorkloadManagement';
10+
import { WorkloadManagement, WLM_MAIN, WLM_DETAILS, WLM_CREATE } from './WorkloadManagement';
1511
import { CoreStart } from 'opensearch-dashboards/public';
1612
import { QueryInsightsDashboardsPluginStartDependencies } from '../../types';
17-
18-
// Mock the subcomponents
19-
jest.mock('./WLMMain/WLMMain', () => () => <div>Mocked WLM Main</div>);
20-
jest.mock('./WLMDetails/WLMDetails', () => () => <div>Mocked WLM Details</div>);
13+
import { DataSourceContext } from './WorkloadManagement';
2114

2215
const mockCore = ({
2316
http: {
@@ -27,32 +20,69 @@ const mockCore = ({
2720
uiSettings: {
2821
get: jest.fn().mockReturnValue(false),
2922
},
23+
chrome: {
24+
setBreadcrumbs: jest.fn(),
25+
},
26+
notifications: {
27+
toasts: {
28+
addSuccess: jest.fn(),
29+
addDanger: jest.fn(),
30+
},
31+
},
3032
} as unknown) as CoreStart;
3133

32-
const mockDepsStart: QueryInsightsDashboardsPluginStartDependencies = {};
34+
const mockDepsStart = {} as QueryInsightsDashboardsPluginStartDependencies;
35+
36+
const mockDataSource = {
37+
id: 'default',
38+
name: 'default',
39+
} as any;
40+
41+
jest.mock('../../components/PageHeader', () => ({
42+
PageHeader: () => <div data-testid="mock-page-header">Mocked PageHeader</div>,
43+
}));
3344

34-
const renderWithRoute = (initialRoute: string) =>
35-
render(
45+
const renderWithRoute = (initialRoute: string) => {
46+
return render(
3647
<MemoryRouter initialEntries={[initialRoute]}>
3748
<Route path="*">
38-
<WorkloadManagement core={mockCore} depsStart={mockDepsStart} />
49+
<DataSourceContext.Provider value={{ dataSource: mockDataSource, setDataSource: jest.fn() }}>
50+
<WorkloadManagement
51+
core={mockCore}
52+
depsStart={mockDepsStart}
53+
params={{} as any}
54+
dataSourceManagement={{} as any}
55+
/>
56+
</DataSourceContext.Provider>
3957
</Route>
4058
</MemoryRouter>
4159
);
60+
};
4261

4362
describe('WorkloadManagement Routing', () => {
63+
beforeEach(() => {
64+
jest.clearAllMocks();
65+
});
66+
4467
it('renders WLMMain component at WLM_MAIN route', () => {
4568
renderWithRoute(WLM_MAIN);
46-
expect(screen.getByText('Mocked WLM Main')).toBeInTheDocument();
69+
expect(screen.getByRole('heading', { name: /Workload groups/i })).toBeInTheDocument();
4770
});
4871

49-
it('renders WLMDetails component at WLM_DETAILS route', () => {
50-
renderWithRoute(WLM_DETAILS);
51-
expect(screen.getByText('Mocked WLM Details')).toBeInTheDocument();
72+
it('renders WLMDetails component at WLM_DETAILS route', async () => {
73+
renderWithRoute(`${WLM_DETAILS}?name=DEFAULT_WORKLOAD_GROUP`);
74+
expect(await screen.findByRole('heading', { name: /DEFAULT_WORKLOAD_GROUP/i })).toBeInTheDocument();
5275
});
5376

5477
it('redirects to WLM_MAIN for unknown routes', () => {
55-
renderWithRoute('/some/invalid/route');
56-
expect(screen.getByText('Mocked WLM Main')).toBeInTheDocument();
78+
renderWithRoute('/invalid/route');
79+
expect(screen.getByRole('heading', { name: /Workload groups/i })).toBeInTheDocument();
80+
});
81+
82+
it('renders WLMCreate component at WLM_CREATE route', () => {
83+
renderWithRoute(WLM_CREATE);
84+
expect(screen.getByRole('heading', { name: /Create workload group/i })).toBeInTheDocument();
5785
});
86+
5887
});
88+

0 commit comments

Comments
 (0)