// Rôle : vérifie la bande de mémos fixe sur les pages de toolbox et de jeu associées. import { test, expect } from "@playwright/test"; import { resetSokkoStorage } from "./helpers/storage.js"; async function seedMemosToolbox(page) { await resetSokkoStorage(page); await page.evaluate(async () => { await new Promise((resolve, reject) => { const request = globalThis.indexedDB.open("sokkog", 1); request.onsuccess = () => { const db = request.result; const tx = db.transaction(["kv", "modules"], "readwrite"); tx.objectStore("kv").put([ { id: "memo-toolbox", name: "Toolbox mémos", modules: [{ id: "memos", type: "memos", title: "Mémos" }], moduleColumns: 1 } ], "toolboxes"); tx.objectStore("kv").put({ mhwilds: "memo-toolbox" }, "links"); tx.objectStore("modules").put({ key: "memo-toolbox:memos", data: { items: [{ id: "memo-1", text: "Préparer les potions", color: "#f6c453" }] } }); tx.oncomplete = () => { db.close(); resolve(); }; tx.onerror = () => reject(tx.error); }; request.onerror = () => reject(request.error); }); }); await page.reload(); } test("shows and persists the memo ticker on linked game and full toolbox pages", async ({ page }) => { await seedMemosToolbox(page); await page.goto("/#/games/mhwilds/monsters"); const globalTicker = page.locator(".global-memos-ticker"); await expect(globalTicker).toBeVisible(); await expect(globalTicker).toContainText("Préparer les potions"); await expect(globalTicker).toHaveCSS("position", "fixed"); await page.goto("/#/games/aniimo/aniimos"); await expect(globalTicker).toHaveCount(0); await page.goto("/#/toolbox/memo-toolbox"); await expect(globalTicker).toBeVisible(); const toggle = page.locator(".memos-ticker-toggle"); await expect(toggle).toHaveAccessibleName("Masquer la bande"); await toggle.click(); await expect(globalTicker).toHaveCount(0); await page.reload(); await expect(globalTicker).toHaveCount(0); await expect(toggle).toHaveAccessibleName("Afficher la bande"); await toggle.click(); await expect(globalTicker).toBeVisible(); await page.goto("/#/toolboxes"); await expect(globalTicker).toHaveCount(0); });