unionized v6.3.1
Unionized
Unionized is a factory library for setting up JavaScript objects as test data. Compare to the factory_girl Ruby gem by thoughtbot.
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:
- Factory inheritance
- Auto-generating factories from schemas (currently supported: JSON-schema and mongoose)
- Asynchronous factories
License
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
5 years ago
6 years ago
6 years ago
6 years ago
7 years ago
7 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago