@happy-dom/jest-environment 17.6.2 → 18.0.0
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 +2 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +4 -1
- package/lib/index.js.map +1 -1
- package/package.json +4 -6
- package/src/index.ts +12 -8
- package/tsconfig.json +6 -3
package/lib/index.d.ts
CHANGED
@@ -9,8 +9,8 @@ import { Global, Config } from '@jest/types';
|
|
9
9
|
* Happy DOM Jest Environment.
|
10
10
|
*/
|
11
11
|
export default class HappyDOMEnvironment implements JestEnvironment {
|
12
|
-
fakeTimers: LegacyFakeTimers<number
|
13
|
-
fakeTimersModern: ModernFakeTimers;
|
12
|
+
fakeTimers: LegacyFakeTimers<number> | null;
|
13
|
+
fakeTimersModern: ModernFakeTimers | null;
|
14
14
|
window: Window;
|
15
15
|
global: Global.Global;
|
16
16
|
moduleMocker: ModuleMocker;
|
package/lib/index.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,MAAM,EAAqD,MAAM,WAAW,CAAC;AACtF,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE7C;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,mBAAoB,YAAW,eAAe;IAC3D,UAAU,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAQ;
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,MAAM,EAAqD,MAAM,WAAW,CAAC;AACtF,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE7C;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,mBAAoB,YAAW,eAAe;IAC3D,UAAU,EAAE,gBAAgB,CAAC,MAAM,CAAC,GAAG,IAAI,CAAQ;IACnD,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAQ;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;IACtB,YAAY,EAAE,YAAY,CAAC;IAElC;;;;;OAKG;IACI,sBAAsB,WAA2B;IAExD,OAAO,CAAC,2BAA2B,CAAW;IAE9C;;;;;;;OAOG;gBAEF,MAAM,EACH;QAAE,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC,aAAa,CAAA;KAAE,GAC1E,MAAM,CAAC,aAAa,EACvB,OAAO,CAAC,EAAE,kBAAkB;IAoF7B;;;OAGG;IACI,gBAAgB,IAAI,MAAM,EAAE;IAInC;;;;OAIG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAEnC;;;;OAIG;IACU,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAatC;;;;;OAKG;IACI,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAItC;;;;OAIG;IACI,YAAY,IAAI,EAAE,CAAC,OAAO;CAGjC"}
|
package/lib/index.js
CHANGED
@@ -79,6 +79,7 @@ class HappyDOMEnvironment {
|
|
79
79
|
else {
|
80
80
|
throw new Error('Unsupported jest version.');
|
81
81
|
}
|
82
|
+
this._configuredExportConditions = [];
|
82
83
|
if ('customExportConditions' in projectConfig.testEnvironmentOptions) {
|
83
84
|
const { customExportConditions } = projectConfig.testEnvironmentOptions;
|
84
85
|
if (Array.isArray(customExportConditions) &&
|
@@ -93,7 +94,7 @@ class HappyDOMEnvironment {
|
|
93
94
|
this.window = new happy_dom_1.Window({
|
94
95
|
url: 'http://localhost/',
|
95
96
|
...projectConfig.testEnvironmentOptions,
|
96
|
-
console: options
|
97
|
+
console: options?.console || console,
|
97
98
|
settings: {
|
98
99
|
...projectConfig.testEnvironmentOptions?.settings,
|
99
100
|
errorCapture: happy_dom_1.BrowserErrorCaptureEnum.disabled
|
@@ -128,8 +129,10 @@ class HappyDOMEnvironment {
|
|
128
129
|
const happyDOMSetTimeout = this.global.setTimeout;
|
129
130
|
this.global.setTimeout = (...args) => {
|
130
131
|
if (new Error('stack').stack.includes('/jest-jasmine')) {
|
132
|
+
// @ts-ignore
|
131
133
|
return global.setTimeout.call(global, ...args);
|
132
134
|
}
|
135
|
+
// @ts-ignore
|
133
136
|
return happyDOMSetTimeout.call(this.global, ...args);
|
134
137
|
};
|
135
138
|
}
|
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,yCAAsF;AAItF;;GAEG;AACH,MAAqB,mBAAmB;IAChC,UAAU,
|
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": "
|
3
|
+
"version": "18.0.0",
|
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",
|
@@ -50,7 +50,9 @@
|
|
50
50
|
"@jest/environment": "^29.4.0",
|
51
51
|
"@jest/fake-timers": "^29.4.0",
|
52
52
|
"@jest/types": "^29.4.0",
|
53
|
-
"
|
53
|
+
"@types/node": "^20.0.0",
|
54
|
+
"@types/jest": "29.4.0",
|
55
|
+
"happy-dom": "^18.0.0",
|
54
56
|
"jest-mock": "^29.4.0",
|
55
57
|
"jest-util": "^29.4.0"
|
56
58
|
},
|
@@ -65,12 +67,8 @@
|
|
65
67
|
"@testing-library/react": "^14.0.0",
|
66
68
|
"@testing-library/user-event": "^14.5.1",
|
67
69
|
"@vue/test-utils": "^2.4.6",
|
68
|
-
"@types/jest": "29.5.2",
|
69
|
-
"@types/node": "^20.0.0",
|
70
70
|
"@types/react": "^18.2.0",
|
71
71
|
"@types/react-dom": "^18.2.0",
|
72
|
-
"@typescript-eslint/eslint-plugin": "^5.16.0",
|
73
|
-
"@typescript-eslint/parser": "^5.16.0",
|
74
72
|
"express": "^4.20.0",
|
75
73
|
"glob": "^7.2.0",
|
76
74
|
"jest": "^29.4.0",
|
package/src/index.ts
CHANGED
@@ -13,8 +13,8 @@ import { Global, Config } from '@jest/types';
|
|
13
13
|
* Happy DOM Jest Environment.
|
14
14
|
*/
|
15
15
|
export default class HappyDOMEnvironment implements JestEnvironment {
|
16
|
-
public fakeTimers: LegacyFakeTimers<number> = null;
|
17
|
-
public fakeTimersModern: ModernFakeTimers = null;
|
16
|
+
public fakeTimers: LegacyFakeTimers<number> | null = null;
|
17
|
+
public fakeTimersModern: ModernFakeTimers | null = null;
|
18
18
|
public window: Window;
|
19
19
|
public global: Global.Global;
|
20
20
|
public moduleMocker: ModuleMocker;
|
@@ -57,6 +57,8 @@ export default class HappyDOMEnvironment implements JestEnvironment {
|
|
57
57
|
throw new Error('Unsupported jest version.');
|
58
58
|
}
|
59
59
|
|
60
|
+
this._configuredExportConditions = [];
|
61
|
+
|
60
62
|
if ('customExportConditions' in projectConfig.testEnvironmentOptions) {
|
61
63
|
const { customExportConditions } = projectConfig.testEnvironmentOptions;
|
62
64
|
if (
|
@@ -73,7 +75,7 @@ export default class HappyDOMEnvironment implements JestEnvironment {
|
|
73
75
|
this.window = new Window({
|
74
76
|
url: 'http://localhost/',
|
75
77
|
...projectConfig.testEnvironmentOptions,
|
76
|
-
console: options
|
78
|
+
console: options?.console || console,
|
77
79
|
settings: {
|
78
80
|
...(<IOptionalBrowserSettings>projectConfig.testEnvironmentOptions?.settings),
|
79
81
|
errorCapture: BrowserErrorCaptureEnum.disabled
|
@@ -115,9 +117,11 @@ export default class HappyDOMEnvironment implements JestEnvironment {
|
|
115
117
|
// Hopefully Jest can fix this in the future as this fix is not very pretty.
|
116
118
|
const happyDOMSetTimeout = this.global.setTimeout;
|
117
119
|
(<(...args: unknown[]) => number>this.global.setTimeout) = (...args: unknown[]): number => {
|
118
|
-
if (new Error('stack').stack
|
120
|
+
if (new Error('stack').stack!.includes('/jest-jasmine')) {
|
121
|
+
// @ts-ignore
|
119
122
|
return global.setTimeout.call(global, ...args);
|
120
123
|
}
|
124
|
+
// @ts-ignore
|
121
125
|
return happyDOMSetTimeout.call(this.global, ...args);
|
122
126
|
};
|
123
127
|
}
|
@@ -142,14 +146,14 @@ export default class HappyDOMEnvironment implements JestEnvironment {
|
|
142
146
|
* @returns Promise.
|
143
147
|
*/
|
144
148
|
public async teardown(): Promise<void> {
|
145
|
-
this.fakeTimers
|
146
|
-
this.fakeTimersModern
|
149
|
+
this.fakeTimers!.dispose();
|
150
|
+
this.fakeTimersModern!.dispose();
|
147
151
|
|
148
152
|
await (<Window>(<unknown>this.global)).happyDOM.abort();
|
149
153
|
(<Window>(<unknown>this.global)).close();
|
150
154
|
|
151
|
-
this.global = null
|
152
|
-
this.moduleMocker = null
|
155
|
+
this.global = null!;
|
156
|
+
this.moduleMocker = null!;
|
153
157
|
this.fakeTimers = null;
|
154
158
|
this.fakeTimersModern = null;
|
155
159
|
}
|
package/tsconfig.json
CHANGED
@@ -14,13 +14,16 @@
|
|
14
14
|
"resolveJsonModule": true,
|
15
15
|
"noUnusedLocals": true,
|
16
16
|
"noUnusedParameters": true,
|
17
|
-
|
17
|
+
"noImplicitReturns": false,
|
18
|
+
"noImplicitAny" : true,
|
19
|
+
"removeComments": false,
|
18
20
|
"preserveConstEnums": true,
|
21
|
+
"strict": true,
|
19
22
|
"sourceMap": true,
|
20
23
|
"skipLibCheck": true,
|
21
24
|
"baseUrl": ".",
|
22
|
-
"composite":
|
23
|
-
"incremental":
|
25
|
+
"composite": false,
|
26
|
+
"incremental": false,
|
24
27
|
"types": [
|
25
28
|
"node"
|
26
29
|
],
|