Ship Faster with Confidence
Build quality into every release with our suite of automation tools.
Fixture Builder
Generate clean, consistent and test-ready data fixtures from CSV, JSON, PDF or DOCX documents.
Powered by OpenAI GPT-4o-mini and built in Node.js + TypeScript.
What is Fixture Builder?
Fixture Builder is a lightweight CLI that transforms real data into normalised, ready-to-use fixtures for Cypress, Playwright, or raw JSON tests.
It supports multiple input formats: CSV/JSON ingestion for structured data, and AI-powered extraction for PDF and DOCX documents — turning unstructured documents like reports, tables, and specifications into structured JSON automatically.
Using OpenAI GPT-4o-mini, the AI engine intelligently recognises headers, extracts tables, and structures data from PDF and Word documents, making it perfect for converting legacy documents or specifications into test-ready fixtures.
It combines automation efficiency with human insight — letting teams move faster without compromising product understanding or quality.
Built in Node.js + TypeScript — with schema inference, deterministic masking, AI-powered document extraction, and AI-ready extension points.
Key Features
-
CSV / JSON Ingestion
Reads and cleans raw data from multiple sources
-
PDF Extraction
AI-powered extraction from PDF documents - recognises tables and structures automatically
-
DOCX Extraction
Extract structured data from Word documents - works with tables and key-value formats
-
AI-Powered Processing
Uses OpenAI GPT-4o-mini to intelligently extract and structure data from unstructured documents
-
Schema Inference
Automatically detects boolean, numeric, date, email, enum types
-
Test-Ready Output
Generates fixtures for Cypress, Playwright, or generic JSON
-
Deterministic Masking
Safely hides PII while keeping tests repeatable
-
Header Normalisation
Trims, removes BOMs, and converts to camelCase
-
Configurable Rules
Custom mappings, enrichment, and masking options
-
Repeatable Builds
Deterministic for stable CI runs
See It In Action
| Name | Phone | Age | |
|---|---|---|---|
| John Doe | john@example.com | 555-0123 | 28 |
| Jane Smith | jane@example.com | 555-0456 | 32 |
| Bob Wilson | bob@example.com | 555-0789 | 45 |
[
{
"name": "John Doe",
"email": "john@example.com",
"phone": "555-0123",
"age": 28
},
{
"name": "Jane Smith",
"email": "jane@example.com",
"phone": "555-0456",
"age": 32
},
{
"name": "Bob Wilson",
"email": "bob@example.com",
"phone": "555-0789",
"age": 45
}
]
import { test } from '@playwright/test';
export const users = [
{
name: "John Doe",
email: "masked_email_1@example.com",
phone: "masked_phone_1",
age: 28
},
{
name: "Jane Smith",
email: "masked_email_2@example.com",
phone: "masked_phone_2",
age: 32
},
{
name: "Bob Wilson",
email: "masked_email_3@example.com",
phone: "masked_phone_3",
age: 45
}
];
Step-by-Step Instructions
Choose your input format to see specific instructions:
1 Install
npm i -D domtree-fixture-foundry
2 Create Your Input Data
Start with a CSV or JSON file. Example:
mkdir -p data
curl -L -o data/users.csv https://raw.githubusercontent.com/datablist/sample-csv-files/main/files/people/people-100.csv
3 Create Config File
Create domtree.config.json in your project root:
{
"input": "data/users.csv",
"frameworks": ["cypress", "playwright", "raw"],
"outputDir": "dist",
"datasetName": "users",
"mask": ["email", "phone"]
}
Key fields:
input- Path to your CSV or JSON fileframeworks- Output formats: cypress, playwright, or raw JSONoutputDir- Folder for generated fixturesdatasetName- Base name for output filesmask- Fields to anonymise deterministically
4 Generate Fixtures
npx domtree-fixtures generate --config domtree.config.json
Result: dist/cypress/fixtures/users.json, tests/fixtures/users.ts, users.json
How It Works
Ingests CSV or JSON
Reads your raw data files
Infers Schema
Detects data types automatically
Normalises & Masks
Cleans headers, masks PII, fills missing data
Generates Fixtures
Creates test-ready fixture files
Deterministic + repeatable = high-quality test data that behaves the same in local and CI environments.
Automation Tools Roadmap
What's coming next for Fixture Builder and Gherkin Generator
| Phase | Focus | Key Features | Status |
|---|---|---|---|
| Phase 1 — Foundation | Establishing reliable, repeatable fixture generation |
• CSV + JSON ingestion • Schema inference (boolean, number, date, enum) • Deterministic masking for PII • Header normalisation ( camelCase, BOM removal)• Cypress / Playwright / Raw JSON outputs • Config-driven CLI • Published on npm |
Complete |
| Phase 2 — Expansion | Broaden supported input types & data flexibility |
• File adapters for Excel, PDF, DOCX • domtree-fixtures extract command for pre-processing• Plugin architecture for new file formats • Improved validation and data consistency checks |
Complete |
| Phase 3 — Intelligence (AI-Assist) | Integrating AI for smarter, context-aware data |
• --ai-suggest for LLM-powered schema inference• --ai-enrich for contextual, anonymised data filling• AI-driven test scenario generation (user journeys, edge cases) • Human-in-the-loop schema review |
Planned |
| Phase 4 — Experience (Domtree Vision) | Enabling collaboration, visibility & learning |
• Web interface for upload, preview, and export • Domtree Cloud for reusable datasets • AI engine that reads PRDs & UX docs to propose test data • Community template sharing |
Future |
| Continuous Enhancements | Refinement, stability & scale |
• CI/CD integrations (GitHub Actions, Jenkins) • Config validation and schema typing • CLI UX improvements • Privacy & security modes |
Future |