Fix warning in AppUpdateBanner

This commit is contained in:
Alejandro Celaya
2023-12-31 19:59:56 +01:00
parent fc9532690d
commit 2ad0daaed5
4 changed files with 54 additions and 45 deletions

View File

@@ -1,4 +1,4 @@
import { render, screen } from '@testing-library/react';
import { act, render, screen, waitFor } from '@testing-library/react';
import { fromPartial } from '@total-typescript/shoehorn';
import { MemoryRouter } from 'react-router-dom';
import { AppFactory } from '../../src/app/App';
@@ -17,7 +17,7 @@ describe('<App />', () => {
ShlinkVersionsContainer: () => <>ShlinkVersions</>,
}),
);
const setUp = (activeRoute = '/') => render(
const setUp = async (activeRoute = '/') => act(() => render(
<MemoryRouter initialEntries={[{ pathname: activeRoute }]}>
<App
fetchServers={() => {}}
@@ -27,15 +27,17 @@ describe('<App />', () => {
resetAppUpdate={() => {}}
/>
</MemoryRouter>,
);
));
it('passes a11y checks', () => checkAccessibility(setUp()));
it('renders children components', () => {
setUp();
it('renders children components', async () => {
await setUp();
expect(screen.getByText('MainHeader')).toBeInTheDocument();
expect(screen.getByText('ShlinkVersions')).toBeInTheDocument();
await waitFor(() => screen.getByRole('alert'));
expect(screen.getByText('This app has just been updated!')).toBeInTheDocument();
});
@@ -50,16 +52,16 @@ describe('<App />', () => {
['/server/def456/bar', 'ShlinkWebComponentContainer'],
['/other', 'Oops! We could not find requested route.'],
])('renders expected route', async (activeRoute, expectedComponent) => {
setUp(activeRoute);
expect(await screen.findByText(expectedComponent)).toBeInTheDocument();
await setUp(activeRoute);
expect(screen.getByText(expectedComponent)).toBeInTheDocument();
});
it.each([
['/foo', 'shlink-wrapper'],
['/bar', 'shlink-wrapper'],
['/', 'shlink-wrapper d-flex d-md-block align-items-center'],
])('renders expected classes on shlink-wrapper based on current pathname', (pathname, expectedClasses) => {
const { container } = setUp(pathname);
])('renders expected classes on shlink-wrapper based on current pathname', async (pathname, expectedClasses) => {
const { container } = await setUp(pathname);
const shlinkWrapper = container.querySelector('.shlink-wrapper');
expect(shlinkWrapper).toHaveAttribute('class', expectedClasses);