Files
2026-07-13 12:08:39 +08:00

51 lines
1.4 KiB
TypeScript

import { http, HttpResponse } from 'msw';
import { render } from '@testing-library/react';
import { server } from '@/setup-tests/server';
import { isoDate } from '@/portainer/filters/filters';
import { withTestRouter } from '@/react/test-utils/withRouter';
import { withTestQueryProvider } from '@/react/test-utils/withTestQuery';
import { BackupFailedPanel } from './BackupFailedPanel';
test('when backup failed, should show message', async () => {
const timestamp = 1500;
const { findByText } = renderComponent({ failed: true, timestamp });
await expect(
findByText(
`The latest automated backup has failed at ${isoDate(
timestamp
)}. For details please see the log files and have a look at the`,
{ exact: false }
)
).resolves.toBeVisible();
});
test("when user is using less nodes then allowed he shouldn't see message", async () => {
const { findByText } = renderComponent({ failed: false });
await expect(
findByText('The latest automated backup has failed at', { exact: false })
).rejects.toBeTruthy();
});
function renderComponent({
failed,
timestamp,
}: {
failed: boolean;
timestamp?: number;
}) {
server.use(
http.get('/api/backup/s3/status', () =>
HttpResponse.json({ Failed: failed, TimestampUTC: timestamp })
)
);
const Wrapped = withTestQueryProvider(withTestRouter(BackupFailedPanel));
return render(<Wrapped />);
}