From 45221ced32c5e0c2a7b248cf913948c045eb1de7 Mon Sep 17 00:00:00 2001 From: Thorsten Bus Date: Sun, 31 May 2026 04:20:54 +0200 Subject: [PATCH] test(e2e): image upload + detail page --- tests/e2e/keyvisual-background.spec.ts | 66 ++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 tests/e2e/keyvisual-background.spec.ts diff --git a/tests/e2e/keyvisual-background.spec.ts b/tests/e2e/keyvisual-background.spec.ts new file mode 100644 index 0000000..eedc3e6 --- /dev/null +++ b/tests/e2e/keyvisual-background.spec.ts @@ -0,0 +1,66 @@ +import { test, expect } from '@playwright/test' + +test.use({ storageState: '.auth/user.json' }) + +test.describe('Keyvisual & Background Panels', () => { + test('Settings page has Namenseinblender submenu and field', async ({ page }) => { + await page.goto('/settings') + await expect(page.getByText('Namenseinblender')).toBeVisible() + await page.getByText('Namenseinblender').click() + await expect(page.getByTestId('namenseinblender-macro')).toBeVisible() + }) + + test('service edit page shows keyvisual and background panels', async ({ page }) => { + await page.goto('/services') + + // Find an edit link + const editLink = page.getByRole('link', { name: /Bearbeiten/i }).first() + const count = await page.getByRole('link', { name: /Bearbeiten/i }).count() + if (count === 0) { + // No services in DB — skip gracefully + test.skip(true, 'No services available in test DB') + return + } + + await editLink.click() + await page.waitForURL(/\/services\/\d+\/edit/) + + // Both panels must be visible + await expect(page.getByTestId('keyvisual-panel')).toBeVisible() + await expect(page.getByTestId('background-panel')).toBeVisible() + }) + + test('panels show upload inputs', async ({ page }) => { + await page.goto('/services') + const count = await page.getByRole('link', { name: /Bearbeiten/i }).count() + if (count === 0) { + test.skip(true, 'No services available in test DB') + return + } + + await page.getByRole('link', { name: /Bearbeiten/i }).first().click() + await page.waitForURL(/\/services\/\d+\/edit/) + + // Upload inputs must exist (hidden but present in DOM) + const kvInput = page.getByTestId('keyvisual-panel-upload-input') + const bgInput = page.getByTestId('background-panel-upload-input') + await expect(kvInput).toBeAttached() + await expect(bgInput).toBeAttached() + }) + + test('panels show German labels', async ({ page }) => { + await page.goto('/services') + const count = await page.getByRole('link', { name: /Bearbeiten/i }).count() + if (count === 0) { + test.skip(true, 'No services available in test DB') + return + } + + await page.getByRole('link', { name: /Bearbeiten/i }).first().click() + await page.waitForURL(/\/services\/\d+\/edit/) + + // German labels in panels + await expect(page.getByTestId('keyvisual-panel').getByText('Keyvisual')).toBeVisible() + await expect(page.getByTestId('background-panel').getByText('Hintergrundbild')).toBeVisible() + }) +})