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>
25 lines
907 B
TypeScript
25 lines
907 B
TypeScript
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)),
|
||
},
|
||
},
|
||
});
|