diff --git a/tests/unit/screens/SettingsScreen.test.tsx b/tests/unit/screens/SettingsScreen.test.tsx index bc41ebcb..f1e7c477 100644 --- a/tests/unit/screens/SettingsScreen.test.tsx +++ b/tests/unit/screens/SettingsScreen.test.tsx @@ -1,3 +1,4 @@ +import type { UserEvent } from '@testing-library/user-event'; import { server } from '@tests/mocks/node'; import { fireEvent, render, screen, userEvent } from '@tests/mocks/test-utils'; import { HttpResponse, http } from 'msw'; @@ -41,6 +42,15 @@ beforeEach(async () => { URL.revokeObjectURL = vi.fn(); }); +async function generateInvite(user: UserEvent) { + await user.type( + screen.getByLabelText('Remote Archive URL'), + 'https://archive.example.com', + ); + await user.type(screen.getByLabelText('Bearer Token'), 'my-secret-token'); + await user.click(screen.getByRole('button', { name: 'Generate Invite' })); +} + describe('SettingsScreen', () => { it('renders the settings heading', () => { render(); @@ -82,12 +92,7 @@ describe('SettingsScreen', () => { const user = userEvent.setup(); render(); - await user.type( - screen.getByLabelText('Remote Archive URL'), - 'https://archive.example.com', - ); - await user.type(screen.getByLabelText('Bearer Token'), 'my-secret-token'); - await user.click(screen.getByRole('button', { name: 'Generate Invite' })); + await generateInvite(user); // Results header should appear expect(await screen.findByText('Results')).toBeInTheDocument(); @@ -113,12 +118,7 @@ describe('SettingsScreen', () => { const user = userEvent.setup(); render(); - await user.type( - screen.getByLabelText('Remote Archive URL'), - 'https://archive.example.com', - ); - await user.type(screen.getByLabelText('Bearer Token'), 'my-secret-token'); - await user.click(screen.getByRole('button', { name: 'Generate Invite' })); + await generateInvite(user); expect(await screen.findByText('Expires in 24 hours.')).toBeInTheDocument(); }); @@ -141,12 +141,7 @@ describe('SettingsScreen', () => { const user = userEvent.setup(); render(); - await user.type( - screen.getByLabelText('Remote Archive URL'), - 'https://archive.example.com', - ); - await user.type(screen.getByLabelText('Bearer Token'), 'my-secret-token'); - await user.click(screen.getByRole('button', { name: 'Generate Invite' })); + await generateInvite(user); expect( await screen.findByText( @@ -164,12 +159,7 @@ describe('SettingsScreen', () => { render(); // Fill form and generate - await user.type( - screen.getByLabelText('Remote Archive URL'), - 'https://archive.example.com', - ); - await user.type(screen.getByLabelText('Bearer Token'), 'my-secret-token'); - await user.click(screen.getByRole('button', { name: 'Generate Invite' })); + await generateInvite(user); // Wait for results to render await screen.findByText('Results');