0.3.0 • Published 12 months ago

@sebber/faker-factory v0.3.0

Weekly downloads
-
License
MIT
Repository
github
Last release
12 months ago

Faker Factory

The goal of this project is, by wrapping Faker, to make a tool to easily write blueprints for generating data, mainly for testing purposes. Heavily inspired by my experience and patterns I learned to appreciate while using and writing tests with Laravel!

Example

import { Factory } from "@sebber/faker-factory";

type Car = {
  maker: string;
  modelYear: number;
};

// You can create a factory by defining a blueprint for something
// you would like to generate
const carFactory = Factory<Car>((faker) => ({
  maker: faker.company.name(),
  modelYear: faker.date.between("1769-01-01", new Date()).getFullYear(),
}));

// with which you could make one
const car = carFactory.make();
console.log(car); // { maker: some maker, modelYear: some model year }

// or even many at a time.
const cars = carFactory.makeMany(5);
console.log(cars); // [{ maker: some maker, modelYear: some model year }, ...]

// You can also extend existing factories tp make a new one for more
// specific use cases either by adding new fields or overwriting existing
const volvoFactory = carFactory.with({ maker: "Volvo Cars" });
const volvo = volvoFactory.make();
console.log(car); // { maker: "Volvo Cars", modelYear: some model year }

// or just overwriting existing fields just once
// with which you could make one
const car = carFactory.make({ maker: "Volvo Cars" });
console.log(car); // { maker: "Volvo Cars", modelYear: some model year }

Appreciations

Thank you to all the people behind Faker for your work to create and maintain what is utterly essential for Faker Factory to even be possible!

As mentioned, Laravel was a big inspiration for me and how I learned to appreciate writing tests at all.

To even get started with a sane base for making a proper published package, I stole heavily from Matt Pocock.

0.3.0

12 months ago

0.2.1

1 year ago

0.2.0

1 year ago

0.1.2

1 year ago

0.1.1

1 year ago

0.1.0

1 year ago

0.0.3

1 year ago

0.0.2

1 year ago