broccoli-test-helpers

0.0.9 • Public • Published

Broccoli Test Helpers

A small set of test helpers that allow you setup broccoli plugins for testing.

Install

npm install broccoli-test-helpers --save-dev

Usage

Below is an example of the basic usage.

var testHelpers = require('broccoli-test-helpers');
var expect = require('chai').expect;
var _myBroccoliPlugin = require('./lib');
var makeTestHelper = testHelpers.makeTestHelper;
var cleanupBuilders = testHelpers.cleanupBuilders;
var fs = require('fs');
var path = require('path');
 
var fixtures = path.join(process.cwd(), 'tests/fixtures');
var expectations = path.join(process.cwd(), 'tests/expectations');
 
describe('myBroccoliPlugin', function() {
  var myBroccoliPlugin = makeTestHelper({
    subject: _myBroccoliPlugin,
    fixturePath: fixtures
  });
 
  afterEach(function() {
    return cleanupBuilders();
  });
 
  it('should work', function() {
    return myBroccoliPlugin('.').then(function(result) {
      expect(result.files).to.deep.equal([
        'a.js',
        'b.js'
      ]);
 
      result.files.forEach(function(file) {
        expect(fs.readFileSync(path.join(result.directory, file), 'utf8')).to.equal(fs.readFileSync(path.join(assertions, file), 'utf8'));
      });
 
      // optionally you can test a rebuild by performing
      // some mutation on the files and then rebuilding.
      // You would then chain another .then() on the end
      // and preform assertions.
      // 
      // return result.builder();
    });
  })
});

Readme

Keywords

Package Sidebar

Install

npm i broccoli-test-helpers

Weekly Downloads

16

Version

0.0.9

License

MIT

Last publish

Collaborators

  • chadhietala
  • stefanpenner