Skip to content

Commit 6e6254c

Browse files
authored
refactor(react): remove any in test cases
2 parents 8408106 + 8b46663 commit 6e6254c

6 files changed

Lines changed: 229 additions & 344 deletions

File tree

packages/react/src/components/my-organization/idp-management/sso-provider-edit/__tests__/sso-provider-tab.test.tsx

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,17 @@ import userEvent from '@testing-library/user-event';
33
import { vi, describe, it, expect, beforeEach } from 'vitest';
44

55
import { renderWithProviders } from '../../../../../internals';
6+
import { createMockI18nService } from '../../../../../internals/__mocks__/core/i18n-service.mocks';
67
import type { SsoProviderTabProps } from '../../../../../types/my-organization/idp-management/sso-provider/sso-provider-tab-types';
78
import { SsoProviderTab } from '../sso-provider-tab';
89

910
// Mock hooks
1011
vi.mock('../../../../../hooks/use-translator', () => ({
1112
useTranslator: () => ({
12-
t: (key: string, params?: any) => {
13-
if (key === 'delete_button_label') return 'Delete';
14-
if (key === 'remove_button_label') return 'Remove';
15-
if (key === 'title' && params?.providerName) return `Delete ${params.providerName}`;
16-
return key;
17-
},
13+
t: createMockI18nService().translator('idp_management.edit_sso_provider.tabs.sso'),
14+
changeLanguage: vi.fn(),
15+
currentLanguage: 'en',
16+
fallbackLanguage: 'en',
1817
}),
1918
}));
2019

@@ -89,7 +88,7 @@ describe('SsoProviderTab', () => {
8988
it('should render delete section', () => {
9089
renderWithProviders(<SsoProviderTab {...mockProps} />);
9190

92-
expect(screen.getByRole('button', { name: 'Delete' })).toBeInTheDocument();
91+
expect(screen.getByRole('button', { name: 'delete_button_label' })).toBeInTheDocument();
9392
});
9493
});
9594

@@ -98,15 +97,17 @@ describe('SsoProviderTab', () => {
9897
const props = { ...mockProps, shouldAllowDeletion: false };
9998
renderWithProviders(<SsoProviderTab {...props} />);
10099

101-
expect(screen.queryByRole('button', { name: 'Delete' })).not.toBeInTheDocument();
100+
expect(
101+
screen.queryByRole('button', { name: 'delete_button_label' }),
102+
).not.toBeInTheDocument();
102103
});
103104
});
104105

105106
describe('when provider and organization are provided', () => {
106107
it('should render remove section', () => {
107108
renderWithProviders(<SsoProviderTab {...mockProps} />);
108109

109-
expect(screen.getByRole('button', { name: 'Remove' })).toBeInTheDocument();
110+
expect(screen.getByRole('button', { name: 'remove_button_label' })).toBeInTheDocument();
110111
});
111112
});
112113

@@ -134,7 +135,7 @@ describe('SsoProviderTab', () => {
134135
const user = userEvent.setup();
135136
renderWithProviders(<SsoProviderTab {...mockProps} />);
136137

137-
const deleteButton = screen.getByRole('button', { name: 'Delete' });
138+
const deleteButton = screen.getByRole('button', { name: 'delete_button_label' });
138139
await user.click(deleteButton);
139140

140141
// The delete button opens a modal, not calls onDelete directly
@@ -146,7 +147,7 @@ describe('SsoProviderTab', () => {
146147
const user = userEvent.setup();
147148
renderWithProviders(<SsoProviderTab {...mockProps} />);
148149

149-
const removeButton = screen.getByRole('button', { name: 'Remove' });
150+
const removeButton = screen.getByRole('button', { name: 'remove_button_label' });
150151
await user.click(removeButton);
151152

152153
// The remove button opens a modal, not calls onRemove directly
@@ -162,7 +163,7 @@ describe('SsoProviderTab', () => {
162163
renderWithProviders(<SsoProviderTab {...props} />);
163164

164165
// Verify the delete button still renders (loading is handled in modal)
165-
expect(screen.getByRole('button', { name: 'Delete' })).toBeInTheDocument();
166+
expect(screen.getByRole('button', { name: 'delete_button_label' })).toBeInTheDocument();
166167
});
167168
});
168169

@@ -172,7 +173,7 @@ describe('SsoProviderTab', () => {
172173
renderWithProviders(<SsoProviderTab {...props} />);
173174

174175
// Verify the remove button still renders (loading is handled in modal)
175-
expect(screen.getByRole('button', { name: 'Remove' })).toBeInTheDocument();
176+
expect(screen.getByRole('button', { name: 'remove_button_label' })).toBeInTheDocument();
176177
});
177178
});
178179
});
@@ -183,15 +184,15 @@ describe('SsoProviderTab', () => {
183184
const props = { ...mockProps, readOnly: true };
184185
renderWithProviders(<SsoProviderTab {...props} />);
185186

186-
const deleteButton = screen.getByRole('button', { name: 'Delete' });
187+
const deleteButton = screen.getByRole('button', { name: 'delete_button_label' });
187188
expect(deleteButton).toBeDisabled();
188189
});
189190

