From ca367b6918bda4153c2d90a910682e4dc7d7b5ab Mon Sep 17 00:00:00 2001 From: bruno Date: Tue, 3 Nov 2026 09:26:42 -0500 Subject: [PATCH] =?UTF-8?q?test(e2e):=20helpers=20ne=20d=C3=A9pendent=20pl?= =?UTF-8?q?us=20du=20signal=20=5F=5FOBSIGATE=5FBOOTED=20retir=C3=A9=20(bfe?= =?UTF-8?q?0c75)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit bfe0c75 a retiré le splash et son signal de boot côté app sans adapter les helpers des specs ; login() attendait window.__OBSIGATE_BOOTED → timeout 60 s × chaque test des 8 suites. Signal de rechange sans dépendance au flag interne : document prêt ET premier .tree-item rendu (preuve que l'init a lié données+handlers). Validé local : 14 passed sur les 3 suites qui échouaient en CI (obsigate:ci v2.82.8, auth off, mêmes fixtures). --- tests/e2e/excalidraw.spec.js | 2 +- tests/e2e/header-sidebar.spec.js | 2 +- tests/e2e/image-viewer.spec.js | 2 +- tests/e2e/media-viewer.spec.js | 2 +- tests/e2e/nav-tab.spec.js | 2 +- tests/e2e/pdf-viewer.spec.js | 2 +- tests/e2e/xlsx-viewer.spec.js | 2 +- tests/e2e/xss.spec.js | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/e2e/excalidraw.spec.js b/tests/e2e/excalidraw.spec.js index dfa88dc..0936c12 100644 --- a/tests/e2e/excalidraw.spec.js +++ b/tests/e2e/excalidraw.spec.js @@ -25,7 +25,7 @@ async function login(page) { await page.click('#login-btn'); } // Wait until app init() resolved (all handlers bound). - await page.waitForFunction(() => window.__OBSIGATE_BOOTED === true, { timeout: 20000 }); + await page.waitForFunction(() => document.readyState === 'complete' && !!document.querySelector('.tree-item'), { timeout: 20000 }); } async function openFile(page, vault, filePath) { diff --git a/tests/e2e/header-sidebar.spec.js b/tests/e2e/header-sidebar.spec.js index 9b3bea9..cafadba 100644 --- a/tests/e2e/header-sidebar.spec.js +++ b/tests/e2e/header-sidebar.spec.js @@ -28,7 +28,7 @@ async function login(page) { await page.fill('#login-password', CREDS.password); await page.click('#login-btn'); } - await page.waitForFunction(() => window.__OBSIGATE_BOOTED === true, { timeout: 20000 }); + await page.waitForFunction(() => document.readyState === 'complete' && !!document.querySelector('.tree-item'), { timeout: 20000 }); } async function authEnabled(page) { diff --git a/tests/e2e/image-viewer.spec.js b/tests/e2e/image-viewer.spec.js index 85911e7..c552a58 100644 --- a/tests/e2e/image-viewer.spec.js +++ b/tests/e2e/image-viewer.spec.js @@ -26,7 +26,7 @@ async function login(page) { await page.fill('#login-password', CREDS.password); await page.click('#login-btn'); } - await page.waitForFunction(() => window.__OBSIGATE_BOOTED === true, { timeout: 20000 }); + await page.waitForFunction(() => document.readyState === 'complete' && !!document.querySelector('.tree-item'), { timeout: 20000 }); } async function openFile(page, vault, filePath) { diff --git a/tests/e2e/media-viewer.spec.js b/tests/e2e/media-viewer.spec.js index 18baa71..5ca245f 100644 --- a/tests/e2e/media-viewer.spec.js +++ b/tests/e2e/media-viewer.spec.js @@ -25,7 +25,7 @@ async function login(page) { await page.fill('#login-password', CREDS.password); await page.click('#login-btn'); } - await page.waitForFunction(() => window.__OBSIGATE_BOOTED === true, { timeout: 20000 }); + await page.waitForFunction(() => document.readyState === 'complete' && !!document.querySelector('.tree-item'), { timeout: 20000 }); } async function openFile(page, vault, filePath) { diff --git a/tests/e2e/nav-tab.spec.js b/tests/e2e/nav-tab.spec.js index 2cb3957..98650ab 100644 --- a/tests/e2e/nav-tab.spec.js +++ b/tests/e2e/nav-tab.spec.js @@ -12,7 +12,7 @@ import { test, expect } from '@playwright/test'; async function boot(page) { await page.goto('/'); - await page.waitForFunction(() => window.__OBSIGATE_BOOTED === true, { timeout: 20000 }); + await page.waitForFunction(() => document.readyState === 'complete' && !!document.querySelector('.tree-item'), { timeout: 20000 }); await page.waitForSelector('#dashboard-home, #search-input', { timeout: 15000 }); } diff --git a/tests/e2e/pdf-viewer.spec.js b/tests/e2e/pdf-viewer.spec.js index 515f4cf..b1bea0c 100644 --- a/tests/e2e/pdf-viewer.spec.js +++ b/tests/e2e/pdf-viewer.spec.js @@ -30,7 +30,7 @@ async function login(page) { await page.fill('#login-password', CREDS.password); await page.click('#login-btn'); } - await page.waitForFunction(() => window.__OBSIGATE_BOOTED === true, { timeout: 20000 }); + await page.waitForFunction(() => document.readyState === 'complete' && !!document.querySelector('.tree-item'), { timeout: 20000 }); } async function openFile(page, vault, filePath) { diff --git a/tests/e2e/xlsx-viewer.spec.js b/tests/e2e/xlsx-viewer.spec.js index ff9976a..e1cceaf 100644 --- a/tests/e2e/xlsx-viewer.spec.js +++ b/tests/e2e/xlsx-viewer.spec.js @@ -57,7 +57,7 @@ async function login(page) { await page.fill('#login-password', process.env.OBSIGATE_PASS || 'test123'); await page.click('#login-btn'); } - await page.waitForFunction(() => window.__OBSIGATE_BOOTED === true, { timeout: 20000 }); + await page.waitForFunction(() => document.readyState === 'complete' && !!document.querySelector('.tree-item'), { timeout: 20000 }); } async function openFixture(page) { diff --git a/tests/e2e/xss.spec.js b/tests/e2e/xss.spec.js index 68022f4..e3600a2 100644 --- a/tests/e2e/xss.spec.js +++ b/tests/e2e/xss.spec.js @@ -117,7 +117,7 @@ test.describe('XSS — lecteur markdown (BUG-021)', () => { await api(request, 'POST', `/api/file/${VAULT}`, { path: XSS_FILE, content: `${XSS_BODY}\n` }); await page.goto(BASE); - await page.waitForFunction(() => window.__OBSIGATE_BOOTED === true, { timeout: 20000 }); + await page.waitForFunction(() => document.readyState === 'complete' && !!document.querySelector('.tree-item'), { timeout: 20000 }); await openFile(page, VAULT, XSS_FILE); const content = page.locator('#content-area');