From b812afabbc19ff63712e7eea135a1cac25347a4f Mon Sep 17 00:00:00 2001 From: Bruno Charest Date: Mon, 24 Aug 2026 19:37:30 -0400 Subject: [PATCH] =?UTF-8?q?fix(ci):=20e2e=20-=20fixtures=20copiees=20dans?= =?UTF-8?q?=20le=20container=20(docker=20cp)=20+=202=20tests=20obsol=C3=A8?= =?UTF-8?q?tes=20mis=20a=20jour?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ci.yml e2e : les bind mounts C:\dev\git\python\ObsiGate sont vides en docker-in-docker (chemin du job container inexistant sur l hote) -> docker create + docker cp des fixtures + docker start - obsigate.spec.ts : placeholder de recherche attendu mis a jour (Rechercher dans toutes les vaults...) - obsigate.spec.ts : theme par defaut accepte defaut-obsigate (moteur themes.js) en plus de dark (ui.js legacy) --- .gitea/workflows/ci.yml | 14 ++++++++++---- tests/e2e/obsigate.spec.ts | 7 ++++--- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 3bf9b2f..ae20280 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -125,7 +125,7 @@ jobs: - name: Start ObsiGate run: | docker rm -f obsigate-e2e 2>/dev/null || true - docker run -d --name obsigate-e2e -p 2029:8080 \ + docker create --name obsigate-e2e -p 2029:8080 \ -v $(pwd)/test_vault:/vaults/TestVault \ -v $(pwd)/test_dir:/vaults/TestDir \ -e VAULT_1_NAME=TestVault \ @@ -134,9 +134,15 @@ jobs: -e DIR_1_PATH=/vaults/TestDir \ -e OBSIGATE_AUTH_ENABLED=false \ obsigate:ci - # Docker-in-docker : le port publié est joignable via l'IP de la - # passerelle (localhost dans le job container ne voit pas le port - # publié sur l'hôte). + # Docker-in-docker : le bind mount $(pwd)/... pointe sur un chemin + # du job container, inexistant sur l'hôte → montage vide. Les -v + # créent quand même /vaults/* dans le container ; on y copie les + # fixtures avant le démarrage (l'indexeur scanne au démarrage). + docker cp test_vault/. obsigate-e2e:/vaults/TestVault + docker cp test_dir/. obsigate-e2e:/vaults/TestDir + docker start obsigate-e2e + # Le port publié est joignable via l'IP de la passerelle (localhost + # du job container ne voit pas le port publié sur l'hôte). GW=$(ip route show default | awk '{print $3}' || echo 172.17.0.1) echo "Gateway IP: $GW" # Wait for health check diff --git a/tests/e2e/obsigate.spec.ts b/tests/e2e/obsigate.spec.ts index 405b176..634dc2d 100644 --- a/tests/e2e/obsigate.spec.ts +++ b/tests/e2e/obsigate.spec.ts @@ -73,7 +73,7 @@ test.describe('Dashboard & Navigation', () => { test('should show search bar in header', async ({ page }) => { await goHome(page); await expect(page.locator('#search-input')).toBeVisible(); - await expect(page.locator('#search-input')).toHaveAttribute('placeholder', 'Rechercher ...'); + await expect(page.locator('#search-input')).toHaveAttribute('placeholder', 'Rechercher dans toutes les vaults...'); }); test('should show floating results bar when searching', async ({ page }) => { @@ -386,8 +386,9 @@ test.describe('Dark Mode', () => { await goHome(page); const html = page.locator('html'); const theme = await html.getAttribute('data-theme'); - // Should default to dark - expect(theme).toBe('dark'); + // Le thème par défaut est sombre : 'dark' (ui.js legacy) ou + // 'defaut-obsigate' (moteur de thèmes themes.js, mode dark par défaut) + expect(['dark', 'defaut-obsigate']).toContain(theme); }); test('should toggle theme and persist', async ({ page }) => {