mirror of https://github.com/webpack/webpack.git
				
				
				
			
		
			
				
	
	
		
			96 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
"use strict";
 | 
						|
 | 
						|
require("./helpers/warmup-webpack");
 | 
						|
 | 
						|
const path = require("path");
 | 
						|
 | 
						|
// cspell:word nodetest
 | 
						|
describe("NodeTemplatePlugin", () => {
 | 
						|
	jest.setTimeout(20000);
 | 
						|
 | 
						|
	it("should compile and run a simple module", (done) => {
 | 
						|
		const webpack = require("..");
 | 
						|
 | 
						|
		webpack(
 | 
						|
			{
 | 
						|
				mode: "production",
 | 
						|
				context: path.join(__dirname, "fixtures", "nodetest"),
 | 
						|
				target: "node",
 | 
						|
				output: {
 | 
						|
					path: path.join(__dirname, "js", "NodeTemplatePlugin"),
 | 
						|
					filename: "result.js",
 | 
						|
					chunkFilename: "[fullhash].result.[id].js",
 | 
						|
					library: "abc",
 | 
						|
					libraryTarget: "commonjs"
 | 
						|
				},
 | 
						|
				entry: "./entry"
 | 
						|
			},
 | 
						|
			(err, stats) => {
 | 
						|
				if (err) return err;
 | 
						|
				expect(stats.hasErrors()).toBe(false);
 | 
						|
				expect(stats.hasWarnings()).toBe(false);
 | 
						|
 | 
						|
				const result = require("./js/NodeTemplatePlugin/result").abc;
 | 
						|
 | 
						|
				expect(result.nextTick).toBe(process.nextTick);
 | 
						|
				expect(result.fs).toBe(require("fs"));
 | 
						|
				result.loadChunk(456, (chunk) => {
 | 
						|
					expect(chunk).toBe(123);
 | 
						|
					result.loadChunk(567, (chunk) => {
 | 
						|
						expect(chunk).toEqual({
 | 
						|
							a: 1
 | 
						|
						});
 | 
						|
						done();
 | 
						|
					});
 | 
						|
				});
 | 
						|
			}
 | 
						|
		);
 | 
						|
	});
 | 
						|
 | 
						|
	it("should compile and run a simple module in single mode", (done) => {
 | 
						|
		const webpack = require("..");
 | 
						|
 | 
						|
		webpack(
 | 
						|
			{
 | 
						|
				mode: "production",
 | 
						|
				context: path.join(__dirname, "fixtures", "nodetest"),
 | 
						|
				target: "node",
 | 
						|
				output: {
 | 
						|
					path: path.join(__dirname, "js", "NodeTemplatePluginSingle"),
 | 
						|
					filename: "result2.js",
 | 
						|
					chunkFilename: "[fullhash].result2.[id].js",
 | 
						|
					library: "def",
 | 
						|
					libraryTarget: "umd",
 | 
						|
					auxiliaryComment: "test"
 | 
						|
				},
 | 
						|
				entry: "./entry",
 | 
						|
				plugins: [
 | 
						|
					new webpack.optimize.LimitChunkCountPlugin({
 | 
						|
						maxChunks: 1
 | 
						|
					})
 | 
						|
				]
 | 
						|
			},
 | 
						|
			(err, stats) => {
 | 
						|
				if (err) return err;
 | 
						|
				expect(stats.hasErrors()).toBe(false);
 | 
						|
 | 
						|
				const result = require("./js/NodeTemplatePluginSingle/result2");
 | 
						|
 | 
						|
				expect(result.nextTick).toBe(process.nextTick);
 | 
						|
				expect(result.fs).toBe(require("fs"));
 | 
						|
				const sameTick = true;
 | 
						|
				result.loadChunk(456, (chunk) => {
 | 
						|
					expect(chunk).toBe(123);
 | 
						|
					expect(sameTick).toBe(true);
 | 
						|
					result.loadChunk(567, (chunk) => {
 | 
						|
						expect(chunk).toEqual({
 | 
						|
							a: 1
 | 
						|
						});
 | 
						|
						done();
 | 
						|
					});
 | 
						|
				});
 | 
						|
			}
 | 
						|
		);
 | 
						|
	});
 | 
						|
});
 |