The Wayback Machine - https://web.archive.org/web/20200928152134/https://github.com/goodeggs/unionized
Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Unionized

Unionized is a factory library for setting up JavaScript objects as test data. Compare to the factory_girl Ruby gem by thoughtbot.

NPM version NPM license Dependency status Build Status

Links

Examples

Define a factory:

var humanFactory = unionized.factory({
  name: {
    first: unionized.enum(['Azrael', 'Bastiaan', 'Laurentiu', 'Gerolf']),
    last: 'Smithy'
  },
  birthdate: function() { return new Date() }
})

Use that factory to create instances:

var human = humanFactory.create()
/*
 { name: { first: 'Gerolf', last: 'Smithy' }
   birthdate: Sun May 17 2015 16:52:25 GMT-0700 (PDT) }
*/

You can override the defaults if you like, using dot notation:

var chen = humanFactory.create({ 'name.first': 'Chen' })
/*
 { name: { first: 'Chen', last: 'Smithy' }
   birthdate: Sun May 17 2015 16:58:19 GMT-0700 (PDT) }
*/

You might want factories that are composed out of other factories:

var organizationFactory = unionized.factory({
  name: 'Board Game Club',
  members: unionized.array(humanFactory, 4)
})
organizationFactory.create()
/*
 { name: 'Board Game Club',
   members: [
     { name: { first: 'Bastiaan', last: 'Smithy' },
       birthdate: Sun May 17 2015 17:09:52 GMT-0700 (PDT) },
     { name: { first: 'Azrael', last: 'Smithy' },
       birthdate: Sun May 17 2015 17:09:52 GMT-0700 (PDT) }
     { name: { first: 'Gerolf', last: 'Smithy' },
       birthdate: Sun May 17 2015 17:09:52 GMT-0700 (PDT) }
     { name: { first: 'Bastiaan', last: 'Smithy' },
       birthdate: Sun May 17 2015 17:09:52 GMT-0700 (PDT) }
   ] }
*/

You might want to pass arguments into your factory definitions:

var humanFactoryWithAge = humanFactory.factory (age) => {
  birthDate: moment().subtract(age, 'years').toDate()
};

var legalDriver = humanFactoryWithAge.create({}, 16);
/*
   { name: { first: 'Azrael', last: 'Smithy' }
     birthdate: Sun May 17 2000 15:00:02 GMT-0700 (PDT) }
*/

More features you may be interested in:

License

The MIT License (MIT)

About

A factory library for setting up JavaScript objects as test data.

Topics

Resources

License

Packages

No packages published
You can’t perform that action at this time.