Skip to content

Simple, reusable javascript object factories – great for writing tests.

Notifications You must be signed in to change notification settings

hackley/assembly_line

Folders and files

NameName
Last commit message
Last commit date

Latest commit

2f3a699 · Sep 1, 2015

History

2 Commits
Sep 1, 2015
Sep 1, 2015
Sep 1, 2015
Sep 1, 2015
Sep 1, 2015
Sep 1, 2015

Repository files navigation

Assembly Line

Simple, reusable javascript object factories – great for writing tests.

Usage

Basic usage:

var AssemblyLine = require('assembly_line');

// define a factory
var user = AssemblyLine.factory(Object, {
  firstName: 'Jane',
  lastName: 'Smith',
  email: '[email protected]'
})

// call the factory to create an instance
var jsmith = user();

AssemblyLine.factory()

The Factory method accepts two arguments: the constructor class you want to use for your objects and a set of attributes to user when creating instances.

Example:

// define a custom constructor
var User = function(params) {
  this.params = params;
}

// define factories
var Factories = {
  jason: AssemblyLine.factory(User, {
    name: 'Jason',
    hometown: 'Jackson, Mississippi'
  })
}

var jason = Factories.jason();
console.log(jason);
// => { params: { name: 'Jason', hometown: 'Jackson, Mississippi' }}

AssemblyLine.sample()

The Sample method accepts one argument: an array or options to choose from. When a factory's attribute is set using the sample method, new instances will be created and assigned a random value from the options array.

Example:

var user = AssemblyLine.factory(Object, {
  name: AssemblyLine.sample([
    'james', 'jason', 'jenny', 'janice'
  ])
})

var user1 = user();
// user1.name will be one of james, jason, jenny, or janice

AssemblyLine.incr()

The Increment method accepts one argument: a string that should be used as the base value to increment on. When a factory's attribute is set using the increment method, new instances will be created by replacing #{i} with an incrementing integer. This is useful for ensuring unique email addresses, etc when testing.

Example:

var user = AssemblyLine.factory(Object, {
  email: AssemblyLine.incr('person#{i}@example.com')
})

var user1 = user();
// user1.email => [email protected]

var user2 = user();
// user2.email => [email protected]

About

Simple, reusable javascript object factories – great for writing tests.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published