190191
it('should disable remove button', () => {
191192
const props = { ...mockProps, readOnly: true };
192193
renderWithProviders(<SsoProviderTab {...props} />);
193194

194-
const removeButton = screen.getByRole('button', { name: 'Remove' });
195+
const removeButton = screen.getByRole('button', { name: 'remove_button_label' });
195196
expect(removeButton).toBeDisabled();
196197
});
197198
});

packages/react/src/components/my-organization/idp-management/sso-provider-edit/sso-provisioning/__tests__/provisioning-manage-token.test.tsx

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,16 @@ import { fireEvent, render, screen, waitFor } from '@testing-library/react';
33
import userEvent from '@testing-library/user-event';
44
import { describe, it, expect, vi, beforeEach } from 'vitest';
55

6+
import { createMockI18nService } from '../../../../../../internals/__mocks__/core/i18n-service.mocks';
67
import { ProvisioningManageToken } from '../provisioning-manage-token';
78

89
// Mock hooks
910
vi.mock('../../../../../../hooks/use-translator', () => ({
1011
useTranslator: () => ({
11-
t: (key: string, params?: any) => {
12-
if (key === 'delete_button_label') return 'Delete';
13-
if (key === 'remove_button_label') return 'Remove';
14-
if (key === 'title' && params?.providerName) return `Delete ${params.providerName}`;
15-
return key;
16-
},
12+
t: createMockI18nService().translator('idp_management.sso_provisioning.manage_token'),
13+
changeLanguage: vi.fn(),
14+
currentLanguage: 'en',
15+
fallbackLanguage: 'en',
1716
}),
1817
}));
1918

packages/react/src/components/my-organization/idp-management/sso-provider-edit/sso-provisioning/__tests__/sso-provisioning-delete-modal.test.tsx

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { render, screen, waitFor } from '@testing-library/react';
22
import userEvent from '@testing-library/user-event';
33
import { describe, it, expect, vi, beforeEach } from 'vitest';
44

5+
import { createMockI18nService } from '../../../../../../internals/__mocks__/core/i18n-service.mocks';
56
import { SsoProvisioningDeleteModal } from '../sso-provisioning-delete-modal';
67

