enb
Version:
Faster BEM/BEViS assembler
56 lines (48 loc) • 1.79 kB
JavaScript
var proxyquire = require('proxyquire').noCallThru();
var mockFs = require('mock-fs');
var MockNode = proxyquire('mock-enb/lib/mock-node', {
enb: require('../../lib/api'),
'enb/lib/cache/cache-storage': require('../../lib/cache/cache-storage'),
'enb/lib/cache/cache': require('../../lib/cache/cache')
});
var FileProviderTech = require('../../techs/file-provider');
describe('techs/file-provider', function () {
var bundle,
resolveSpy,
rejectSpy;
beforeEach(function () {
mockFs({
bundle: {
'file.txt': 'I\'m here'
},
'/absolute.txt': 'You\'re here'
});
bundle = new MockNode('bundle');
resolveSpy = sinon.spy(bundle, 'resolveTarget');
rejectSpy = sinon.spy(bundle, 'rejectTarget');
});
afterEach(function () {
mockFs.restore();
});
it('should prodive file to target', function () {
return bundle.runTech(FileProviderTech, { target: 'file.txt' })
.should.be.fulfilled
.then(function () {
resolveSpy.should.calledWith('file.txt');
});
});
it('should provide file to target with absolute path', function () {
return bundle.runTech(FileProviderTech, { target: '/absolute.txt' })
.should.be.fulfilled
.then(function () {
resolveSpy.should.calledWith('/absolute.txt');
});
});
it('should reject target if file is not found', function () {
return bundle.runTech(FileProviderTech, { target: 'non-existent.txt' })
.should.be.rejectedWith('file not found')
.then(function () {
rejectSpy.should.calledWith('non-existent.txt');
});
});
});