diff --git a/frontend/e2e/accessibility.spec.ts b/frontend/e2e/accessibility.spec.ts index 7f6c5921..b8f983fe 100644 --- a/frontend/e2e/accessibility.spec.ts +++ b/frontend/e2e/accessibility.spec.ts @@ -11,7 +11,8 @@ const AUTHENTICATED_PAGES = [ { name: 'home', path: '/' }, { name: 'persons', path: '/persons' }, { name: 'aktivitaeten', path: '/aktivitaeten' }, - { name: 'admin', path: '/admin' } + { name: 'admin', path: '/admin' }, + { name: 'admin-system', path: '/admin/system' } ]; function buildAxe(page: Parameters[0]['page']) { diff --git a/frontend/e2e/admin.spec.ts b/frontend/e2e/admin.spec.ts index 57682eec..d3bc26f1 100644 --- a/frontend/e2e/admin.spec.ts +++ b/frontend/e2e/admin.spec.ts @@ -248,3 +248,28 @@ test.describe('Admin system tab — backfill file hashes', () => { await page.screenshot({ path: 'test-results/e2e/admin-backfill-hashes.png' }); }); }); + +// ─── System tab — generate thumbnails ───────────────────────────────────────── + +test.describe('Admin system tab — generate thumbnails', () => { + test('admin triggers thumbnail generation and sees DONE within 30s', async ({ page }) => { + test.setTimeout(45_000); + + await page.goto('/admin'); + await page.waitForSelector('[data-hydrated]'); + + // Navigate to System tab + await page.getByRole('button', { name: /system/i }).click(); + + const btn = page + .locator('[data-thumbnails-trigger]') + .or(page.getByRole('button', { name: /thumbnails erzeugen/i })); + await expect(btn.first()).toBeVisible(); + await btn.first().click(); + + // Status transitions RUNNING → DONE; poll message shows the final summary + await expect(page.getByTestId('thumbnails-status-done')).toBeVisible({ timeout: 30_000 }); + + await page.screenshot({ path: 'test-results/e2e/admin-generate-thumbnails.png' }); + }); +});