@genesislcap/foundation-testing 14.204.1 → 14.205.0-jsdom.1

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.
@@ -4,6 +4,23 @@ exports.teardown = exports.setup = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const jsdom_1 = require("jsdom");
6
6
  const utils_1 = require("../utils");
7
+ /**
8
+ * Tactical patch for JSDOM dialog issues
9
+ * {@link https://github.com/jsdom/jsdom/issues/3294}
10
+ */
11
+ function mockDialog(jsdomWindow) {
12
+ jsdomWindow.HTMLDialogElement.prototype.show = function () {
13
+ this.open = true;
14
+ };
15
+ jsdomWindow.HTMLDialogElement.prototype.showModal = function () {
16
+ this.open = true;
17
+ };
18
+ jsdomWindow.HTMLDialogElement.prototype.close = function (returnValue) {
19
+ this.open = false;
20
+ this.returnValue = returnValue;
21
+ };
22
+ return jsdomWindow.HTMLDialogElement;
23
+ }
7
24
  /**
8
25
  * Jsdom setup.
9
26
  * @public
@@ -68,25 +85,35 @@ const setup = () => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
68
85
  globalThis.document = window.document;
69
86
  globalThis.Document = window.Document;
70
87
  globalThis.DocumentFragment = window.DocumentFragment;
71
- globalThis.HTMLDialogElement = window.HTMLDialogElement;
88
+ globalThis.HTMLDialogElement = mockDialog(window);
72
89
  globalThis.HTMLElement = window.HTMLElement;
73
90
  globalThis.HTMLInputElement = window.HTMLInputElement;
74
91
  globalThis.HTMLOptionElement = window.HTMLOptionElement;
75
92
  globalThis.HTMLSelectElement = window.HTMLSelectElement;
76
93
  globalThis.HTMLStyleElement = window.HTMLStyleElement;
94
+ globalThis.SVGElement = window.SVGElement;
77
95
  globalThis.KeyboardEvent = window.KeyboardEvent;
78
96
  globalThis.localStorage = window.localStorage;
79
97
  globalThis.sessionStorage = window.sessionStorage;
80
98
  globalThis.MutationObserver = window.MutationObserver;
81
99
  globalThis.navigator = window.navigator;
82
100
  globalThis.location = window.location;
101
+ globalThis.history = window.history;
83
102
  globalThis.Node = window.Node;
84
103
  globalThis.Option = window.Option;
85
104
  globalThis.requestAnimationFrame = window.requestAnimationFrame;
86
105
  globalThis.ShadowRoot = window.ShadowRoot;
87
- // Env Variables
106
+ /**
107
+ * Setup utils / environment variables
108
+ */
109
+ globalThis.SOCKET_EXT = 'gwf';
88
110
  globalThis.FORCE_HTTP = false;
111
+ globalThis.GENESIS_SOCKET_URL = 'wss://localhost:6060/gwf/';
112
+ globalThis.API_HOST = globalThis.GENESIS_SOCKET_URL;
89
113
  globalThis.HTTP_CONFIG = '';
114
+ globalThis.DEFAULT_ORGANISATION = '';
115
+ globalThis.DEFAULT_PASSWORD = '';
116
+ globalThis.DEFAULT_USER = '';
90
117
  });
91
118
  exports.setup = setup;
92
119
  /**
@@ -116,18 +143,28 @@ const teardown = () => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
116
143
  delete globalThis.HTMLOptionElement;
117
144
  delete globalThis.HTMLSelectElement;
118
145
  delete globalThis.HTMLStyleElement;
146
+ delete globalThis.SVGElement;
119
147
  delete globalThis.KeyboardEvent;
120
148
  delete globalThis.localStorage;
121
149
  delete globalThis.MutationObserver;
122
150
  delete globalThis.navigator;
123
151
  delete globalThis.location;
152
+ delete globalThis.history;
124
153
  delete globalThis.Node;
125
154
  delete globalThis.Option;
126
155
  delete globalThis.requestAnimationFrame;
127
156
  delete globalThis.ShadowRoot;
128
- // Env Variables
157
+ /**
158
+ * Teardown utils / environment variables
159
+ */
160
+ delete globalThis.SOCKET_EXT;
129
161
  delete globalThis.FORCE_HTTP;
162
+ delete globalThis.GENESIS_SOCKET_URL;
163
+ delete globalThis.API_HOST;
130
164
  delete globalThis.HTTP_CONFIG;
165
+ delete globalThis.DEFAULT_ORGANISATION;
166
+ delete globalThis.DEFAULT_PASSWORD;
167
+ delete globalThis.DEFAULT_USER;
131
168
  /**
132
169
  * Cancel all timers etc.
133
170
  */
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../src/jsdom/setup.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,eAAO,MAAM,KAAK,qBAsFjB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,qBAsCpB,CAAC"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../src/jsdom/setup.ts"],"names":[],"mappings":"AAqBA;;;GAGG;AACH,eAAO,MAAM,KAAK,qBAgGjB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,qBAgDpB,CAAC"}
@@ -1,6 +1,23 @@
1
1
  import { __awaiter } from "tslib";
2
2
  import { JSDOM } from 'jsdom';
3
3
  import { logger } from '../utils';
