Use Gitea-compatible canary evidence upload #3

Merged
Jens merged 8 commits from codex/resolve-projectbrain-findings-20260828 into master 2026-09-01 20:09:22 +00:00
3 changed files with 13 additions and 1 deletions
Showing only changes of commit e8eed3e641 - Show all commits
+3 -1
View File
@@ -14,7 +14,9 @@
artifacts
docs
deploy
n8n
n8n/**
!n8n/workflows/
!n8n/workflows/**
frontend
*.tgz
*.tar.gz
+1
View File
@@ -26,6 +26,7 @@ RUN pip install --no-cache-dir -r requirements.lock
COPY backend/tests ./tests
COPY contracts ./contracts
COPY scripts/check-contracts.py ./scripts/check-contracts.py
COPY n8n/workflows ./n8n/workflows
USER app
FROM runtime-base AS runtime
+9
View File
@@ -26,6 +26,15 @@ test("non-destructive operator canary covers routes and grounded knowledge", asy
await page.goto("/login");
await page.getByRole("button", { name: "Verken als Operationsmanager" }).click();
await expect(page).toHaveURL(/\/dashboard$/);
if (pageErrors.some((message) => message.toLowerCase().includes("dynamically imported module"))) {
// A deploy can replace the SPA between loading index.html and its lazy
// dashboard chunk. One clean reload must recover; a persistent chunk or
// server error is collected again and still fails the canary below.
pageErrors.length = 0;
await page.reload({ waitUntil: "domcontentloaded" });
await expect(page).toHaveURL(/\/dashboard$/);
await expect(page.locator("main")).toBeVisible();
}
for (const [path, heading] of [
["/vehicles", "Wagenpark"],