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"); | ||
|  | 		}); | ||
|  | 	}); | ||
|  | }); |