mirror of https://github.com/webpack/webpack.git
				
				
				
			
		
			
				
	
	
		
			144 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			144 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
"use strict";
 | 
						|
 | 
						|
const SideEffectsFlagPlugin = require("../lib/optimize/SideEffectsFlagPlugin");
 | 
						|
 | 
						|
describe("SideEffectsFlagPlugin", () => {
 | 
						|
	it("should assume true", () => {
 | 
						|
		expect(
 | 
						|
			SideEffectsFlagPlugin.moduleHasSideEffects(
 | 
						|
				"./foo/bar.js",
 | 
						|
				undefined,
 | 
						|
				new Map()
 | 
						|
			)
 | 
						|
		).toBe(true);
 | 
						|
	});
 | 
						|
 | 
						|
	it("should understand boolean values", () => {
 | 
						|
		expect(
 | 
						|
			SideEffectsFlagPlugin.moduleHasSideEffects(
 | 
						|
				"./foo/bar.js",
 | 
						|
				true,
 | 
						|
				new Map()
 | 
						|
			)
 | 
						|
		).toBe(true);
 | 
						|
		expect(
 | 
						|
			SideEffectsFlagPlugin.moduleHasSideEffects(
 | 
						|
				"./foo/bar.js",
 | 
						|
				false,
 | 
						|
				new Map()
 | 
						|
			)
 | 
						|
		).toBe(false);
 | 
						|
	});
 | 
						|
 | 
						|
	it("should understand a glob", () => {
 | 
						|
		expect(
 | 
						|
			SideEffectsFlagPlugin.moduleHasSideEffects(
 | 
						|
				"./src/x/y/z.js",
 | 
						|
				"./src/**/*.js",
 | 
						|
				new Map()
 | 
						|
			)
 | 
						|
		).toBe(true);
 | 
						|
		expect(
 | 
						|
			SideEffectsFlagPlugin.moduleHasSideEffects(
 | 
						|
				"./x.js",
 | 
						|
				"./src/**/*.js",
 | 
						|
				new Map()
 | 
						|
			)
 | 
						|
		).toBe(false);
 | 
						|
		expect(
 | 
						|
			SideEffectsFlagPlugin.moduleHasSideEffects(
 | 
						|
				"./src/x/y/z.js",
 | 
						|
				"./**/src/x/y/z.js",
 | 
						|
				new Map()
 | 
						|
			)
 | 
						|
		).toBe(true);
 | 
						|
		expect(
 | 
						|
			SideEffectsFlagPlugin.moduleHasSideEffects(
 | 
						|
				"./src/x/y/z.js",
 | 
						|
				"**.js",
 | 
						|
				new Map()
 | 
						|
			)
 | 
						|
		).toBe(true);
 | 
						|
		expect(
 | 
						|
			SideEffectsFlagPlugin.moduleHasSideEffects(
 | 
						|
				"./src/x/y/z.js",
 | 
						|
				"./src/**/z.js",
 | 
						|
				new Map()
 | 
						|
			)
 | 
						|
		).toBe(true);
 | 
						|
		expect(
 | 
						|
			SideEffectsFlagPlugin.moduleHasSideEffects(
 | 
						|
				"./src/x/y/z.js",
 | 
						|
				"./**/x/**/z.js",
 | 
						|
				new Map()
 | 
						|
			)
 | 
						|
		).toBe(true);
 | 
						|
		expect(
 | 
						|
			SideEffectsFlagPlugin.moduleHasSideEffects(
 | 
						|
				"./src/x/y/z.js",
 | 
						|
				"./**/src/**",
 | 
						|
				new Map()
 | 
						|
			)
 | 
						|
		).toBe(true);
 | 
						|
		expect(
 | 
						|
			SideEffectsFlagPlugin.moduleHasSideEffects(
 | 
						|
				"./src/x/y/z.js",
 | 
						|
				"./**/src/*",
 | 
						|
				new Map()
 | 
						|
			)
 | 
						|
		).toBe(false);
 | 
						|
		expect(
 | 
						|
			SideEffectsFlagPlugin.moduleHasSideEffects(
 | 
						|
				"./src/x/y/z.js",
 | 
						|
				"*.js",
 | 
						|
				new Map()
 | 
						|
			)
 | 
						|
		).toBe(true);
 | 
						|
		expect(
 | 
						|
			SideEffectsFlagPlugin.moduleHasSideEffects(
 | 
						|
				"./src/x/y/z.js",
 | 
						|
				"x/**/z.js",
 | 
						|
				new Map()
 | 
						|
			)
 | 
						|
		).toBe(false);
 | 
						|
		expect(
 | 
						|
			SideEffectsFlagPlugin.moduleHasSideEffects(
 | 
						|
				"./src/x/y/z.js",
 | 
						|
				"src/**/z.js",
 | 
						|
				new Map()
 | 
						|
			)
 | 
						|
		).toBe(true);
 | 
						|
		expect(
 | 
						|
			SideEffectsFlagPlugin.moduleHasSideEffects(
 | 
						|
				"./src/x/y/z.js",
 | 
						|
				"src/**/{x,y,z}.js",
 | 
						|
				new Map()
 | 
						|
			)
 | 
						|
		).toBe(true);
 | 
						|
		expect(
 | 
						|
			SideEffectsFlagPlugin.moduleHasSideEffects(
 | 
						|
				"./src/x/y/z.js",
 | 
						|
				"src/**/[x-z].js",
 | 
						|
				new Map()
 | 
						|
			)
 | 
						|
		).toBe(true);
 | 
						|
	});
 | 
						|
 | 
						|
	it("should understand arrays", () => {
 | 
						|
		const array = ["./src/**/*.js", "./dirty.js"];
 | 
						|
		expect(
 | 
						|
			SideEffectsFlagPlugin.moduleHasSideEffects(
 | 
						|
				"./src/x/y/z.js",
 | 
						|
				array,
 | 
						|
				new Map()
 | 
						|
			)
 | 
						|
		).toBe(true);
 | 
						|
		expect(
 | 
						|
			SideEffectsFlagPlugin.moduleHasSideEffects("./dirty.js", array, new Map())
 | 
						|
		).toBe(true);
 | 
						|
		expect(
 | 
						|
			SideEffectsFlagPlugin.moduleHasSideEffects("./clean.js", array, new Map())
 | 
						|
		).toBe(false);
 | 
						|
	});
 | 
						|
});
 |