chai-js-factories

js-factories integration with Chai

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
chai-js-factories
600.1.57 years ago8 years agoMinified + gzip package size for chai-js-factories in KB

Readme

chai-js-factories
NPM Version
chai-js-factories adds support of js-factories to Chai. In essence, it's a wrapper around the js-factories library and makes it available within the Chai namespace.

Installation

chai-js-factories is designed to work in most JavaScript environments, including Node and the browser.

Node

Run npm install {--save-dev} chai-js-factories; then, to use:
var chai = require('chai');
var chaiJsFactories = require('chai-js-factories');
chai.use(chaiJsFactories);

AMD

Include chaiChai and js-factoriesjs-factories per their respective readmes directions, then include chai-js-factories as a normal AMD module.
Note that unlike the other methods, you will need to explicitly initialize chai-js-factories with the chai-js-factories library:
require(['chai', 'js-factories', 'chai-js-factories'], function(chai, Factory, chaiJsFactories) {
  chai.use(function(chai, utils) {
    chaiJsFactories(Factory, chai, utils);
  });
});

<script> tag

Include chai-js-factories.js after including chaichai andjs-factoriesjs-factories:
<script src="chai.js" encoding="utf-8"></script>
<script src="js-factories.js" encoding="utf-8"></script>
<script src="chai-js-factories.js" encoding="utf-8"></script>

Karma

If you're using Karma, check out the accompanying karma-chai-js-factories plugin.

Usage

Access to the js-factory library located on the chai.factory object:
chai.factory.define('testFactory', function (args) {
  return new Example(_.extend({foo: 'bar'}, args));
});

console.log(chai.factory.create('testFactory'));
console.log(chai.factory.create('testFactory', {wom: 'bat'}));
console.log(chai.factory.create('testFactory', {foo: 'wombat'}));

This works as expected, overriding the default arguments when they are provided at creation time. For more documentation about factories, take a look at the js-factories documentation.