test: close the last coverage debt the roadmap still listed

- `overflow-clip` gets a safelist anchor in index.css (its only occurrence is a `.ts` constant),
  and the chip-lane contract keeps it there.
- PlexPlayer's Backspace ownership rule is pinned on all three branches: nothing above, a foreign
  layer above (it defers), and its own panel open under a layer (it still closes the panel).
- Removing a playlist item bumps the list's `updated_at`, like the three other item-only writes.
- Seen in a real browser on localdev: an exhausted comfort-shelf tile (an empty pinned playlist) is
  focusable, aria-disabled, and its Shift+F10 menu offers Play off and Remove from shelf.
This commit is contained in:
2026-09-19 18:14:18 +02:00
parent 7afaba0547
commit 046ff735cf
5 changed files with 144 additions and 5 deletions
@@ -0,0 +1,22 @@
import { fileURLToPath } from "node:url";
import { ESLint } from "eslint";
import { describe, expect, it } from "vitest";
// The canonical "FE control" row (CLAUDE.md) as a lint rule: no native <select>. Six had drifted in
// before the rule existed. A selector that matches nothing looks exactly like a clean codebase, so
// this pins that it fires.
const FRONTEND = fileURLToPath(new URL("../../", import.meta.url));
async function refused(source: string): Promise<number> {
const eslint = new ESLint({ cwd: FRONTEND });
const [result] = await eslint.lintText(source, { filePath: "src/components/__probe.tsx" });
return (result?.messages ?? []).filter((m) => m.message.startsWith("No native <select>")).length;
}
describe("a native select", () => {
it("is refused; the house controls are not", async () => {
expect(await refused("export const A = () => <select />;\n")).toBe(1);
expect(await refused("export const B = () => <SegmentedToggle />;\n")).toBe(0);
});
});