@happy-dom/jest-environment 9.1.5 → 9.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index.d.ts +6 -1
- package/lib/index.js +29 -3
- package/lib/index.js.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +39 -4
package/lib/index.d.ts
CHANGED
@@ -19,9 +19,14 @@ export default class HappyDOMEnvironment implements JestEnvironment {
|
|
19
19
|
* Constructor.
|
20
20
|
*
|
21
21
|
* @param config Jest config.
|
22
|
+
* @param config.globalConfig jest global config.
|
23
|
+
* @param config.projectConfig jest project config.
|
22
24
|
* @param options Options.
|
23
25
|
*/
|
24
|
-
constructor(config:
|
26
|
+
constructor(config: {
|
27
|
+
globalConfig: Config.GlobalConfig;
|
28
|
+
projectConfig: Config.ProjectConfig;
|
29
|
+
} | Config.ProjectConfig, options?: EnvironmentContext);
|
25
30
|
/**
|
26
31
|
* Setup.
|
27
32
|
*
|
package/lib/index.js
CHANGED
@@ -36,6 +36,8 @@ class HappyDOMEnvironment {
|
|
36
36
|
* Constructor.
|
37
37
|
*
|
38
38
|
* @param config Jest config.
|
39
|
+
* @param config.globalConfig jest global config.
|
40
|
+
* @param config.projectConfig jest project config.
|
39
41
|
* @param options Options.
|
40
42
|
*/
|
41
43
|
constructor(config, options) {
|
@@ -50,15 +52,33 @@ class HappyDOMEnvironment {
|
|
50
52
|
this.global.Buffer = Buffer;
|
51
53
|
// Needed as Jest is using it
|
52
54
|
this.window['global'] = this.global;
|
53
|
-
|
55
|
+
let globals;
|
56
|
+
let projectConfig;
|
57
|
+
if (isJestConfigVersion29(config)) {
|
58
|
+
// Jest 29
|
59
|
+
globals = config.globals;
|
60
|
+
projectConfig = config;
|
61
|
+
}
|
62
|
+
else if (isJestConfigVersion28(config)) {
|
63
|
+
// Jest < 29
|
64
|
+
globals = config.projectConfig.globals;
|
65
|
+
projectConfig = config.projectConfig;
|
66
|
+
}
|
67
|
+
else {
|
68
|
+
throw new Error('Unsupported jest version.');
|
69
|
+
}
|
70
|
+
JestUtil.installCommonGlobals(this.window, globals);
|
54
71
|
// For some reason Jest removes the global setImmediate, so we need to add it back.
|
55
72
|
this.global.setImmediate = global.setImmediate;
|
56
73
|
if (options && options.console) {
|
57
74
|
this.global.console = options.console;
|
58
75
|
this.global.window['console'] = options.console;
|
59
76
|
}
|
77
|
+
if (projectConfig.testEnvironmentOptions['url']) {
|
78
|
+
this.window.happyDOM.setURL(String(projectConfig.testEnvironmentOptions['url']));
|
79
|
+
}
|
60
80
|
this.fakeTimers = new fake_timers_1.LegacyFakeTimers({
|
61
|
-
config,
|
81
|
+
config: projectConfig,
|
62
82
|
global: this.window,
|
63
83
|
moduleMocker: this.moduleMocker,
|
64
84
|
timerConfig: {
|
@@ -67,7 +87,7 @@ class HappyDOMEnvironment {
|
|
67
87
|
}
|
68
88
|
});
|
69
89
|
this.fakeTimersModern = new fake_timers_1.ModernFakeTimers({
|
70
|
-
config,
|
90
|
+
config: projectConfig,
|
71
91
|
global: this.window
|
72
92
|
});
|
73
93
|
}
|
@@ -110,4 +130,10 @@ class HappyDOMEnvironment {
|
|
110
130
|
}
|
111
131
|
}
|
112
132
|
exports.default = HappyDOMEnvironment;
|
133
|
+
function isJestConfigVersion29(config) {
|
134
|
+
return Object.getOwnPropertyDescriptor(config, 'globals') !== undefined;
|
135
|
+
}
|
136
|
+
function isJestConfigVersion28(config) {
|
137
|
+
return Object.getOwnPropertyDescriptor(config, 'projectConfig') !== undefined;
|
138
|
+
}
|
113
139
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,6CAA6C;;;;;;;;;;;;;;;;;;;;;;;;;AAG7C,oDAAsC;AACtC,yCAAyC;AACzC,mDAAuE;AAEvE,yCAAmC;AAInC;;GAEG;AACH,MAAqB,mBAAmB;IAOvC
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@happy-dom/jest-environment",
|
3
|
-
"version": "9.1.
|
3
|
+
"version": "9.1.7",
|
4
4
|
"license": "MIT",
|
5
5
|
"homepage": "https://github.com/capricorn86/happy-dom/tree/master/packages/jest-environment",
|
6
6
|
"repository": "https://github.com/capricorn86/happy-dom",
|
@@ -54,7 +54,7 @@
|
|
54
54
|
"@jest/types": "^29.4.0",
|
55
55
|
"jest-mock": "^29.4.0",
|
56
56
|
"jest-util": "^29.4.0",
|
57
|
-
"happy-dom": "^9.1.
|
57
|
+
"happy-dom": "^9.1.7"
|
58
58
|
},
|
59
59
|
"devDependencies": {
|
60
60
|
"@typescript-eslint/eslint-plugin": "^5.16.0",
|
package/src/index.ts
CHANGED
@@ -23,9 +23,16 @@ export default class HappyDOMEnvironment implements JestEnvironment {
|
|
23
23
|
* Constructor.
|
24
24
|
*
|
25
25
|
* @param config Jest config.
|
26
|
+
* @param config.globalConfig jest global config.
|
27
|
+
* @param config.projectConfig jest project config.
|
26
28
|
* @param options Options.
|
27
29
|
*/
|
28
|
-
constructor(
|
30
|
+
constructor(
|
31
|
+
config:
|
32
|
+
| { globalConfig: Config.GlobalConfig; projectConfig: Config.ProjectConfig }
|
33
|
+
| Config.ProjectConfig,
|
34
|
+
options?: EnvironmentContext
|
35
|
+
) {
|
29
36
|
// Node's error-message stack size is limited to 10, but it's pretty useful to see more than that when a test fails.
|
30
37
|
this.global.Error.stackTraceLimit = 100;
|
31
38
|
|
@@ -35,7 +42,21 @@ export default class HappyDOMEnvironment implements JestEnvironment {
|
|
35
42
|
// Needed as Jest is using it
|
36
43
|
this.window['global'] = this.global;
|
37
44
|
|
38
|
-
|
45
|
+
let globals: Config.ConfigGlobals;
|
46
|
+
let projectConfig: Config.ProjectConfig;
|
47
|
+
if (isJestConfigVersion29(config)) {
|
48
|
+
// Jest 29
|
49
|
+
globals = config.globals;
|
50
|
+
projectConfig = config;
|
51
|
+
} else if (isJestConfigVersion28(config)) {
|
52
|
+
// Jest < 29
|
53
|
+
globals = config.projectConfig.globals;
|
54
|
+
projectConfig = config.projectConfig;
|
55
|
+
} else {
|
56
|
+
throw new Error('Unsupported jest version.');
|
57
|
+
}
|
58
|
+
|
59
|
+
JestUtil.installCommonGlobals(<typeof globalThis>(<unknown>this.window), globals);
|
39
60
|
|
40
61
|
// For some reason Jest removes the global setImmediate, so we need to add it back.
|
41
62
|
this.global.setImmediate = global.setImmediate;
|
@@ -45,8 +66,12 @@ export default class HappyDOMEnvironment implements JestEnvironment {
|
|
45
66
|
this.global.window['console'] = options.console;
|
46
67
|
}
|
47
68
|
|
69
|
+
if (projectConfig.testEnvironmentOptions['url']) {
|
70
|
+
this.window.happyDOM.setURL(String(projectConfig.testEnvironmentOptions['url']));
|
71
|
+
}
|
72
|
+
|
48
73
|
this.fakeTimers = new LegacyFakeTimers({
|
49
|
-
config,
|
74
|
+
config: projectConfig,
|
50
75
|
global: <typeof globalThis>(<unknown>this.window),
|
51
76
|
moduleMocker: this.moduleMocker,
|
52
77
|
timerConfig: {
|
@@ -56,7 +81,7 @@ export default class HappyDOMEnvironment implements JestEnvironment {
|
|
56
81
|
});
|
57
82
|
|
58
83
|
this.fakeTimersModern = new ModernFakeTimers({
|
59
|
-
config,
|
84
|
+
config: projectConfig,
|
60
85
|
global: <typeof globalThis>(<unknown>this.window)
|
61
86
|
});
|
62
87
|
}
|
@@ -103,3 +128,13 @@ export default class HappyDOMEnvironment implements JestEnvironment {
|
|
103
128
|
return this.global;
|
104
129
|
}
|
105
130
|
}
|
131
|
+
|
132
|
+
function isJestConfigVersion29(config: unknown): config is Config.ProjectConfig {
|
133
|
+
return Object.getOwnPropertyDescriptor(config, 'globals') !== undefined;
|
134
|
+
}
|
135
|
+
|
136
|
+
function isJestConfigVersion28(
|
137
|
+
config: unknown
|
138
|
+
): config is { globalConfig: Config.GlobalConfig; projectConfig: Config.ProjectConfig } {
|
139
|
+
return Object.getOwnPropertyDescriptor(config, 'projectConfig') !== undefined;
|
140
|
+
}
|