enb
Version:
Faster BEM/BEViS assembler
96 lines (78 loc) • 3.49 kB
JavaScript
var path = require('path');
var vow = require('vow');
var Node = require('../../../lib/node/node');
var NodeWithGraph = require('../../../lib/node/node-with-graph');
var MakePlatform = require('../../../lib/make');
var Cache = require('../../../lib/cache/cache');
var Logger = require('../../../lib/logger');
var BaseTech = require('../../../lib/tech/base-tech');
var BuildGraph = require('../../../lib/ui/build-graph');
describe('node-with-graph', function () {
var sandbox = sinon.sandbox.create();
var nodePath = path.join('path', 'to', 'node');
var node;
var graph;
beforeEach(function () {
var projectDir = path.join('path', 'to', 'project');
var makePlatform = sinon.createStubInstance(MakePlatform);
makePlatform.getDir.returns(projectDir);
var cache = sinon.createStubInstance(Cache);
cache.subCache.returns(sinon.createStubInstance(Cache));
graph = sinon.createStubInstance(BuildGraph);
node = new NodeWithGraph(nodePath, makePlatform, cache, graph);
node.setLogger(sinon.createStubInstance(Logger));
});
afterEach(function () {
sandbox.restore();
});
describe('resolveTarget', function () {
it('should add resolved target to build graph', function () {
sandbox.stub(Node.prototype, 'resolveTarget');
node.resolveTarget('node.js');
expect(graph.resolveTarget).to.be.calledWith(path.join(node.getPath(), 'node.js'));
expect(Node.prototype.resolveTarget).to.be.calledWith('node.js');
});
});
describe('loadTechs', function () {
it('should add targets to build graph', function () {
var tech = sinon.createStubInstance(BaseTech);
tech.getTargets.returns(['node.js']);
tech.getName.returns('tech');
node.setTechs([tech]);
node.loadTechs();
expect(graph.addTarget).to.be.calledWith(
path.join(nodePath, 'node.js'),
'tech'
);
});
});
describe('requireSources', function () {
it('should add dependency to build graph', function () {
sandbox.stub(Node.prototype, 'requireSources');
Node.prototype.requireSources.returns(vow.resolve());
node.setTargetsToBuild(['node.js']);
return node.requireSources(['?.js'], ['target.js'])
.then(function () {
expect(graph.addDep).to.be.calledWith(
path.join(nodePath, 'target.js'),
path.join(nodePath, 'node.js')
);
expect(Node.prototype.requireSources).to.be.calledWith(['?.js']);
});
});
});
describe('requireNodeSources', function () {
it('should add dependencies to build graph', function () {
sandbox.stub(Node.prototype, 'requireNodeSources');
Node.prototype.requireNodeSources.returns(vow.resolve());
return node.requireNodeSources({ node: ['?.js'] }, ['target.js'])
.then(function () {
expect(graph.addDep).to.be.calledWith(
path.join(nodePath, 'target.js'),
path.join('node', 'node.js')
);
expect(Node.prototype.requireNodeSources).to.be.calledWith({ node: ['?.js'] }, ['target.js']);
});
});
});
});