Files
fusion/packages/dashboard/app/components/__tests__/SettingsModal.backup.css.test.ts
Fusion 22bc13f0d0 test(FN-4141): complete Step 5 — add backup CSS contract coverage
Fusion-Task-Id: FN-4141
Fusion-Task-Lineage: 9dae1c31-2d19-489f-b406-b07ff14bb24e
2026-05-13 06:29:34 -07:00

35 lines
1.6 KiB
TypeScript

import { describe, expect, it } from "vitest";
import { loadAllAppCss } from "../../test/cssFixture";
describe("SettingsModal backup CSS contract", () => {
it("defines themed backup section selectors with tokenized styles", async () => {
const css = await loadAllAppCss();
expect(css).toMatch(/\.backup-stats\s*\{[\s\S]*?\}/);
expect(css).toMatch(/\.backup-stat\s*\{[\s\S]*?\}/);
expect(css).toMatch(/\.backup-stat-value\s*\{[\s\S]*?\}/);
expect(css).toMatch(/\.backup-stat-label\s*\{[\s\S]*?\}/);
expect(css).toMatch(/\.backup-list\s*\{[\s\S]*?\}/);
expect(css).toMatch(/\.backup-list ul\s*\{[\s\S]*?\}/);
expect(css).toMatch(/\.backup-list li\s*\{[\s\S]*?\}/);
expect(css).toMatch(/\.backup-size\s*\{[\s\S]*?\}/);
const backupBlock = (css.match(/\/\* === Settings Backups:[\s\S]*?\.settings-layout\s*\{/)?.[0] ?? "");
expect(backupBlock).toContain("var(--space-");
expect(backupBlock).toContain("var(--text");
expect(backupBlock).toContain("var(--border");
expect(backupBlock).toContain("var(--surface");
expect(backupBlock).toContain("var(--font-mono");
expect(backupBlock).toContain("var(--radius-");
expect(backupBlock).toContain("color-mix(");
expect(backupBlock).not.toMatch(/#[0-9a-fA-F]{3,8}\b/);
expect(backupBlock).not.toContain("rgba(");
});
it("keeps mobile backup list scroll behavior", async () => {
const css = await loadAllAppCss();
expect(css).toMatch(/@media\s*\(max-width:\s*768px\)\s*\{[\s\S]*?\.backup-list ul\s*\{[^}]*max-height\s*:[^;]+;[^}]*overflow-y\s*:\s*auto;[^}]*-webkit-overflow-scrolling\s*:\s*touch;[^}]*\}/);
});
});