diff --git a/src/authz-module/components/AuthZTitle.test.tsx b/src/authz-module/components/AuthZTitle.test.tsx index f7cc9c1e..f2585f73 100644 --- a/src/authz-module/components/AuthZTitle.test.tsx +++ b/src/authz-module/components/AuthZTitle.test.tsx @@ -44,9 +44,9 @@ describe('AuthZTitle', () => { }); it('renders page subtitle as ReactNode', () => { - const subtitleNode =
Custom Subtitle
; + const subtitleNode =
Custom Subtitle
; render(); - expect(screen.getByTestId('custom-subtitle')).toBeInTheDocument(); + expect(screen.getByText('Custom Subtitle')).toBeInTheDocument(); }); it('renders action buttons and triggers onClick', () => { @@ -69,7 +69,7 @@ describe('AuthZTitle', () => { }); it('renders action buttons with icons', () => { - const mockIcon = () => Icon; + const mockIcon = () => Icon; const onClick = jest.fn(); const actions = [ { label: 'Save', icon: mockIcon, onClick }, @@ -77,14 +77,14 @@ describe('AuthZTitle', () => { render(); - const button = screen.getByRole('button', { name: 'Icon Save' }); + const button = screen.getByRole('button', { name: 'save icon Save' }); expect(button).toBeInTheDocument(); - expect(screen.getByTestId('mock-icon')).toBeInTheDocument(); + expect(screen.getByRole('img', { name: 'save icon' })).toBeInTheDocument(); }); it('renders ReactNode actions alongside button actions', () => { const onClick = jest.fn(); - const customAction =
Custom Action
; + const customAction =
Custom Action
; const actions = [ { label: 'Save', onClick }, customAction, @@ -93,6 +93,6 @@ describe('AuthZTitle', () => { render(); expect(screen.getByRole('button', { name: 'Save' })).toBeInTheDocument(); - expect(screen.getByTestId('custom-action')).toBeInTheDocument(); + expect(screen.getByRole('region', { name: 'custom action area' })).toBeInTheDocument(); }); }); diff --git a/src/authz-module/components/RoleCard/index.test.tsx b/src/authz-module/components/RoleCard/index.test.tsx index edfe9005..5508b9cd 100644 --- a/src/authz-module/components/RoleCard/index.test.tsx +++ b/src/authz-module/components/RoleCard/index.test.tsx @@ -4,14 +4,14 @@ import userEvent from '@testing-library/user-event'; import RoleCard from '.'; jest.mock('@openedx/paragon/icons', () => ({ - Delete: () => , - Person: () => , + Delete: () => , + Person: () => , })); jest.mock('./constants', () => ({ actionsDictionary: { - view: () => , - manage: () => , + view: () => , + manage: () => , }, })); @@ -47,7 +47,7 @@ describe('RoleCard', () => { // User counter with icon expect(screen.getByText('2')).toBeInTheDocument(); - expect(screen.getByTestId('person-icon')).toBeInTheDocument(); + expect(screen.getByRole('img', { name: 'person icon' })).toBeInTheDocument(); // Subtitle (object name) expect(screen.getByText('Test Library')).toBeInTheDocument(); @@ -71,8 +71,8 @@ describe('RoleCard', () => { expect(screen.getByText('Manage')).toBeInTheDocument(); // Action icons - expect(screen.getByTestId('view-icon')).toBeInTheDocument(); - expect(screen.getByTestId('manage-icon')).toBeInTheDocument(); + expect(screen.getByRole('img', { name: 'view action icon' })).toBeInTheDocument(); + expect(screen.getByRole('img', { name: 'manage action icon' })).toBeInTheDocument(); }); it('does not show delete button when handleDelete is not passed', () => { @@ -82,7 +82,7 @@ describe('RoleCard', () => { it('handles no userCounter gracefully', () => { renderWrapper(); - expect(screen.queryByTestId('person-icon')).not.toBeInTheDocument(); + expect(screen.queryByRole('img', { name: 'person icon' })).not.toBeInTheDocument(); expect(screen.queryByText('2')).not.toBeInTheDocument(); }); diff --git a/src/authz-module/index.test.tsx b/src/authz-module/index.test.tsx index 15aac37f..d7653eae 100644 --- a/src/authz-module/index.test.tsx +++ b/src/authz-module/index.test.tsx @@ -8,9 +8,12 @@ import AuthZModule from './index'; jest.mock('./libraries-manager', () => ({ // eslint-disable-next-line no-promise-executor-return - LibrariesLayout: lazy(() => new Promise<{ default: ComponentType }>(resolve => setTimeout(() => resolve({ default: () =>
}), 100))), - LibrariesTeamManager: () =>
Libraries Team Page
, - LibrariesUserManager: () =>
Libraries User Page
, + LibrariesLayout: lazy(() => new Promise<{ default: ComponentType }>(resolve => setTimeout( + () => resolve({ default: () =>
}), + 100, + ))), + LibrariesTeamManager: () =>
Libraries Team Page
, + LibrariesUserManager: () =>
Libraries User Page
, })); const createTestQueryClient = () => new QueryClient({ @@ -42,10 +45,10 @@ describe('AuthZModule', () => { , ); - expect(screen.getByTestId('loading-page')).toBeInTheDocument(); + expect(document.querySelector('.spinner-border')).toBeInTheDocument(); await waitFor(() => { - expect(screen.getByTestId('libraries-manager')).toBeInTheDocument(); + expect(screen.getByText('Libraries Team Page')).toBeInTheDocument(); }); }); @@ -63,7 +66,7 @@ describe('AuthZModule', () => { , ); await waitFor(() => { - expect(screen.getByTestId('libraries-user-manager')).toBeInTheDocument(); + expect(screen.getByText('Libraries User Page')).toBeInTheDocument(); }); }); }); diff --git a/src/authz-module/libraries-manager/LibrariesTeamManager.test.tsx b/src/authz-module/libraries-manager/LibrariesTeamManager.test.tsx index a178291d..0670965f 100644 --- a/src/authz-module/libraries-manager/LibrariesTeamManager.test.tsx +++ b/src/authz-module/libraries-manager/LibrariesTeamManager.test.tsx @@ -25,12 +25,12 @@ jest.mock('@src/authz-module/data/hooks', () => ({ jest.mock('./components/TeamTable', () => ({ __esModule: true, - default: () =>
MockTeamTable
, + default: () =>
Team member list
, })); jest.mock('./components/AddNewTeamMemberModal', () => ({ __esModule: true, - AddNewTeamMemberTrigger: () =>
MockAddNewTeamMemberTrigger
, + AddNewTeamMemberTrigger: () => , })); jest.mock('../components/RoleCard', () => ({ @@ -40,10 +40,10 @@ jest.mock('../components/RoleCard', () => ({ description: string, permissionsByResource: any[] }) => ( -
-
{title}
-
{description}
-
{permissionsByResource.length} permissions
+
+

{title}

+

{description}

+ {permissionsByResource.length} permissions
), })); @@ -108,10 +108,10 @@ describe('LibrariesTeamManager', () => { expect(screen.getByText('lib-001')).toBeInTheDocument(); // subtitle // TeamTable is rendered - expect(screen.getByTestId('team-table')).toBeInTheDocument(); + expect(screen.getByRole('table', { name: 'Team Members Table' })).toBeInTheDocument(); // AddNewTeamMemberTrigger is rendered - expect(screen.getByTestId('add-team-member-trigger')).toBeInTheDocument(); + expect(screen.getByRole('button', { name: 'Add Team Member' })).toBeInTheDocument(); }); it('renders role cards when "Roles" tab is selected', async () => { @@ -123,10 +123,10 @@ describe('LibrariesTeamManager', () => { const rolesTab = await screen.findByRole('tab', { name: /roles/i }); await user.click(rolesTab); - const roleCards = await screen.findAllByTestId('role-card'); + const roleCards = await screen.findAllByRole('article', { name: /Role:/ }); const rolesScope = within(roleCards[0]); expect(roleCards.length).toBe(1); - expect(rolesScope.getByText('Instructor')).toBeInTheDocument(); + expect(rolesScope.getByRole('heading', { name: 'Instructor' })).toBeInTheDocument(); expect(screen.getByText(/Can manage content/i)).toBeInTheDocument(); expect(screen.getByText(/1 permissions/i)).toBeInTheDocument(); }); diff --git a/src/authz-module/libraries-manager/components/AddNewTeamMemberModal/AddNewTeamMemberTrigger.test.tsx b/src/authz-module/libraries-manager/components/AddNewTeamMemberModal/AddNewTeamMemberTrigger.test.tsx index b4b32d7f..43d70a31 100644 --- a/src/authz-module/libraries-manager/components/AddNewTeamMemberModal/AddNewTeamMemberTrigger.test.tsx +++ b/src/authz-module/libraries-manager/components/AddNewTeamMemberModal/AddNewTeamMemberTrigger.test.tsx @@ -21,26 +21,27 @@ jest.mock('./AddNewTeamMemberModal', () => { isOpen, close, onSave, isLoading, formValues, handleChangeForm, }) => ( isOpen ? ( -
- - +
+ +