Split landing hero into interactive webcam grid
- Move hero into its own client component - Add webcam-backed pixel grid background - Update landing wiring and content test coverage
This commit is contained in:
@@ -2,10 +2,15 @@ import { readFile } from "node:fs/promises";
|
||||
import test from "node:test";
|
||||
import assert from "node:assert/strict";
|
||||
|
||||
const componentPath = new URL("../src/components/landing.tsx", import.meta.url);
|
||||
const sourcePaths = [
|
||||
new URL("../src/components/landing.tsx", import.meta.url),
|
||||
new URL("../src/components/landing-hero-section.tsx", import.meta.url),
|
||||
];
|
||||
|
||||
test("Landing component contains the core brief anchors", async () => {
|
||||
const source = await readFile(componentPath, "utf8");
|
||||
const source = (
|
||||
await Promise.all(sourcePaths.map((p) => readFile(p, "utf8")))
|
||||
).join("\n");
|
||||
|
||||
for (const phrase of ["Projektbrief", "01", "Website", "Kontakt", "für", "müssen", "Änderungen"]) {
|
||||
assert.match(source, new RegExp(phrase));
|
||||
@@ -13,7 +18,9 @@ test("Landing component contains the core brief anchors", async () => {
|
||||
});
|
||||
|
||||
test("Landing component uses real German umlauts in visible copy", async () => {
|
||||
const source = await readFile(componentPath, "utf8");
|
||||
const source = (
|
||||
await Promise.all(sourcePaths.map((p) => readFile(p, "utf8")))
|
||||
).join("\n");
|
||||
|
||||
for (const asciiFallback of [
|
||||
"fuer",
|
||||
|
||||
Reference in New Issue
Block a user