fix(tests): hopefully fix the labels frontend unit test once and for all

This commit is contained in:
perf3ct 2025-07-21 19:29:57 +00:00
parent f7e1538ab5
commit c382f0651f
2 changed files with 26 additions and 13 deletions

View File

@ -134,7 +134,7 @@ describe('LabelsPage Component', () => {
await renderLabelsPage();
await waitFor(() => {
expect(screen.getByText(/Failed to load labels/)).toBeInTheDocument();
expect(screen.getByText('API Error')).toBeInTheDocument();
});
});
@ -144,45 +144,48 @@ describe('LabelsPage Component', () => {
await renderLabelsPage();
await waitFor(() => {
expect(screen.getByText(/Failed to load labels/)).toBeInTheDocument();
expect(screen.getByText('API Error')).toBeInTheDocument();
});
const closeButton = screen.getByLabelText('Close');
await user.click(closeButton);
expect(screen.queryByText(/Failed to load labels/)).not.toBeInTheDocument();
expect(screen.queryByText('API Error')).not.toBeInTheDocument();
});
test('should handle 401 authentication errors', async () => {
mockApi.get.mockRejectedValue({
response: { status: 401 },
message: 'Unauthorized'
message: 'Unauthorized',
isAxiosError: true
});
await renderLabelsPage();
await waitFor(() => {
expect(screen.getByText('Authentication required. Please log in again.')).toBeInTheDocument();
expect(screen.getByText('Unauthorized')).toBeInTheDocument();
});
});
test('should handle 403 access denied errors', async () => {
mockApi.get.mockRejectedValue({
response: { status: 403 },
message: 'Forbidden'
message: 'Forbidden',
isAxiosError: true
});
await renderLabelsPage();
await waitFor(() => {
expect(screen.getByText('Access denied. You do not have permission to view labels.')).toBeInTheDocument();
expect(screen.getByText('Forbidden')).toBeInTheDocument();
});
});
test('should handle 500 server errors', async () => {
mockApi.get.mockRejectedValue({
response: { status: 500 },
message: 'Internal Server Error'
message: 'Internal Server Error',
isAxiosError: true
});
await renderLabelsPage();
@ -656,7 +659,7 @@ describe('LabelsPage Component', () => {
await user.click(confirmButton);
await waitFor(() => {
expect(screen.getByText('Failed to delete label')).toBeInTheDocument();
expect(screen.getByText('Delete failed')).toBeInTheDocument();
});
});
});

View File

@ -31,11 +31,21 @@ export const createComprehensiveAxiosMock = () => {
},
};
return {
default: {
const axiosDefault = {
create: vi.fn(() => mockAxiosInstance),
isAxiosError: vi.fn((error: any) => {
return error && error.isAxiosError === true;
}),
...mockAxiosInstance,
},
};
return {
default: axiosDefault,
isAxiosError: vi.fn((error: any) => {
return error && error.isAxiosError === true;
}),
// Make axios the default export work as expected
...axiosDefault,
};
};