forked from webpack/webpack
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSideEffectsFlagPlugin.unittest.js
More file actions
103 lines (98 loc) · 2.59 KB
/
SideEffectsFlagPlugin.unittest.js
File metadata and controls
103 lines (98 loc) · 2.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
"use strict";
const SideEffectsFlagPlugin = require("../lib/optimize/SideEffectsFlagPlugin");
describe("SideEffectsFlagPlugin", () => {
it("should assume true", () => {
SideEffectsFlagPlugin.moduleHasSideEffects(
"./foo/bar.js",
undefined
).should.eql(true);
});
it("should understand boolean values", () => {
SideEffectsFlagPlugin.moduleHasSideEffects("./foo/bar.js", true).should.eql(
true
);
SideEffectsFlagPlugin.moduleHasSideEffects(
"./foo/bar.js",
false
).should.eql(false);
});
it("should understand a glob", () => {
SideEffectsFlagPlugin.moduleHasSideEffects(
"./src/x/y/z.js",
"./src/**/*.js"
).should.eql(true);
SideEffectsFlagPlugin.moduleHasSideEffects(
"./x.js",
"./src/**/*.js"
).should.eql(false);
SideEffectsFlagPlugin.moduleHasSideEffects(
"./src/x/y/z.js",
"./**/src/x/y/z.js"
).should.eql(true);
SideEffectsFlagPlugin.moduleHasSideEffects(
"./src/x/y/z.js",
"**.js"
).should.eql(true);
SideEffectsFlagPlugin.moduleHasSideEffects(
"./src/x/y/z.js",
"./src/**/z.js"
).should.eql(true);
SideEffectsFlagPlugin.moduleHasSideEffects(
"./src/x/y/z.js",
"./**/x/**/z.js"
).should.eql(true);
SideEffectsFlagPlugin.moduleHasSideEffects(
"./src/x/y/z.js",
"./**/src/**"
).should.eql(true);
SideEffectsFlagPlugin.moduleHasSideEffects(
"./src/x/y/z.js",
"./**/src/*"
).should.eql(false);
SideEffectsFlagPlugin.moduleHasSideEffects(
"./src/x/y/z.js",
"*.js"
).should.eql(true);
SideEffectsFlagPlugin.moduleHasSideEffects(
"./src/x/y/z.js",
"x/**/z.js"
).should.eql(false);
SideEffectsFlagPlugin.moduleHasSideEffects(
"./src/x/y/z.js",
"src/**/z.js"
).should.eql(true);
SideEffectsFlagPlugin.moduleHasSideEffects(
"./src/x/y/z.js",
"src/**/{x,y,z}.js"
).should.eql(true);
SideEffectsFlagPlugin.moduleHasSideEffects(
"./src/x/y/z.js",
"src/**/[x-z].js"
).should.eql(true);
SideEffectsFlagPlugin.moduleHasSideEffects(
"./src/x/y/z.js",
"src/**/[[:lower:]].js"
).should.eql(true);
SideEffectsFlagPlugin.moduleHasSideEffects(
"./src/x/y/z.js",
"!*.js"
).should.eql(false);
SideEffectsFlagPlugin.moduleHasSideEffects(
"./src/x/y/z.js",
"!**/*.js"
).should.eql(false);
});
it("should understand arrays", () => {
const array = ["./src/**/*.js", "./dirty.js"];
SideEffectsFlagPlugin.moduleHasSideEffects(
"./src/x/y/z.js",
array
).should.eql(true);
SideEffectsFlagPlugin.moduleHasSideEffects("./dirty.js", array).should.eql(
true
);
SideEffectsFlagPlugin.moduleHasSideEffects("./clean.js", array).should.eql(
false
);
});
});