docs(arr): fleet consolidated on FrankBook-Pro, VPN egress proven; E2E counts derived from registry

This commit is contained in:
Frank
2026-09-04 13:17:39 -07:00
parent 4c7465d00d
commit df4339a82a
5 changed files with 103 additions and 76 deletions
+6 -1
View File
@@ -23,8 +23,13 @@ test("admin panel renders admin-category services", async ({ page }) => {
test("admin open links reach their apps through SSO", async ({ page }) => {
test.setTimeout(240_000);
// Expected link count comes from the live registry (admin showLink=true
// entries, now including the *arr vhosts that use their own auth).
const registry: { name: string; category: string; showLink: boolean }[] =
await (await page.request.get("/services.json")).json();
const expectedAdminLinks = registry.filter((s) => s.category === "admin" && s.showLink).length;
await page.goto("/admin/");
await expect(page.locator("#grid a.open")).toHaveCount(3); // grafana, prometheus, loki
await expect(page.locator("#grid a.open")).toHaveCount(expectedAdminLinks);
const hrefs = await page.locator("#grid a.open").evaluateAll((els) =>
els.map((el) => (el as HTMLAnchorElement).href),
);
+8 -3
View File
@@ -22,9 +22,14 @@ async function settleThroughGuard(page: Page, targetHost: string): Promise<void>
test("every user open link reaches its app", async ({ page }) => {
test.setTimeout(420_000);
await page.goto("/");
await expect(page.locator("#grid a.open")).toHaveCount(9);
// Expected link count comes from the live registry, mirroring the
// showLink=true user entries — a registry edit cannot stale this test.
const registry: { name: string; category: string; showLink: boolean }[] =
await (await page.request.get("/services.json")).json();
const expectedUserLinks = registry.filter((s) => s.category === "user" && s.showLink).length;
await page.goto("/");
await expect(page.locator("#grid a.open")).toHaveCount(expectedUserLinks);
const hrefs = await page
.locator("#grid a.open")
.evaluateAll((els) => els.map((el) => ({ href: (el as HTMLAnchorElement).href, label: el.textContent ?? "" })));
@@ -43,7 +48,7 @@ test("every user open link reaches its app", async ({ page }) => {
failures.push(`${link.label}: ${err instanceof Error ? err.message : String(err)}`);
}
await page.goto("/");
await expect(page.locator("#grid a.open")).toHaveCount(9);
await expect(page.locator("#grid a.open")).toHaveCount(expectedUserLinks);
}
expect(failures, failures.join("\n")).toEqual([]);
});