Test Data Bot

0.8.0 · active · verified Tue Apr 21

test-data-bot is a JavaScript library designed for easily generating dynamic test data for unit and integration tests. It operates agnostic of specific test runners or frameworks, providing a fluent API for defining data builders. As of version 0.8.0, it offers features like static values, unique sequences, data generation using `faker.js` (internally), per-build instance generation, incrementing IDs, random selection from a list, and array generation. The package emphasizes simplicity and flexibility, allowing for easy overrides and custom mapping functions to transform generated plain JavaScript objects into class instances or specific formats. Its release cadence appears to follow semantic versioning, with `0.x` indicating pre-1.0 development. Key differentiators include its simple, builder-pattern API and deep integration with `faker.js` without exposing it as a direct peer dependency.

Common errors

Warnings

Install

Imports

Quickstart

Demonstrates creating a basic user builder, generating multiple unique users, overriding specific fields, and extending an existing builder for an admin user.

import { build, fake, sequence } from 'test-data-bot';

const userBuilder = build('User').fields({
  id: sequence(x => x),
  name: fake(f => f.name.findName()),
  email: sequence(x => `user${x}@example.com`),
  age: 26,
  isActive: true,
});

const newUser1 = userBuilder();
const newUser2 = userBuilder({ name: 'Jane Doe', age: 30 });

console.log(newUser1);
// Example output: { id: 1, name: 'John Smith', email: 'user1@example.com', age: 26, isActive: true }
console.log(newUser2);
// Example output: { id: 2, name: 'Jane Doe', email: 'user2@example.com', age: 30, isActive: true }

const adminBuilder = build('Admin').fields({
  ...userBuilder.fields,
  role: 'admin'
});

const newAdmin = adminBuilder();
console.log(newAdmin);
// Example output: { id: 3, name: 'Another Name', email: 'user3@example.com', age: 26, isActive: true, role: 'admin' }

view raw JSON →