Files
2026-07-13 13:39:12 +08:00

43 lines
1.6 KiB
TypeScript

import test from "node:test";
import assert from "node:assert/strict";
import { readFileSync } from "node:fs";
import { fileURLToPath } from "node:url";
// Regression guard: provider cards must have a *visible* hover state.
//
// Reported bug: hovering a provider card made it go "transparent / not
// highlighted". Root cause was a 1%-opacity hover (`hover:bg-black/[0.01]` /
// `hover:bg-white/[0.01]`) — effectively invisible. The fix switches both card
// surfaces to the dashboard's dominant, visible hover (`hover:bg-*/5`) plus a
// `hover:border-primary/40` highlight. This pins it so the near-invisible hover
// can't silently come back.
const ROOT = fileURLToPath(new URL("../../", import.meta.url));
const CARD_FILES = [
"src/app/(dashboard)/dashboard/providers/components/ProviderCard.tsx",
"src/app/(dashboard)/dashboard/media-providers/[kind]/page.tsx",
];
for (const rel of CARD_FILES) {
test(`${rel}: card hover is visible, not near-transparent`, () => {
const src = readFileSync(ROOT + rel, "utf8");
assert.ok(
!src.includes("hover:bg-black/[0.01]"),
`${rel} still uses the near-invisible 1% hover (light)`
);
assert.ok(
!src.includes("hover:bg-white/[0.01]"),
`${rel} still uses the near-invisible 1% hover (dark)`
);
assert.ok(
src.includes("hover:bg-black/5") && src.includes("hover:bg-white/5"),
`${rel} should use a visible hover background (hover:bg-*/5)`
);
assert.ok(
src.includes("hover:border-primary/40"),
`${rel} should add a visible hover border highlight`
);
});
}