6.3.1 • Published 3 years ago

unionized v6.3.1

Weekly downloads
69
License
MIT
Repository
github
Last release
3 years ago

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)

6.3.1

3 years ago

6.3.0

3 years ago

6.2.1

3 years ago

6.2.0

3 years ago

6.1.0

4 years ago

6.1.0-0

4 years ago

6.0.0

5 years ago

5.0.0

6 years ago

4.12.2

6 years ago

4.12.1

6 years ago

4.12.0

7 years ago

4.11.0

7 years ago

4.10.1

8 years ago

4.10.0

8 years ago

4.9.0

8 years ago

4.8.0

8 years ago

4.7.0

8 years ago

4.6.0

8 years ago

4.5.3

8 years ago

4.5.2

8 years ago

4.5.1

8 years ago

4.5.0

8 years ago

4.4.0

9 years ago

4.3.2

9 years ago

4.3.1

9 years ago

4.3.0

9 years ago

4.2.3

9 years ago

4.2.2

9 years ago

4.2.1

9 years ago

4.2.1-0

9 years ago

4.2.0

9 years ago

4.1.0

9 years ago

4.0.0

9 years ago

4.0.0-3

9 years ago

4.0.0-2

9 years ago

4.0.0-1

9 years ago

4.0.0-0

9 years ago

3.0.0

9 years ago

2.7.1

9 years ago

2.7.0

9 years ago

2.6.1

10 years ago

2.6.0

10 years ago

2.5.2

10 years ago

2.5.1

10 years ago

2.5.0

10 years ago

2.4.0

10 years ago

2.3.3

10 years ago

2.3.2

10 years ago

2.3.0

10 years ago

2.2.0

10 years ago

2.1.0

10 years ago

2.0.1

10 years ago

2.0.0

10 years ago

2.0.0-alpha

10 years ago