mirror of https://github.com/webpack/webpack.git
				
				
				
			
		
			
				
	
	
		
			74 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
| /*
 | |
| 	MIT License http://www.opensource.org/licenses/mit-license.php
 | |
| 	Author Tobias Koppers @sokra
 | |
| */
 | |
| var should = require("should");
 | |
| var path = require("path");
 | |
| var resolve = require("../lib/resolve");
 | |
| 
 | |
| var fixtures = path.join(__dirname, "fixtures");
 | |
| function testResolve(name, context, moduleName, result) {
 | |
| 	describe(name, function() {
 | |
| 		it("should resolve correctly", function(done) {
 | |
| 			resolve(context, moduleName, {}, function(err, filename) {
 | |
| 				if(err) done(err);
 | |
| 				should.exist(filename);
 | |
| 				filename.should.equal(result);
 | |
| 				done();
 | |
| 			});
 | |
| 		});
 | |
| 	});
 | |
| }
 | |
| function testResolveContext(name, context, moduleName, result) {
 | |
| 	describe(name, function() {
 | |
| 		it("should resolve correctly", function(done) {
 | |
| 			resolve.context(context, moduleName, {}, function(err, filename) {
 | |
| 				if(err) done(err);
 | |
| 				should.exist(filename)
 | |
| 				filename.should.equal(result);
 | |
| 				done();
 | |
| 			});
 | |
| 		});
 | |
| 	});
 | |
| }
 | |
| describe("resolve", function() {
 | |
| 	testResolve("file with .js",
 | |
| 		fixtures, "./main1.js", path.join(fixtures, "main1.js"));
 | |
| 	testResolve("file without extension",
 | |
| 		fixtures, "./main1", path.join(fixtures, "main1.js"));
 | |
| 	testResolve("another file with .js",
 | |
| 		fixtures, "./a.js", path.join(fixtures, "a.js"));
 | |
| 	testResolve("another file without extension",
 | |
| 		fixtures, "./a", path.join(fixtures, "a.js"));
 | |
| 	testResolve("file in module with .js",
 | |
| 		fixtures, "m1/a.js", path.join(fixtures, "node_modules", "m1", "a.js"));
 | |
| 	testResolve("file in module without extension",
 | |
| 		fixtures, "m1/a", path.join(fixtures, "node_modules", "m1", "a.js"));
 | |
| 	testResolve("another file in module without extension",
 | |
| 		fixtures, "complexm/step1", path.join(fixtures, "node_modules", "complexm", "step1.js"));
 | |
| 	testResolve("from submodule to file in sibling module",
 | |
| 		path.join(fixtures, "node_modules", "complexm"), "m2/b.js", path.join(fixtures, "node_modules", "m2", "b.js"));
 | |
| 	testResolve("from submodule to file in sibling of parent module",
 | |
| 		path.join(fixtures, "node_modules", "complexm", "web_modules", "m1"), "m2/b.js", path.join(fixtures, "node_modules", "m2", "b.js"));
 | |
| 
 | |
| 	testResolve("loader",
 | |
| 		fixtures, "m1/a!./main1.js", path.join(fixtures, "node_modules", "m1", "a.js") + "!" + path.join(fixtures, "main1.js"));
 | |
| 	testResolve("loader with prefix",
 | |
| 		fixtures, "m2/b!./main1.js", path.join(fixtures, "node_modules", "m2-loader", "b.js") + "!" + path.join(fixtures, "main1.js"));
 | |
| 	testResolve("multiple loaders",
 | |
| 		fixtures, "m1/a!m1/b!m2/b!./main1.js", path.join(fixtures, "node_modules", "m1", "a.js") + "!" +
 | |
| 			path.join(fixtures, "node_modules", "m1", "b.js") + "!" +
 | |
| 			path.join(fixtures, "node_modules", "m2-loader", "b.js") + "!" +
 | |
| 			path.join(fixtures, "main1.js"));
 | |
| 
 | |
| 	testResolveContext("context for fixtures",
 | |
| 		fixtures, "./", fixtures);
 | |
| 	testResolveContext("context for fixtures/lib",
 | |
| 		fixtures, "./lib", path.join(fixtures, "lib"));
 | |
| 	testResolveContext("context with loader",
 | |
| 		fixtures, "m1/a!./", path.join(fixtures, "node_modules", "m1", "a.js") + "!" + fixtures);
 | |
| 	testResolveContext("context with loaders in parent directory",
 | |
| 		fixtures, "m1/a!m2/b.js!../", path.join(fixtures, "node_modules", "m1", "a.js") + "!" +
 | |
| 			path.join(fixtures, "node_modules", "m2-loader", "b.js") + "!" +
 | |
| 			path.join(fixtures, ".."));
 | |
| }); |