2.1.5 • Published 5 years ago

builder-factory v2.1.5

Weekly downloads
72
License
MIT
Repository
github
Last release
5 years ago

builder-factory

Factory for creating basic object types during testing.

Build Status

Usage

Create A Builder

Each builder instance is initialised with a seed object. This will be the default return object of that instance's build call.

import Builder from 'builder-factory';

const builder = Builder.create({
  name: 'User name',
  age: 37,
  isActive: true
});

console.log(builder.build());
// { name: 'User name', age: 37, isActive: true }

Build A Collection

If you want to build a collection of objects, use buildMany.

import Builder from 'builder-factory';

const builder = Builder.create({
  name: 'User name',
  age: 37,
  isActive: true
});

console.log(builder.buildMany(5));
// [
//   { name: 'User name', age: 37, isActive: true },
//   { name: 'User name', age: 37, isActive: true },
//   { name: 'User name', age: 37, isActive: true },
//   { name: 'User name', age: 37, isActive: true },
//   { name: 'User name', age: 37, isActive: true }
// ]

You can optionally supply a factory wrapper to manipulate the items as they are created.

import Builder from 'builder-factory';

const builder = Builder.create({
  name: 'User name',
  age: 37,
  isActive: true
});

console.log(
  builder.buildMany(
    5,
    (builder, i) => builder.with({ age: i }).without('isActive')
  )
);
// [
//   { name: 'User name', age: 0 },
//   { name: 'User name', age: 1 },
//   { name: 'User name', age: 2 },
//   { name: 'User name', age: 3 },
//   { name: 'User name', age: 4 }
// ]

Set Values

Use with to set values.

const updated = builder.with('age', 21);

console.log(updated.build());
// { name: 'User name', age: 21, isActive: true }

The original value is not mutated.

console.log(builder.build());
// { name: 'User name', age: 37, isActive: true }

You can also set values by passing a compatible object:

const updated = builder.with({
  age: 21,
  isActive: false
});

console.log(updated.build());
// { name: 'User name', age: 21, isActive: false }

Drop Values

Use without to drop values.

const updated = builder.without('age');

console.log(updated.build());
// { name: 'User name', isActive: true }

The original value is not mutated.

console.log(builder.build());
// { name: 'User name', age: 37, isActive: true }
2.1.5

5 years ago

2.2.0-rollup.1

5 years ago

2.2.0-rollup.0

5 years ago

2.1.4

5 years ago

2.1.3

5 years ago

2.1.2

5 years ago

2.1.1

6 years ago

2.1.0

6 years ago

2.0.1

6 years ago

2.0.0

6 years ago

1.3.3

6 years ago

1.3.2

6 years ago

1.3.1

6 years ago

1.3.0

6 years ago

1.2.0

6 years ago

1.1.2

6 years ago

1.1.1

6 years ago

1.1.0

6 years ago

1.0.12

6 years ago

1.0.11

6 years ago

1.0.10

6 years ago

1.0.9

6 years ago

1.0.8

6 years ago

1.0.7

6 years ago

1.0.6

6 years ago

1.0.5

6 years ago

1.0.4

6 years ago

1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago