mirror of
https://github.com/shlinkio/shlink-web-client.git
synced 2026-04-22 06:26:19 +00:00
Remove usages of vi.mock
This commit is contained in:
@@ -1,34 +1,33 @@
|
||||
import { screen, waitFor } from '@testing-library/react';
|
||||
import { fromPartial } from '@total-typescript/shoehorn';
|
||||
import { useNavigate } from 'react-router-dom';
|
||||
import { createMemoryHistory } from 'history';
|
||||
import { Router } from 'react-router-dom';
|
||||
import { DeleteServerModal } from '../../src/servers/DeleteServerModal';
|
||||
import { checkAccessibility } from '../__helpers__/accessibility';
|
||||
import { renderWithEvents } from '../__helpers__/setUpTest';
|
||||
import { TestModalWrapper } from '../__helpers__/TestModalWrapper';
|
||||
|
||||
vi.mock('react-router-dom', async () => ({
|
||||
...(await vi.importActual<any>('react-router-dom')),
|
||||
useNavigate: vi.fn(),
|
||||
}));
|
||||
|
||||
describe('<DeleteServerModal />', () => {
|
||||
const deleteServerMock = vi.fn();
|
||||
const navigate = vi.fn();
|
||||
const serverName = 'the_server_name';
|
||||
const setUp = () => {
|
||||
(useNavigate as any).mockReturnValue(navigate);
|
||||
|
||||
return renderWithEvents(
|
||||
<TestModalWrapper
|
||||
renderModal={(args) => (
|
||||
<DeleteServerModal
|
||||
{...args}
|
||||
server={fromPartial({ name: serverName })}
|
||||
deleteServer={deleteServerMock}
|
||||
const history = createMemoryHistory({ initialEntries: ['/foo'] });
|
||||
return {
|
||||
history,
|
||||
...renderWithEvents(
|
||||
<Router location={history.location} navigator={history}>
|
||||
<TestModalWrapper
|
||||
renderModal={(args) => (
|
||||
<DeleteServerModal
|
||||
{...args}
|
||||
server={fromPartial({ name: serverName })}
|
||||
deleteServer={deleteServerMock}
|
||||
/>
|
||||
)}
|
||||
/>
|
||||
)}
|
||||
/>,
|
||||
);
|
||||
</Router>,
|
||||
),
|
||||
};
|
||||
};
|
||||
|
||||
it('passes a11y checks', () => checkAccessibility(setUp()));
|
||||
@@ -51,22 +50,23 @@ describe('<DeleteServerModal />', () => {
|
||||
[() => screen.getByRole('button', { name: 'Cancel' })],
|
||||
[() => screen.getByLabelText('Close')],
|
||||
])('toggles when clicking cancel button', async (getButton) => {
|
||||
const { user } = setUp();
|
||||
const { user, history } = setUp();
|
||||
|
||||
expect(history.location.pathname).toEqual('/foo');
|
||||
await user.click(getButton());
|
||||
|
||||
expect(deleteServerMock).not.toHaveBeenCalled();
|
||||
expect(navigate).not.toHaveBeenCalled();
|
||||
expect(history.location.pathname).toEqual('/foo'); // No navigation happens, keeping initial pathname
|
||||
});
|
||||
|
||||
it('deletes server when clicking accept button', async () => {
|
||||
const { user } = setUp();
|
||||
const { user, history } = setUp();
|
||||
|
||||
expect(deleteServerMock).not.toHaveBeenCalled();
|
||||
expect(navigate).not.toHaveBeenCalled();
|
||||
expect(history.location.pathname).toEqual('/foo');
|
||||
await user.click(screen.getByRole('button', { name: 'Delete' }));
|
||||
|
||||
await waitFor(() => expect(deleteServerMock).toHaveBeenCalledTimes(1));
|
||||
await waitFor(() => expect(navigate).toHaveBeenCalledTimes(1));
|
||||
await waitFor(() => expect(history.location.pathname).toEqual('/'));
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user