factory-bro

0.1.3 • Public • Published

factory-bro

NPM version build status Test coverage

Defining fixtures is repetitive and prone to errors. Factory-bro helps you by allowing fixtures to be defined in a central hub. This allows you to spend more time coding, and less time updating tests.

Installation

$ npm i --save-dev factory-bro

Overview

/**
 * Initialize factory-bro.
 */
 
var factoryBro = require('factory-bro');
var factory = factoryBro();
var db = [];
 
/**
 * Add a fixture.
 */
 
factory.add('user', {
  name: 'Tobi',
  age: 7,
  species: 'Ferret'
});
 
/**
 * Define the persistance method.
 */
 
factory.persist(function(data) {
  db.push(data);
});
 
/**
 * Access our newly created 'user' fixture, edit it and then save it to the db.
 */
 
factory.user({name: 'Jane'});
console.log(db);
// => [{name: 'Jane', age: 7, species: 'ferret'}];

API

factory()

// Initialize a test factory.
 
var factoryBro = require('factory-bro');
var factory = factoryBro();

.add()

// Add a new fixture. Takes an argument of {String} name and {Object} data.
 
factory.add('user', {
  name: 'Tobi',
  age: 7,
  species: 'ferret'
});

.persist()

// Define the function to be called when an object gets persisted. Takes a 
// {Function} func as an argument. The func is provided with an argument of
// {Object} data when called.
 
var db = [];
 
factory.persist(function(data) {
  db.push(data);
});

.[fixtureName]()

// Access a fixture and edit its values. Takes an optional argument of 
// {Object} data. If applicable calls the function defined by .persist() after.
 
var user = factory.user();
 
console.log(user);
// => {name: 'Tobi', age: 7, species: 'ferret'}
console.log(db);
// => [{name: 'Tobi', age: 7, species: 'ferret'}];
 
user = factory.user({
  name: 'Jane',
  age: 3
});
 
console.log(user);
// => {name: 'Jane', age: 3, species: 'ferret'}
console.log(db);
// => [
//      {name: 'Tobi', age: 7, species: 'ferret'},
//      {name: 'Jane', age: 3, species: 'ferret'}
//    ]

License

MIT © Yoshua Wuyts

Package Sidebar

Install

npm i factory-bro

Weekly Downloads

1

Version

0.1.3

License

MIT

Last publish

Collaborators

  • yoshuawuyts