/
index.js
68 lines (58 loc) · 1.87 KB
/
index.js
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
it("should provide a module for a simple free var", function() {
expect(aaa).toBe("aaa");
});
it("should provide a module for a nested var", function() {
expect((bbb.ccc)).toBe("bbbccc");
var x = bbb.ccc;
expect(x).toBe("bbbccc");
});
it("should provide a module for a nested var within a IIFE's argument", function() {
(function(process) {
expect((process.env.NODE_ENV)).toBe("development");
var x = process.env.NODE_ENV;
expect(x).toBe("development");
}(process));
});
it("should provide a module for thisExpression", () => {
expect(this.aaa).toBe("aaa");
});
it("should provide a module for a nested var within a IIFE's this", function() {
(function() {
expect((this.env.NODE_ENV)).toBe("development");
var x = this.env.NODE_ENV;
expect(x).toBe("development");
}.call(process));
});
it("should provide a module for a nested var within a nested IIFE's this", function() {
(function() {
(function() {
expect((this.env.NODE_ENV)).toBe("development");
var x = this.env.NODE_ENV;
expect(x).toBe("development");
}.call(this));
}.call(process));
});
it("should not provide a module for a part of a var", function() {
expect((typeof bbb)).toBe("undefined");
});
it("should provide a module for a property request", function() {
expect((dddeeefff)).toBe("fff");
var x = dddeeefff;
expect(x).toBe("fff");
});
it("should tree-shake unused exports", function() {
expect(aa1(2)).toBe(8);
expect(es2015_aUsed).toBe(false);
});
it("should provide ES2015 modules", function() {
expect((es2015.default)).toBe("ECMAScript 2015");
expect((es2015.alias)).toBe("ECMAScript Harmony");
expect((es2015.year)).toBe(2015);
expect((es2015_name)).toBe("ECMAScript 2015");
expect((es2015_alias)).toBe("ECMAScript Harmony");
expect((es2015_year)).toBe(2015);
});
it("should not provide for mjs", function(){
var foo = require("./foo.mjs").default;
expect(foo()).toBe("esm");
});