From a25239ac5a17120dfe61d2743565258ff65daa3e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 28 Jul 2026 23:04:17 -0300 Subject: [PATCH] refactor(test): extract shared generateInvite helper in SettingsScreen tests (#162) --- tests/unit/screens/SettingsScreen.test.tsx | 38 ++++++++-------------- 1 file changed, 14 insertions(+), 24 deletions(-) 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');