@generative-dom/mocks
v0.1.0
Published
Generative DOM test mocks — stream simulator and fixtures
Maintainers
Readme
@generative-dom/mocks
Test utilities for Generative DOM. StreamSimulator, markdown fixtures, and XSS test vectors.
Installation
npm install --save-dev @generative-dom/mocksStreamSimulator
Splits markdown into chunks and pushes them to a GenerativeDom instance with configurable strategies and optional delays.
import { StreamSimulator } from '@generative-dom/mocks';
const sim = new StreamSimulator(md, { chunkStrategy: 'word', delayMs: 20 });
await sim.stream('# Hello\n\nParagraph text.');
// Control mid-stream
sim.pause();
sim.resume();
sim.cancel();Chunk strategies: 'char', 'word', 'line', 'fixed', 'random'.
Fixtures
Pre-built markdown test cases with expected token types and serialised DOM output.
import { basicFixtures, combinedFixtures, edgeCaseFixtures } from '@generative-dom/mocks';
for (const fixture of basicFixtures.basicFixtures) {
// fixture.markdown, fixture.expectedTokenTypes, fixture.expectedDOM
}Fixture sets: basicFixtures, combinedFixtures, edgeCaseFixtures.
XSS Vectors
15 attack vectors from BRD section 5.3. Use to verify the security model in rendering tests.
import { xssFixtures } from '@generative-dom/mocks';
for (const fixture of xssFixtures.xssFixtures) {
// fixture.markdown should render to fixture.expectedDOM without executing scripts
}Vectors cover: <script> tags, javascript: protocol (direct, URL-encoded, null-byte, case variants, double-encoded), data: URIs, inline code, fenced code blocks, onerror handlers, CSS injection, and HTML entities.
