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