forked from openedx/frontend-app-admin-console
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.test.tsx
More file actions
49 lines (40 loc) · 1.8 KB
/
index.test.tsx
File metadata and controls
49 lines (40 loc) · 1.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import React from 'react';
import { screen } from '@testing-library/react';
import { renderWrapper } from '@src/setupTest';
import AuthzHome from './index';
jest.mock('../components/AuthZLayout', () => function MockAuthZLayout({ children }: { children: React.ReactNode }) {
return <div data-testid="authz-layout">{children}</div>;
});
jest.mock('../roles-permissions/RolesPermissions', () => function MockRolesPermissions() {
return <div data-testid="roles-permissions">Roles & Permissions Content</div>;
});
jest.mock('@openedx/paragon', () => ({
Tab: ({ children, title } : { children: React.ReactNode, title: string }) => <div data-testid="tab" role="tabpanel">{title}: {children}</div>,
Tabs: ({ children }: { children: React.ReactNode }) => <div data-testid="tabs">{children}</div>,
}));
jest.mock('@src/authz-module/team-members/TeamMembersTable', () => function MockTeamMembersTable() {
return <div>Team Members Table Content</div>;
});
describe('AuthzHome', () => {
it('renders without crashing', () => {
renderWrapper(<AuthzHome />);
});
it('renders the main layout and tabs', () => {
renderWrapper(<AuthzHome />);
expect(screen.getByTestId('authz-layout')).toBeInTheDocument();
expect(screen.getByTestId('tabs')).toBeInTheDocument();
});
it('renders both tab panels', () => {
renderWrapper(<AuthzHome />);
const tabs = screen.getAllByTestId('tab');
expect(tabs).toHaveLength(2);
});
it('renders the RolesPermissions component in the permissions tab', () => {
renderWrapper(<AuthzHome />);
expect(screen.getByTestId('roles-permissions')).toBeInTheDocument();
});
it('renders the TeamMembersTable component in the team members tab', () => {
renderWrapper(<AuthzHome />);
expect(screen.getByText('Team Members Table Content')).toBeInTheDocument();
});
});