mirror of https://github.com/webpack/webpack.git
99 lines
2.4 KiB
JavaScript
99 lines
2.4 KiB
JavaScript
|
|
var should = require("should");
|
||
|
|
var sinon = require("sinon");
|
||
|
|
var DependenciesBlockVariable = require("../lib/DependenciesBlockVariable");
|
||
|
|
|
||
|
|
describe("DependenciesBlockVariable", function() {
|
||
|
|
var DependenciesBlockVariableInstance,
|
||
|
|
dependencyMock,
|
||
|
|
sandbox;
|
||
|
|
|
||
|
|
before(function() {
|
||
|
|
sandbox = sinon.sandbox.create();
|
||
|
|
dependencyMock = {
|
||
|
|
constructor: {
|
||
|
|
name: "DependencyMock"
|
||
|
|
},
|
||
|
|
disconnect: sandbox.spy(),
|
||
|
|
updateHash: sandbox.spy()
|
||
|
|
};
|
||
|
|
DependenciesBlockVariableInstance = new DependenciesBlockVariable(
|
||
|
|
"dependencies-name",
|
||
|
|
"expression", [dependencyMock]);
|
||
|
|
});
|
||
|
|
|
||
|
|
afterEach(function() {
|
||
|
|
sandbox.restore();
|
||
|
|
});
|
||
|
|
|
||
|
|
describe("hasDependencies", function() {
|
||
|
|
it("returns `true` if has dependencies", function() {
|
||
|
|
should(DependenciesBlockVariableInstance.hasDependencies()).be.true();
|
||
|
|
});
|
||
|
|
});
|
||
|
|
|
||
|
|
describe("disconnect", function() {
|
||
|
|
it("trigger dependencies disconnection", function() {
|
||
|
|
DependenciesBlockVariableInstance.disconnect();
|
||
|
|
should(dependencyMock.disconnect.calledOnce).be.true();
|
||
|
|
});
|
||
|
|
});
|
||
|
|
|
||
|
|
describe("updateHash", function() {
|
||
|
|
var hash;
|
||
|
|
before(function() {
|
||
|
|
hash = {
|
||
|
|
update: sandbox.spy()
|
||
|
|
};
|
||
|
|
DependenciesBlockVariableInstance.updateHash(hash);
|
||
|
|
});
|
||
|
|
|
||
|
|
it("should update hash dependencies with name", function() {
|
||
|
|
should(hash.update.calledWith("dependencies-name")).be.true();
|
||
|
|
});
|
||
|
|
|
||
|
|
it("should update hash dependencies with expression", function() {
|
||
|
|
should(hash.update.calledWith("expression")).be.true();
|
||
|
|
});
|
||
|
|
|
||
|
|
it("should update hash inside dependencies", function() {
|
||
|
|
should(dependencyMock.updateHash.calledOnce).be.true();
|
||
|
|
});
|
||
|
|
});
|
||
|
|
|
||
|
|
describe("expressionSource", function() {
|
||
|
|
var dependencyTemplates,
|
||
|
|
applyMock;
|
||
|
|
|
||
|
|
before(function() {
|
||
|
|
applyMock = sandbox.spy();
|
||
|
|
});
|
||
|
|
|
||
|
|
it("aplies information inside dependency templates", function() {
|
||
|
|
dependencyTemplates = {
|
||
|
|
get: function() {
|
||
|
|
return {
|
||
|
|
apply: applyMock
|
||
|
|
};
|
||
|
|
}
|
||
|
|
};
|
||
|
|
DependenciesBlockVariableInstance.expressionSource(
|
||
|
|
dependencyTemplates, {}, {}
|
||
|
|
);
|
||
|
|
should(applyMock.calledOnce).be.true();
|
||
|
|
});
|
||
|
|
|
||
|
|
it("aplies information inside dependency templates", function() {
|
||
|
|
dependencyTemplates = {
|
||
|
|
get: function() {
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
};
|
||
|
|
should(function() {
|
||
|
|
DependenciesBlockVariableInstance.expressionSource(
|
||
|
|
dependencyTemplates, {}, {}
|
||
|
|
)
|
||
|
|
}).throw("No template for dependency: DependencyMock");
|
||
|
|
})
|
||
|
|
});
|
||
|
|
});
|