@happy-dom/jest-environment 15.10.2 → 15.10.3

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 CHANGED
@@ -14,6 +14,14 @@ export default class HappyDOMEnvironment implements JestEnvironment {
14
14
  window: Window;
15
15
  global: Global.Global;
16
16
  moduleMocker: ModuleMocker;
17
+ /**
18
+ * jest-environment-jsdom" has the default set to ['browser']
19
+ * As changing this value would be a breaking change, we will keep it at ['node', 'node-addons'] until we do a major release
20
+ *
21
+ * @see https://stackoverflow.com/questions/72428323/jest-referenceerror-vue-is-not-defined
22
+ */
23
+ customExportConditions: string[];
24
+ private _configuredExportConditions;
17
25
  /**
18
26
  * Constructor.
19
27
  *
@@ -26,6 +34,11 @@ export default class HappyDOMEnvironment implements JestEnvironment {
26
34
  globalConfig: Config.GlobalConfig;
27
35
  projectConfig: Config.ProjectConfig;
28
36
  } | Config.ProjectConfig, options?: EnvironmentContext);
37
+ /**
38
+ * Respect any export conditions specified as options
39
+ * https://jestjs.io/docs/configuration#testenvironmentoptions-object
40
+ */
41
+ exportConditions(): string[];
29
42
  /**
30
43
  * Setup.
31
44
  *
@@ -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;IAC5C,gBAAgB,EAAE,gBAAgB,CAAQ;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;IACtB,YAAY,EAAE,YAAY,CAAC;IAElC;;;;;;;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;IAqE7B;;;;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"}
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;IAC5C,gBAAgB,EAAE,gBAAgB,CAAQ;IAC1C,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;IAgF7B;;;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
@@ -37,6 +37,14 @@ class HappyDOMEnvironment {
37
37
  window;
38
38
  global;
39
39
  moduleMocker;
40
+ /**
41
+ * jest-environment-jsdom" has the default set to ['browser']
42
+ * As changing this value would be a breaking change, we will keep it at ['node', 'node-addons'] until we do a major release
43
+ *
44
+ * @see https://stackoverflow.com/questions/72428323/jest-referenceerror-vue-is-not-defined
45
+ */
46
+ customExportConditions = ['node', 'node-addons'];
47
+ _configuredExportConditions;
40
48
  /**
41
49
  * Constructor.
42
50
  *
@@ -61,6 +69,16 @@ class HappyDOMEnvironment {
61
69
  else {
62
70
  throw new Error('Unsupported jest version.');
63
71
  }
72
+ if ('customExportConditions' in projectConfig.testEnvironmentOptions) {
73
+ const { customExportConditions } = projectConfig.testEnvironmentOptions;
74
+ if (Array.isArray(customExportConditions) &&
75
+ customExportConditions.every((condition) => typeof condition === 'string')) {
76
+ this._configuredExportConditions = customExportConditions;
77
+ }
78
+ else {
79
+ throw new Error('Custom export conditions specified but they are not an array of strings');
80
+ }
81
+ }
64
82
  // Initialize Window and Global
65
83
  this.window = new happy_dom_1.Window({
66
84
  url: 'http://localhost/',
@@ -105,6 +123,13 @@ class HappyDOMEnvironment {
105
123
  return happyDOMSetTimeout.call(this.global, ...args);
106
124
  };
107
125
  }
126
+ /**
127
+ * Respect any export conditions specified as options
128
+ * https://jestjs.io/docs/configuration#testenvironmentoptions-object
129
+ */
130
+ exportConditions() {
131
+ return this._configuredExportConditions ?? this.customExportConditions;
132
+ }
108
133
  /**
109
134
  * Setup.
110
135
  *
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
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": "15.10.2",
3
+ "version": "15.10.3",
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,7 @@
50
50
  "@jest/environment": "^29.4.0",
51
51
  "@jest/fake-timers": "^29.4.0",
52
52
  "@jest/types": "^29.4.0",
53
- "happy-dom": "^15.10.2",
53
+ "happy-dom": "^15.10.3",
54
54
  "jest-mock": "^29.4.0",
55
55
  "jest-util": "^29.4.0"
56
56
  },
@@ -64,7 +64,7 @@
64
64
  "@radix-ui/react-select": "^1.2.2",
65
65
  "@testing-library/react": "^14.0.0",
66
66
  "@testing-library/user-event": "^14.5.1",
67
- "@vue/test-utils": "^2.4.4",
67
+ "@vue/test-utils": "^2.4.6",
68
68
  "@types/jest": "29.5.2",
69
69
  "@types/node": "^16.11.7",
70
70
  "@types/react": "^18.2.0",
@@ -85,7 +85,7 @@
85
85
  "rxjs": "^6.5.3",
86
86
  "ts-jest": "^29.1.1",
87
87
  "typescript": "^5.0.4",
88
- "vue": "^3.2.31",
88
+ "vue": "^3.5.12",
89
89
  "zone.js": "^0.10.3"
90
90
  },
91
91
  "engines": {
package/src/index.ts CHANGED
@@ -19,6 +19,16 @@ export default class HappyDOMEnvironment implements JestEnvironment {
19
19
  public global: Global.Global;
20
20
  public moduleMocker: ModuleMocker;
21
21
 
22
+ /**
23
+ * jest-environment-jsdom" has the default set to ['browser']
24
+ * As changing this value would be a breaking change, we will keep it at ['node', 'node-addons'] until we do a major release
25
+ *
26
+ * @see https://stackoverflow.com/questions/72428323/jest-referenceerror-vue-is-not-defined
27
+ */
28
+ public customExportConditions = ['node', 'node-addons'];
29
+
30
+ private _configuredExportConditions: string[];
31
+
22
32
  /**
23
33
  * Constructor.
24
34
  *
@@ -47,6 +57,18 @@ export default class HappyDOMEnvironment implements JestEnvironment {
47
57
  throw new Error('Unsupported jest version.');
48
58
  }
49
59
 
60
+ if ('customExportConditions' in projectConfig.testEnvironmentOptions) {
61
+ const { customExportConditions } = projectConfig.testEnvironmentOptions;
62
+ if (
63
+ Array.isArray(customExportConditions) &&
64
+ customExportConditions.every((condition) => typeof condition === 'string')
65
+ ) {
66
+ this._configuredExportConditions = customExportConditions;
67
+ } else {
68
+ throw new Error('Custom export conditions specified but they are not an array of strings');
69
+ }
70
+ }
71
+
50
72
  // Initialize Window and Global
51
73
  this.window = new Window({
52
74
  url: 'http://localhost/',
@@ -99,6 +121,13 @@ export default class HappyDOMEnvironment implements JestEnvironment {
99
121
  return happyDOMSetTimeout.call(this.global, ...args);
100
122
  };
101
123
  }
124
+ /**
125
+ * Respect any export conditions specified as options
126
+ * https://jestjs.io/docs/configuration#testenvironmentoptions-object
127
+ */
128
+ public exportConditions(): string[] {
129
+ return this._configuredExportConditions ?? this.customExportConditions;
130
+ }
102
131
 
103
132
  /**
104
133
  * Setup.