import wrapper from '@cloudscape-design/components/test-utils/dom';
import '@testing-library/jest-dom';
import { render, screen } from '@testing-library/react';
import { useGetFileDetailsById, useGetCaseActions } from '../../src/api/cases';
import { breadcrumbLabels, commonLabels } from '../../src/common/labels';
import FileDetailPage from '../../src/pages/file-detail';
let query: { caseId: any; fileId: any } = { caseId: '100', fileId: '200' };
jest.mock('next/router', () => ({
useRouter: jest.fn().mockImplementation(() => ({
query,
push: jest.fn(),
})),
}));
jest.mock('../../src/api/cases', () => ({
useGetFileDetailsById: jest.fn(),
useGetCaseActions: jest.fn(),
}));
describe('CaseDetailsPage', () => {
it('renders a blank page with no caseId', async () => {
useGetFileDetailsById.mockImplementation(() => ({
data: undefined,
isLoading: false,
}));
render();
await screen.findByText(commonLabels.notFoundLabel);
});
it('renders a loading label during fetch', () => {
useGetFileDetailsById.mockImplementation(() => ({
data: undefined,
isLoading: true,
}));
render();
screen.findByText(commonLabels.loadingLabel);
});
it('renders a not found warning if no caseId is provided', () => {
query = { caseId: undefined, fileId: '200' };
const page = render();
render();
screen.findByText(commonLabels.notFoundLabel);
});
it('renders a not found warning if no fileId is provided', () => {
query = { caseId: '100', fileId: undefined };
render();
screen.findByText(commonLabels.notFoundLabel);
});
it('renders a not found warning if caseId is not a string', () => {
query = { caseId: {}, fileId: '200' };
const page = render();
render();
screen.findByText(commonLabels.notFoundLabel);
});
it('renders a not found warning if fileId is not a string', () => {
query = { caseId: '100', fileId: {} };
render();
screen.findByText(commonLabels.notFoundLabel);
});
});