factory-js

🏭 The object generator for testing.

MIT License

Downloads
14K
Stars
49
Committers
4

Features

  • Type Safety - It helps prevent configuration errors and typos.
  • ⚙️ Highly Functional - You can define variables, traits, and properties that depend on other properties.
  • 🪶 Lightweight - It is very lightweight as it does not depend on any other packages.
  • 📦 ORM-Friendly API - Designed to be used also with ORMs like Prisma and Drizzle.

Quick Start

  1. Install FactoryJS.
pnpm add -D @factory-js/factory
  1. Define a factory and use it in your tests, database seeds, etc.
import { factory } from "@factory-js/factory";

// Define the factory
const userFactory = factory.define({
  props: {
    firstName: () => "John",
    lastName: () => "Doe",
    role: () => "guest",
  },
  vars: {},
});

describe("when a user is admin", () => {
  it("returns true", async () => {
    const user = await userFactory(db)
      .props({ role: () => "admin" }) // Override role to admin
      .build();
    expect(isAdmin(user)).toBe(true);
  });
});

To learn more about FactoryJS, check the Documentation.

License

MIT

Package Rankings
Top 27.53% on Npmjs.org
Related Projects