Files
nebula/vitest.config.ts
florian.wildeandClaude Opus 5 d7176339b8 test: Bereinigung des Markdowns festhalten, Ratenbegrenzung nachziehen
Elf Tests halten fest, was nicht durchkommen darf: script-Elemente,
Ereignis-Attribute aus rohem HTML, javascript: als Link und als Bildquelle,
data:text/html. Dazu die Aufloesung relativer Verweise und der Fall
"Bild im Link", der kein a im a erzeugen darf.

Gerendert wird serverseitig - fuer die Frage nach dem erzeugten HTML
braucht es kein DOM. Damit .tsx ueberhaupt laeuft, muss Vitest das JSX
selbst uebersetzen; die tsconfig setzt jsx auf "preserve", weil sonst Next
zustaendig ist. Vite nimmt inzwischen oxc statt esbuild, die esbuild-Option
wuerde stillschweigend ignoriert.

Umsortieren im Brett und das Anlegen von Vorlagen hatten als einzige
schreibende Endpunkte keine Ratenbegrenzung.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-27 00:14:31 +02:00

25 lines
907 B
TypeScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { defineConfig } from "vitest/config";
import { fileURLToPath } from "node:url";
export default defineConfig({
test: {
// Reine Logik, kein DOM und keine Datenbank – die Tests laufen in
// Millisekunden und brauchen weder Server noch Container.
//
// .tsx ist dabei, weil die Bereinigung des Markdowns nur am erzeugten
// HTML zu pruefen ist. Dafuer genuegt renderToStaticMarkup; ein DOM
// braucht es dazu nicht.
environment: "node",
include: ["src/**/*.test.ts", "src/**/*.test.tsx"],
},
// Die tsconfig setzt jsx auf "preserve", weil Next das selbst uebersetzt.
// Hier gibt es kein Next, also muss der Transformer es tun. Vite nimmt
// inzwischen oxc statt esbuild – die esbuild-Option wuerde ignoriert.
oxc: { jsx: { runtime: "automatic" } },
resolve: {
alias: {
"@": fileURLToPath(new URL("./src", import.meta.url)),
},
},
});