forked from webpack/webpack
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDependenciesBlockVariable.unittest.js
More file actions
84 lines (71 loc) · 2.09 KB
/
DependenciesBlockVariable.unittest.js
File metadata and controls
84 lines (71 loc) · 2.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
"use strict";
const sinon = require("sinon");
const DependenciesBlockVariable = require("../lib/DependenciesBlockVariable");
describe("DependenciesBlockVariable", () => {
const sandbox = sinon.sandbox.create();
const dependencyMock = {
constructor: {
name: "DependencyMock"
},
disconnect: sandbox.spy(),
updateHash: sandbox.spy()
};
const DependenciesBlockVariableInstance = new DependenciesBlockVariable("dependencies-name", "expression", [dependencyMock]);
afterEach(() => {
sandbox.restore();
});
describe("hasDependencies", () => {
it("returns `true` if has dependencies", () => {
expect(DependenciesBlockVariableInstance.hasDependencies()).toBe(true);
});
});
describe("disconnect", () => {
it("trigger dependencies disconnection", () => {
DependenciesBlockVariableInstance.disconnect();
expect(dependencyMock.disconnect.calledOnce).toBe(true);
});
});
describe("updateHash", () => {
const hash = {
update: sandbox.spy()
};
DependenciesBlockVariableInstance.updateHash(hash);
it("should update hash dependencies with name", () => {
expect(hash.update.calledWith("dependencies-name")).toBe(true);
});
it("should update hash dependencies with expression", () => {
expect(hash.update.calledWith("expression")).toBe(true);
});
it("should update hash inside dependencies", () => {
expect(dependencyMock.updateHash.calledOnce).toBe(true);
});
});
describe("expressionSource", () => {
const applyMock = sandbox.spy();
it("aplies information inside dependency templates", () => {
const dependencyTemplates = {
get() {
return {
apply: applyMock
};
}
};
DependenciesBlockVariableInstance.expressionSource(
dependencyTemplates, {}, {}
);
expect(applyMock.calledOnce).toBe(true);
});
it("aplies information inside dependency templates", () => {
const dependencyTemplates = {
get() {
return false;
}
};
expect(() => {
DependenciesBlockVariableInstance.expressionSource(
dependencyTemplates, {}, {}
);
}).toThrow("No template for dependency: DependencyMock");
});
});
});