diff --git a/frontend/e2e/documents.spec.ts b/frontend/e2e/documents.spec.ts index c2ee2960..03a380b6 100644 --- a/frontend/e2e/documents.spec.ts +++ b/frontend/e2e/documents.spec.ts @@ -80,6 +80,41 @@ test.describe('New document', () => { }); }); +test.describe('Document creation', () => { + test('user fills in a title and lands on the new document detail page', async ({ page }) => { + await page.goto('/documents/new'); + await page.waitForSelector('[data-hydrated]'); + + await page.getByLabel('Titel').fill('E2E Testbrief'); + await page.getByRole('button', { name: /Speichern/i }).click(); + + await expect(page).toHaveURL(/\/documents\/[^/]+$/); + await expect(page.getByText('E2E Testbrief')).toBeVisible(); + await page.screenshot({ path: 'test-results/e2e/document-create.png' }); + }); +}); + +test.describe('Document editing', () => { + test('user opens an existing document, changes the title, and sees the update', async ({ + page + }) => { + // Find the document created in the previous describe + await page.goto('/?q=E2E+Testbrief'); + await page.waitForSelector('[data-hydrated]'); + const docLink = page.getByRole('link', { name: 'E2E Testbrief' }).first(); + const href = await docLink.getAttribute('href'); + await page.goto(`${href}/edit`); + await page.waitForSelector('[data-hydrated]'); + + await page.getByLabel('Titel').fill('E2E Testbrief (überarbeitet)'); + await page.getByRole('button', { name: /Speichern/i }).click(); + + await expect(page).toHaveURL(/\/documents\/[^/]+$/); + await expect(page.getByText('E2E Testbrief (überarbeitet)')).toBeVisible(); + await page.screenshot({ path: 'test-results/e2e/document-edit-save.png' }); + }); +}); + test.describe('Document edit', () => { test('renders the edit form with pre-filled data', async ({ page }) => { // Navigate to home, find first document, go to its edit page