4
+ /**
5
+ * Tactical patch for JSDOM dialog issues
6
+ * {@link https://github.com/jsdom/jsdom/issues/3294}
7
+ */
8
+ function mockDialog(jsdomWindow) {
9
+ jsdomWindow.HTMLDialogElement.prototype.show = function () {
10
+ this.open = true;
11
+ };
12
+ jsdomWindow.HTMLDialogElement.prototype.showModal = function () {
13
+ this.open = true;
14
+ };
15
+ jsdomWindow.HTMLDialogElement.prototype.close = function (returnValue) {
16
+ this.open = false;
17
+ this.returnValue = returnValue;
18
+ };
19
+ return jsdomWindow.HTMLDialogElement;
20
+ }
4
21
  /**
5
22
  * Jsdom setup.
6
23
  * @public
@@ -65,25 +82,35 @@ export const setup = () => __awaiter(void 0, void 0, void 0, function* () {
65
82
  globalThis.document = window.document;
66
83
  globalThis.Document = window.Document;
67
84
  globalThis.DocumentFragment = window.DocumentFragment;
68
- globalThis.HTMLDialogElement = window.HTMLDialogElement;
85
+ globalThis.HTMLDialogElement = mockDialog(window);
69
86
  globalThis.HTMLElement = window.HTMLElement;
70
87
  globalThis.HTMLInputElement = window.HTMLInputElement;
71
88
  globalThis.HTMLOptionElement = window.HTMLOptionElement;
72
89
  globalThis.HTMLSelectElement = window.HTMLSelectElement;
73
90
  globalThis.HTMLStyleElement = window.HTMLStyleElement;
91
+ globalThis.SVGElement = window.SVGElement;
74
92
  globalThis.KeyboardEvent = window.KeyboardEvent;
75
93
  globalThis.localStorage = window.localStorage;
76
94
  globalThis.sessionStorage = window.sessionStorage;
77
95
  globalThis.MutationObserver = window.MutationObserver;
78
96
  globalThis.navigator = window.navigator;
79
97
  globalThis.location = window.location;
98
+ globalThis.history = window.history;
80
99
  globalThis.Node = window.Node;
81
100
  globalThis.Option = window.Option;
82
101
  globalThis.requestAnimationFrame = window.requestAnimationFrame;
83
102
  globalThis.ShadowRoot = window.ShadowRoot;
84
- // Env Variables
103
+ /**
104
+ * Setup utils / environment variables
105
+ */
106
+ globalThis.SOCKET_EXT = 'gwf';
85
107
  globalThis.FORCE_HTTP = false;
108
+ globalThis.GENESIS_SOCKET_URL = 'wss://localhost:6060/gwf/';
109
+ globalThis.API_HOST = globalThis.GENESIS_SOCKET_URL;
86
110
  globalThis.HTTP_CONFIG = '';
111
+ globalThis.DEFAULT_ORGANISATION = '';
112
+ globalThis.DEFAULT_PASSWORD = '';
113
+ globalThis.DEFAULT_USER = '';
87
114
  });
88
115
  /**
89
116
  * Jsdom teardown / cleanup.
@@ -112,18 +139,28 @@ export const teardown = () => __awaiter(void 0, void 0, void 0, function* () {
112
139
  delete globalThis.HTMLOptionElement;
113
140
  delete globalThis.HTMLSelectElement;
114
141
  delete globalThis.HTMLStyleElement;
142
+ delete globalThis.SVGElement;
115
143
  delete globalThis.KeyboardEvent;
116
144
  delete globalThis.localStorage;
117
145
  delete globalThis.MutationObserver;
118
146
  delete globalThis.navigator;
119
147
  delete globalThis.location;
148
+ delete globalThis.history;
120
149
  delete globalThis.Node;
121
150
  delete globalThis.Option;
122
151
  delete globalThis.requestAnimationFrame;
123
152
  delete globalThis.ShadowRoot;
124
- // Env Variables
153
+ /**
154
+ * Teardown utils / environment variables
155
+ */
156
+ delete globalThis.SOCKET_EXT;
125
157
  delete globalThis.FORCE_HTTP;
158
+ delete globalThis.GENESIS_SOCKET_URL;
159
+ delete globalThis.API_HOST;
126
160
  delete globalThis.HTTP_CONFIG;
161
+ delete globalThis.DEFAULT_ORGANISATION;
162
+ delete globalThis.DEFAULT_PASSWORD;
163
+ delete globalThis.DEFAULT_USER;
127
164
  /**
128
165
  * Cancel all timers etc.
129
166
  */
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@genesislcap/foundation-testing",
3
3
  "description": "Genesis Foundation Testing",
4
- "version": "14.204.1",
4
+ "version": "14.205.0-jsdom.1",
5
5
  "sideEffects": false,
6
6
  "license": "SEE LICENSE IN license.txt",
7
7
  "main": "dist/esm/index.js",
@@ -79,7 +79,7 @@
79
79
  "typescript": "^4.9.5"
80
80
  },
81
81
  "dependencies": {
82
- "@genesislcap/foundation-logger": "14.204.1",
82
+ "@genesislcap/foundation-logger": "14.205.0-jsdom.1",
83
83
  "@microsoft/fast-element": "^1.12.0",
84
84
  "@microsoft/fast-foundation": "^2.49.4",
85
85
  "@playwright/test": "^1.46.1",
@@ -101,5 +101,5 @@
101
101
  "publishConfig": {
102
102
  "access": "public"
103
103
  },
104
- "gitHead": "1f3614a366ea8d325af73488ce8ce713402538e4"
104
+ "gitHead": "c4ac00d38f64b7a9827d2b8a6ac030d2d4f35aab"
105
105
  }