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

2.0.2 • Public • Published

FixtureTS

A simple library to help generate typed fixtures for testing/storybook, with default values.

Usage

Create a fixture function for your type:

import { createFixtureFunction } from "fixturets";

interface TYourType {
  foo: string;
  bar: number;
}

export const getYourType = createFixtureFunction<TYourType>({
  foo: "",
  bar: 0,
})

Then you can create new fixtures for your tests:

import { getYourType } from "./path/to/fixture";

const fixture1 = getYourType(); // Default fixture

const fixture2 = getYourType({
  foo: "some value",
}); // Override some attribute for this fixture

const fixtures = getYourType.array([
  {},
  { bar: 2 },
]); // Generates an array of fixtures, first value here is default, second has `bar` overridden

const fixture3 = getYourType.overwrite(fixture2, { bar: 2 }); // Modify an existing fixture

You can also create another function with different default values, should you require:

import { getYourType } from "./path/to/fixture";

const getSpecialType = getYourType.defaults({
  foo: "Special",
});

// Then all these work as per above:
getSpecialType()
getSpecialType.array([])
getSpecialType.overwrite(...) // etc.

You can also extend a fixture function in a similar way you can extend interfaces in typescript:

import { getYourType, TYourType } from "./path/to/fixture";

interface TSpecificType extends TYourType {
  anotherAttribute: boolean;
}

export const getSpecificType = getYourType.extend(existingDefaults => ({
  ...existingDefaults,
  anotherAttribute: false, // Add new/changed attributes for the defaults.
}));

// Then all these work as per above:
getSpecificType()
getSpecificType.array([])
getSpecificType.overwrite(...) // etc.

Readme

Keywords

none

Package Sidebar

Install

npm i fixturets

Weekly Downloads

4

Version

2.0.2

License

ISC

Unpacked Size

30.7 kB

Total Files

39

Last publish

Collaborators

  • sam.boylett