proxyquire-2
Version:
Proxies import/require in order to allow overriding dependencies during testing.
70 lines (57 loc) • 1.85 kB
JavaScript
/*jshint asi:true*/
/*global describe, before, it */
;
var assert = require('assert')
, proxyquire = require('..')
, stats = require('./samples/stats')
;
describe('Given foo requires the boof, foonum and foobool modules and boof is a string, foonum is a Number and foobool is a bool', function () {
var file = '/folder/test.ext'
, foo
, boofber = 'a_string'
, foonumber = 4
, fooboolber = false
;
describe('When I resolve foo with boofber stub as boof.', function () {
before(function () {
stats.reset();
foo = proxyquire('./samples/foo', { './boof':boofber})
})
it('foo is required 1 times', function () {
assert.equal(stats.fooRequires(), 1);
})
describe('foo\'s boof is boofber', function () {
it('foo.boof == boofber', function () {
assert.equal(foo.boof, boofber);
})
})
})
describe('When I resolve foo with foonumber stub as foonum.', function () {
before(function () {
stats.reset();
foo = proxyquire('./samples/foo', { './foonum':foonumber})
})
it('foo is required 1 times', function () {
assert.equal(stats.fooRequires(), 1);
})
describe('foo\'s foonum is foonumber', function () {
it('foo.foonum == foonumber', function () {
assert.equal(foo.foonum, foonumber);
})
})
})
describe('When I resolve foo with fooboolber stub as foobool.', function () {
before(function () {
stats.reset();
foo = proxyquire('./samples/foo', { './foobool':fooboolber})
})
it('foo is required 1 times', function () {
assert.equal(stats.fooRequires(), 1);
})
describe('foo\'s foobool is fooboolber', function () {
it('foo.foobool == fooboolber', function () {
assert.equal(foo.foobool, fooboolber);
})
})
})
})