From 3ed781d0cf15b428205719370f79675fd94660c7 Mon Sep 17 00:00:00 2001 From: Martin Berka Date: Wed, 29 Apr 2026 22:55:23 +0200 Subject: [PATCH] =?UTF-8?q?test:=20opravy=20Playwright=20test=C5=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- e2e/tests/helpers.ts | 13 ++++++++----- e2e/tests/pick-food.spec.ts | 5 ++--- e2e/tests/pizza-day.spec.ts | 3 ++- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/e2e/tests/helpers.ts b/e2e/tests/helpers.ts index 5835a83..5f05e21 100644 --- a/e2e/tests/helpers.ts +++ b/e2e/tests/helpers.ts @@ -11,11 +11,14 @@ export async function loginViaApi(page: Page, login: string): Promise { await page.evaluate((t) => localStorage.setItem('token', t), token); } -/** Vyčistí stav pizza dne pro zadaný dayIndex (0=pondělí…4=pátek) přes dev API. */ -export async function clearPizzaDay(request: APIRequestContext): Promise { - const today = new Date('2025-01-10'); // MOCK_DATA pins to Friday = dayIndex 4 +/** Vyčistí stav dne pro zadaný dayIndex (0=pondělí…4=pátek) přes dev API. + * /api/dev/* vyžaduje JWT – nejdřív získáme token přes /api/login. + */ +export async function clearDay(request: APIRequestContext, dayIndex = 4): Promise { + const loginResp = await request.post('/api/login', { data: {} }); + const token = await loginResp.json() as string; await request.post('/api/dev/clear', { - headers: { 'Content-Type': 'application/json', 'remote-user': 'e2e-user' }, - data: { dayIndex: 4 }, + headers: { Authorization: `Bearer ${token}` }, + data: { dayIndex }, }); } diff --git a/e2e/tests/pick-food.spec.ts b/e2e/tests/pick-food.spec.ts index 3860263..64cbd91 100644 --- a/e2e/tests/pick-food.spec.ts +++ b/e2e/tests/pick-food.spec.ts @@ -1,10 +1,9 @@ import { test, expect } from '@playwright/test'; +import { clearDay } from './helpers'; test.beforeEach(async ({ page, request }) => { // Vyčistíme volby dne, aby testy neovlivnily navzájem - await request.post('/api/dev/clear', { - data: { dayIndex: 4 }, - }); + await clearDay(request); await page.goto('/'); await page.waitForLoadState('networkidle'); // Počkáme, až se zobrazí volba stravování diff --git a/e2e/tests/pizza-day.spec.ts b/e2e/tests/pizza-day.spec.ts index 9325048..e3e4a23 100644 --- a/e2e/tests/pizza-day.spec.ts +++ b/e2e/tests/pizza-day.spec.ts @@ -1,11 +1,12 @@ import { test, expect } from '@playwright/test'; +import { clearDay } from './helpers'; // Pizza day testy musí běžet sekvenčně (sdílejí stav mock dne) test.describe.serial('pizza day životní cyklus', () => { test.beforeEach(async ({ request }) => { // Vyčistíme data mock dne před každým testem - await request.post('/api/dev/clear', { data: { dayIndex: 4 } }); + await clearDay(request); }); test('zobrazí sekci Pizza Day bez aktivního dne', async ({ page }) => {