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');