1e51ef7def
- Konzept/, didaktik_geografie/, didaktik_simulation/, v2-modules/, v2-platform/ - 12 code-workspace-Files - STATUS-*.md - viele M/D/R-Änderungen an bereits getrackten Files - .gitignore verstärkt: **/.humaninput/, **/secret_keys.txt Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
55 lines
2.2 KiB
JavaScript
55 lines
2.2 KiB
JavaScript
// @ts-check
|
|
const { test, expect } = require('@playwright/test');
|
|
|
|
/**
|
|
* Stufe 2 · Heli-Startfreigabe-Regression
|
|
*
|
|
* Bug 2026-06-10: Startfreigabe-Button wurde aktiv sobald das Plan-Audio
|
|
* durch war, AUCH wenn nicht alle Wegpunkte angeklickt waren. Fix: der
|
|
* Button bleibt deaktiviert mit „Noch N Wegpunkte anklicken" bis alle
|
|
* Klicks da sind UND Audio durch ist.
|
|
*
|
|
* Dieser Test:
|
|
* 1) öffnet Heli-Sim mit einer kurzen Mission
|
|
* 2) wartet bis Plan-Audio durch ist
|
|
* 3) prüft: ohne Klicks → Button text enthält „Noch" oder ist disabled
|
|
* 4) klickt einen Wegpunkt → Button-Text/State updaten
|
|
*/
|
|
|
|
test.skip('Heli M2 · Startfreigabe nur wenn alle Wegpunkte geklickt', async ({ page }) => {
|
|
// SKIP weil Heli ein Login + längere Tour braucht — kommt im Login-Flow-Test
|
|
// als Folgeschritt. Hier nur Platzhalter mit der Logik.
|
|
await page.goto('/heli-game?mission=m2');
|
|
await page.waitForTimeout(2000);
|
|
|
|
const btn = page.locator('#startReleaseBtn');
|
|
await expect(btn).toBeVisible();
|
|
|
|
// Initial: disabled
|
|
await expect(btn).toBeDisabled();
|
|
const initText = await btn.textContent();
|
|
expect(initText).toMatch(/Kürze|Wegpunkt/);
|
|
|
|
// Audio + alle Klicks fertig → enabled
|
|
// (Hier in echter Form mit playSfx-Triggern und Map-Klicks)
|
|
});
|
|
|
|
test('Heli-Page lädt mit Einsatzzentrale + Spielhilfe-Button', async ({ page }) => {
|
|
// Heli rendert startReleaseBtn dynamisch erst NACH Routenplanung
|
|
// (siehe game.html ~Z. 1368). Bei Page-Boot ist nur die Einsatzzentrale
|
|
// sichtbar — wir verifizieren das + den Spielhilfe-Replay-Button.
|
|
// Den eigentlichen Startfreigabe-Flow deckt der test.skip oben ab,
|
|
// sobald er als Login-Flow ausgebaut wird.
|
|
const res = await page.goto('/heli-game');
|
|
expect(res.status()).toBe(200);
|
|
await page.waitForTimeout(2000);
|
|
|
|
// 1) Einsatzzentrale-Headline ist da
|
|
const h = await page.locator('h1, h2').first().textContent();
|
|
expect(h, 'Einsatzzentrale-Headline fehlt').toMatch(/Einsatzzentrale/);
|
|
|
|
// 2) Spielhilfe-Button (öffnet Onboarding) ist da
|
|
const helpCount = await page.locator('.heli-help-link, #btn-info').count();
|
|
expect(helpCount, 'Spielhilfe/Info-Button fehlt').toBeGreaterThan(0);
|
|
});
|