unit test fixes
All checks were successful
Deploy to Test Environment / deploy-to-test (push) Successful in 44m36s

This commit is contained in:
2025-12-18 15:35:02 -08:00
parent 0d91c58299
commit 7a557b5648
17 changed files with 355 additions and 104 deletions

View File

@@ -24,14 +24,19 @@ describe('AdminBrandManager', () => {
vi.clearAllMocks();
});
it('should render a loading state initially', async () => {
// Mock a pending promise that never resolves to keep it in a loading state
it('should render a loading state initially', () => {
console.log('TEST START: should render a loading state initially');
// Mock a promise that never resolves to keep the component in a loading state.
console.log('TEST SETUP: Mocking fetchAllBrands with a non-resolving promise.');
mockedApiClient.fetchAllBrands.mockReturnValue(new Promise(() => {}));
console.log('TEST ACTION: Rendering AdminBrandManager component.');
render(<AdminBrandManager />);
// The loading state should be visible
console.log('TEST ASSERTION: Checking for the loading text.');
expect(screen.getByText('Loading brands...')).toBeInTheDocument();
console.log('TEST SUCCESS: Loading text is visible.');
console.log('TEST END: should render a loading state initially');
});
@@ -219,16 +224,20 @@ describe('AdminBrandManager', () => {
it('should show an error toast if no file is selected', async () => {
console.log('TEST START: should show an error toast if no file is selected');
console.log('TEST SETUP: Mocking fetchAllBrands to resolve successfully.');
mockedApiClient.fetchAllBrands.mockImplementation(
async () => new Response(JSON.stringify(mockBrands), { status: 200 })
);
render(<AdminBrandManager />);
console.log('TEST ACTION: Waiting for initial brands to render.');
await waitFor(() => expect(screen.getByText('No Frills')).toBeInTheDocument());
const input = screen.getByLabelText('Upload logo for No Frills');
// Simulate canceling the file picker by firing a change event with no files
fireEvent.change(input, { target: { files: null } });
// Simulate canceling the file picker by firing a change event with an empty file list.
console.log('TEST ACTION: Firing file change event with an empty file list.');
fireEvent.change(input, { target: { files: [] } });
console.log('TEST ASSERTION: Waiting for the "no file selected" error toast.');
await waitFor(() => {
expect(mockedToast.error).toHaveBeenCalledWith('Please select a file to upload.');
console.log('TEST SUCCESS: Error toast shown when no file is selected.');