import { describe, it, expect } from "vitest"; import { readFileSync } from "node:fs"; import { resolve } from "node:path"; describe("Design Tokens", () => { const cssPath = resolve(__dirname, "../../assets/css/main.css"); const cssContent = readFileSync(cssPath, "utf-8"); it("should define --bg variable in :root", () => { expect(cssContent).toContain("--bg: #131313"); }); it("should define --panel variable in :root", () => { expect(cssContent).toContain("--panel: #1a1a1a"); }); it("should define --color-accent variable in :root", () => { expect(cssContent).toContain("--color-accent: #EC6925"); }); it("should define --surface variable in :root", () => { expect(cssContent).toContain("--surface: #212121"); }); it("should define --card variable in :root", () => { expect(cssContent).toContain("--card: #2d2d2d"); }); it("should define --border variable in :root", () => { expect(cssContent).toContain("--border: #444444a8"); }); it("should define --text variable in :root", () => { expect(cssContent).toContain("--text: #ffffff"); }); it("should define --text-muted variable in :root", () => { expect(cssContent).toContain("--text-muted: #d4d4d4"); }); it("should define radius tokens", () => { expect(cssContent).toContain("--radius-sm: 2px"); expect(cssContent).toContain("--radius-md: 3px"); expect(cssContent).toContain("--radius-lg: 4px"); }); it("should define transition tokens", () => { expect(cssContent).toContain("--transition-fast: 150ms ease"); }); }); describe("Tailwind Config", () => { const configPath = resolve(__dirname, "../../tailwind.config.ts"); const configContent = readFileSync(configPath, "utf-8"); it("should extend colors with accent", () => { expect(configContent).toContain("accent"); expect(configContent).toContain("#EC6925"); }); it("should extend colors with bg", () => { expect(configContent).toContain('bg: "#131313"'); }); it("should extend colors with panel", () => { expect(configContent).toContain('panel: "#1a1a1a"'); }); it("should configure Inter font family", () => { expect(configContent).toContain("Inter"); }); }); describe("Nuxt Config", () => { const configPath = resolve(__dirname, "../../nuxt.config.ts"); const configContent = readFileSync(configPath, "utf-8"); it("should include noindex robots meta tag", () => { expect(configContent).toContain("noindex"); expect(configContent).toContain("nofollow"); expect(configContent).toContain("noarchive"); expect(configContent).toContain("nosnippet"); }); it("should include JSON-LD LocalBusiness script", () => { expect(configContent).toContain("LocalBusiness"); expect(configContent).toContain("schema.org"); }); it("should include routeRules for SSR/CSR", () => { expect(configContent).toContain("routeRules"); expect(configContent).toContain("/mietkatalog"); expect(configContent).toContain("/admin"); }); it("should include Tailwind CSS module", () => { expect(configContent).toContain("@nuxtjs/tailwindcss"); }); });