diff --git a/AGENTS.md b/AGENTS.md index 4cdb57a..f433445 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -168,6 +168,24 @@ them. Revisit only if the stated reason stops holding. workspace dir, so ci.sh's web-image build races another run's container creation on the `-web` tag. Accepted for a single-maintainer cadence; serialize with a workflow `concurrency` group if it ever bites. +- **A dropdown is a `'); +}); + +test("menu demands an id — a trigger wired to nothing is a dead button, so say so", async () => { + await assert.rejects(render({ items: [{ label: "Edit", href: "/e" }] }), /`id` is required/); }); diff --git a/src/ui/shell.test.ts b/src/ui/shell.test.ts index cc9edb5..b062e73 100644 --- a/src/ui/shell.test.ts +++ b/src/ui/shell.test.ts @@ -39,8 +39,13 @@ test("app shell renders sidebar, topbar and the content slot", async () => { // Sign out is a CSRF-guarded POST form (state change, not a GET link), carrying the token. assert.match(html, /