tsfixturefactory
TypeScript icon, indicating that this package has built-in type declarations

1.0.1 • Public • Published

Fixture Factory

This module contains functions for creating fixture factories for typescript interfaces (with sane defaults) similar to the factory_boy python library.

Basic usage

Simply pass a set of default properties to the 'createFixtureFactory' method. Note that if you do not supply all of the required properties for the interface that typescript will throw a compiler error.

Example

interface Product {
  id: string
  name: string
  other?: number
}
const productFactory = createFixtureFactory<Product>({
  id: 'id',
  name: 'my product',
})

Using factories inside other factories

You can also supply a factory as a default to another factory to create nested objects.

Example

interface Bar {
  something: string
}
interface Foo {
  bar: Bar
}
const barFactory = createFixtureFactory<Bar>({
  something: 'my something'
})
const fooFactory = createFixtureFactory<Foo>({
  bar: barFactory,
})

Using factories to create other factories

You can also supply a factory as the second parameter to 'createFixtureFactory' to create more specific factories on top of existing factories.

Example

interface User {
  name: string
  isAdmin: boolean
}
const userFactory = createFixtureFactory<User>({
  name: 'my name',
  isAdmin: false,
})
const adminUserFactory = createFixtureFactory<User>({
  isAdmin: true,
}, userFactory)

Package Sidebar

Install

npm i tsfixturefactory

Weekly Downloads

2

Version

1.0.1

License

MIT

Unpacked Size

8.42 kB

Total Files

8

Last publish

Collaborators

  • bmorganpa