From ee9b6d15cd073055ee235e366a5016fc24796f64 Mon Sep 17 00:00:00 2001 From: jhodgkin Date: Sun, 12 Jul 2026 23:23:38 -0600 Subject: [PATCH] Add e2e coverage for the known/unknown device ratio Co-Authored-By: Claude Sonnet 5 --- e2e/tests/device-ratio.spec.ts | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 e2e/tests/device-ratio.spec.ts diff --git a/e2e/tests/device-ratio.spec.ts b/e2e/tests/device-ratio.spec.ts new file mode 100644 index 0000000..df82793 --- /dev/null +++ b/e2e/tests/device-ratio.spec.ts @@ -0,0 +1,23 @@ +import { test, expect } from "@playwright/test"; + +const USERNAME = process.env.LOCAL_USERNAME ?? "admin"; +const PASSWORD = process.env.LOCAL_PASSWORD ?? ""; + +test("known/unknown ratio matches the actual badge counts", async ({ page }) => { + test.skip(!PASSWORD, "LOCAL_PASSWORD not set"); + + await page.goto("/"); + await page.getByPlaceholder("Username").fill(USERNAME); + await page.getByPlaceholder("Password").fill(PASSWORD); + await page.getByRole("button", { name: "Sign in" }).click(); + await expect(page.locator(".device-table tbody tr").first()).toBeVisible({ timeout: 15_000 }); + + const knownCount = await page.locator(".device-badge.known").count(); + const unknownCount = await page.locator(".device-badge.unknown").count(); + + const ratioText = await page.locator(".device-ratio").textContent(); + expect(ratioText).toBe(`${knownCount} known / ${unknownCount} unknown`); + + const countText = await page.locator(".device-count").textContent(); + expect(countText).toBe(`(${knownCount + unknownCount})`); +});