78
describe('SsoProvisioningDeleteModal', () => {
@@ -18,12 +19,10 @@ describe('SsoProvisioningDeleteModal', () => {
1819
// Mock hooks
1920
vi.mock('../../../../../../hooks/use-translator', () => ({
2021
useTranslator: () => ({
21-
t: (key: string, params?: any) => {
22-
if (key === 'delete_button_label') return 'Delete';
23-
if (key === 'remove_button_label') return 'Remove';
24-
if (key === 'title' && params?.providerName) return `Delete ${params.providerName}`;
25-
return key;
26-
},
22+
t: createMockI18nService().translator('idp_management.sso_provisioning.delete_modal'),
23+
changeLanguage: vi.fn(),
24+
currentLanguage: 'en',
25+
fallbackLanguage: 'en',
2726
}),
2827
}));
2928

packages/react/src/hooks/my-organization/config/__tests__/use-config.test.tsx

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,23 @@ import { AVAILABLE_STRATEGY_LIST } from '@auth0/universal-components-core';
22
import { renderHook, waitFor } from '@testing-library/react';
33
import { describe, it, expect, vi, beforeEach } from 'vitest';
44

5-
import { useCoreClient } from '../../../use-core-client';
5+
import { mockCore } from '../../../../internals/test-setup';
6+
import * as useCoreClientModule from '../../../use-core-client';
67
import { useConfig } from '../use-config';
78

8-
vi.mock('../../../use-core-client');
9+
const { initMockCoreClient } = mockCore();
910

1011
describe('useConfig', () => {
11-
const mockGet = vi.fn();
12-
const mockCoreClient = {
13-
getMyOrganizationApiClient: () => ({
14-
organization: {
15-
configuration: {
16-
get: mockGet,
17-
},
18-
},
19-
}),
20-
};
12+
let mockGet: ReturnType<typeof vi.fn>;
13+
let mockCoreClient: ReturnType<typeof initMockCoreClient>;
2114

2215
beforeEach(() => {
2316
vi.clearAllMocks();
24-
(useCoreClient as any).mockReturnValue({ coreClient: mockCoreClient });
17+
mockCoreClient = initMockCoreClient();
18+
vi.spyOn(useCoreClientModule, 'useCoreClient').mockReturnValue({
19+
coreClient: mockCoreClient,
20+
});
21+
mockGet = vi.mocked(mockCoreClient.getMyOrganizationApiClient().organization.configuration.get);
2522
});
2623

2724
it('should fetch config on mount', async () => {
@@ -168,15 +165,16 @@ describe('useConfig', () => {
168165

169166
expect(mockGet).toHaveBeenCalledTimes(1);
170167

171-
result.current.fetchConfig();
172-
173168
await waitFor(() => {
169+
result.current.fetchConfig();
174170
expect(mockGet).toHaveBeenCalledTimes(2);
175171
});
176172
});
177173

178174
it('should not fetch config when coreClient is not available', async () => {
179-
(useCoreClient as any).mockReturnValue({ coreClient: null });
175+
vi.spyOn(useCoreClientModule, 'useCoreClient').mockReturnValue({
176+
coreClient: null,
177+
});
180178

181179
const { result } = renderHook(() => useConfig());
182180

packages/react/src/hooks/my-organization/config/__tests__/use-idp-config.test.tsx

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,21 @@
11
import { renderHook, waitFor } from '@testing-library/react';
22
import { describe, it, expect, vi, beforeEach } from 'vitest';
33

4+
import { createMockCoreClient } from '../../../../internals/__mocks__/core/core-client.mocks';
45
import { useCoreClient } from '../../../use-core-client';
56
import { useIdpConfig } from '../use-idp-config';
67

78
vi.mock('../../../use-core-client');
89

910
describe('useIdpConfig', () => {
11+
const mockCoreClient = createMockCoreClient();
1012
const mockGet = vi.fn();
11-
const mockCoreClient = {
12-
getMyOrganizationApiClient: () => ({
13-
organization: {
14-
configuration: {
15-
identityProviders: {
16-
get: mockGet,
17-
},
18-
},
19-
},
20-
}),
21-
};
2213

2314
beforeEach(() => {
2415
vi.clearAllMocks();
25-
(useCoreClient as any).mockReturnValue({ coreClient: mockCoreClient });
16+
const mockMyOrganizationClient = mockCoreClient.getMyOrganizationApiClient();
17+
mockMyOrganizationClient.organization.configuration.identityProviders.get = mockGet;
18+
vi.mocked(useCoreClient).mockReturnValue({ coreClient: mockCoreClient });
2619
});
2720

2821
it('should fetch idp config on mount', async () => {
@@ -34,6 +27,7 @@ describe('useIdpConfig', () => {
3427
},
3528
},
3629
};
30+
3731
mockGet.mockResolvedValue(mockIdpConfig);
3832

3933
const { result } = renderHook(() => useIdpConfig());
@@ -156,7 +150,7 @@ describe('useIdpConfig', () => {
156150
expect(result.current.isLoadingIdpConfig).toBe(false);
157151
});
158152

159-
expect(result.current.isProvisioningEnabled('google-apps' as any)).toBe(false);
153+
expect(result.current.isProvisioningEnabled('google-apps')).toBe(false);
160154
});
161155

162156
it('should return true when scim provisioning method is enabled', async () => {
@@ -218,15 +212,15 @@ describe('useIdpConfig', () => {
218212

219213
expect(mockGet).toHaveBeenCalledTimes(1);
220214

221-
result.current.fetchIdpConfig();
215+
await waitFor(() => result.current.fetchIdpConfig());
222216

223217
await waitFor(() => {
224218
expect(mockGet).toHaveBeenCalledTimes(2);
225219
});
226220
});
227221

228222
it('should not fetch idp config when coreClient is not available', async () => {
229-
(useCoreClient as any).mockReturnValue({ coreClient: null });
223+
vi.mocked(useCoreClient).mockReturnValue({ coreClient: null });
230224

231225
const { result } = renderHook(() => useIdpConfig());
232226

0 commit comments

Comments
 (0)