@jupyterlab/testing 4.0.6 → 4.0.8
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/common.d.ts +5 -0
- package/lib/common.js +33 -4
- package/lib/common.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +2 -1
- package/lib/index.js.map +1 -1
- package/package.json +2 -2
- package/src/common.ts +32 -1
- package/src/index.ts +2 -1
package/lib/common.d.ts
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import { ISignal } from '@lumino/signaling';
|
|
2
2
|
export { sleep } from '@jupyterlab/coreutils/lib/testutils';
|
|
3
|
+
/**
|
|
4
|
+
* Extends `simulate` from no longer actively developed `simulate-event`
|
|
5
|
+
* with a subset of `pointer` events.
|
|
6
|
+
*/
|
|
7
|
+
export declare function simulate(element: EventTarget, type: string, options?: any): void;
|
|
3
8
|
/**
|
|
4
9
|
* Test a single emission from a signal.
|
|
5
10
|
*
|
package/lib/common.js
CHANGED
|
@@ -4,13 +4,42 @@
|
|
|
4
4
|
* Distributed under the terms of the Modified BSD License.
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.dismissDialog = exports.dangerDialog = exports.acceptDialog = exports.waitForDialog = exports.framePromise = exports.isFulfilled = exports.signalToPromise = exports.signalToPromises = exports.doLater = exports.expectFailure = exports.testEmission = exports.sleep = void 0;
|
|
7
|
+
exports.dismissDialog = exports.dangerDialog = exports.acceptDialog = exports.waitForDialog = exports.framePromise = exports.isFulfilled = exports.signalToPromise = exports.signalToPromises = exports.doLater = exports.expectFailure = exports.testEmission = exports.simulate = exports.sleep = void 0;
|
|
8
8
|
const simulate_event_1 = require("simulate-event");
|
|
9
9
|
const coreutils_1 = require("@lumino/coreutils");
|
|
10
10
|
const signaling_1 = require("@lumino/signaling");
|
|
11
11
|
const testutils_1 = require("@jupyterlab/coreutils/lib/testutils");
|
|
12
12
|
var testutils_2 = require("@jupyterlab/coreutils/lib/testutils");
|
|
13
13
|
Object.defineProperty(exports, "sleep", { enumerable: true, get: function () { return testutils_2.sleep; } });
|
|
14
|
+
// Add a simple polyfill for `PointerEvent` which is not yet supported by jsdom
|
|
15
|
+
// see https://github.com/jsdom/jsdom/pull/2666
|
|
16
|
+
if (!global.PointerEvent) {
|
|
17
|
+
class PointerEvent extends MouseEvent {
|
|
18
|
+
}
|
|
19
|
+
global.PointerEvent = PointerEvent;
|
|
20
|
+
}
|
|
21
|
+
const POINTER_EVENTS = [
|
|
22
|
+
'pointerdown',
|
|
23
|
+
'pointerenter',
|
|
24
|
+
'pointerleave',
|
|
25
|
+
'pointermove',
|
|
26
|
+
'pointerout',
|
|
27
|
+
'pointerover',
|
|
28
|
+
'pointerup'
|
|
29
|
+
];
|
|
30
|
+
/**
|
|
31
|
+
* Extends `simulate` from no longer actively developed `simulate-event`
|
|
32
|
+
* with a subset of `pointer` events.
|
|
33
|
+
*/
|
|
34
|
+
function simulate(element, type, options) {
|
|
35
|
+
if (POINTER_EVENTS.includes(type)) {
|
|
36
|
+
element.dispatchEvent(new PointerEvent(type, options));
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
(0, simulate_event_1.simulate)(element, type, options);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.simulate = simulate;
|
|
14
43
|
/**
|
|
15
44
|
* Test a single emission from a signal.
|
|
16
45
|
*
|
|
@@ -179,7 +208,7 @@ async function acceptDialog(host = document.body, timeout = 250) {
|
|
|
179
208
|
await waitForDialog(host, timeout);
|
|
180
209
|
const node = host.getElementsByClassName('jp-Dialog')[0];
|
|
181
210
|
if (node) {
|
|
182
|
-
|
|
211
|
+
simulate(node, 'keydown', { keyCode: 13 });
|
|
183
212
|
}
|
|
184
213
|
}
|
|
185
214
|
exports.acceptDialog = acceptDialog;
|
|
@@ -190,7 +219,7 @@ async function dangerDialog(host = document.body, timeout = 250) {
|
|
|
190
219
|
await waitForDialog(host, timeout);
|
|
191
220
|
const node = host.getElementsByClassName('jp-mod-warn')[0];
|
|
192
221
|
if (node) {
|
|
193
|
-
|
|
222
|
+
simulate(node, 'click', { button: 1 });
|
|
194
223
|
}
|
|
195
224
|
}
|
|
196
225
|
exports.dangerDialog = dangerDialog;
|
|
@@ -209,7 +238,7 @@ async function dismissDialog(host = document.body, timeout = 250) {
|
|
|
209
238
|
}
|
|
210
239
|
const node = host.getElementsByClassName('jp-Dialog')[0];
|
|
211
240
|
if (node) {
|
|
212
|
-
|
|
241
|
+
simulate(node, 'keydown', { keyCode: 27 });
|
|
213
242
|
}
|
|
214
243
|
}
|
|
215
244
|
exports.dismissDialog = dismissDialog;
|
package/lib/common.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* @packageDocumentation
|
|
3
3
|
* @module testing
|
|
4
4
|
*/
|
|
5
|
-
export { testEmission, expectFailure, signalToPromises, signalToPromise, isFulfilled, framePromise, sleep, waitForDialog, acceptDialog, dangerDialog, dismissDialog } from './common';
|
|
5
|
+
export { testEmission, expectFailure, signalToPromises, signalToPromise, isFulfilled, framePromise, sleep, waitForDialog, acceptDialog, dangerDialog, dismissDialog, simulate } from './common';
|
|
6
6
|
export { JupyterServer } from './start_jupyter_server';
|
package/lib/index.js
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* @module testing
|
|
9
9
|
*/
|
|
10
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.JupyterServer = exports.dismissDialog = exports.dangerDialog = exports.acceptDialog = exports.waitForDialog = exports.sleep = exports.framePromise = exports.isFulfilled = exports.signalToPromise = exports.signalToPromises = exports.expectFailure = exports.testEmission = void 0;
|
|
11
|
+
exports.JupyterServer = exports.simulate = exports.dismissDialog = exports.dangerDialog = exports.acceptDialog = exports.waitForDialog = exports.sleep = exports.framePromise = exports.isFulfilled = exports.signalToPromise = exports.signalToPromises = exports.expectFailure = exports.testEmission = void 0;
|
|
12
12
|
var common_1 = require("./common");
|
|
13
13
|
Object.defineProperty(exports, "testEmission", { enumerable: true, get: function () { return common_1.testEmission; } });
|
|
14
14
|
Object.defineProperty(exports, "expectFailure", { enumerable: true, get: function () { return common_1.expectFailure; } });
|
|
@@ -21,6 +21,7 @@ Object.defineProperty(exports, "waitForDialog", { enumerable: true, get: functio
|
|
|
21
21
|
Object.defineProperty(exports, "acceptDialog", { enumerable: true, get: function () { return common_1.acceptDialog; } });
|
|
22
22
|
Object.defineProperty(exports, "dangerDialog", { enumerable: true, get: function () { return common_1.dangerDialog; } });
|
|
23
23
|
Object.defineProperty(exports, "dismissDialog", { enumerable: true, get: function () { return common_1.dismissDialog; } });
|
|
24
|
+
Object.defineProperty(exports, "simulate", { enumerable: true, get: function () { return common_1.simulate; } });
|
|
24
25
|
var start_jupyter_server_1 = require("./start_jupyter_server");
|
|
25
26
|
Object.defineProperty(exports, "JupyterServer", { enumerable: true, get: function () { return start_jupyter_server_1.JupyterServer; } });
|
|
26
27
|
//# 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;;;+EAG+E;AAC/E;;;GAGG;;;AAEH,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;+EAG+E;AAC/E;;;GAGG;;;AAEH,mCAakB;AAZhB,sGAAA,YAAY,OAAA;AACZ,uGAAA,aAAa,OAAA;AACb,0GAAA,gBAAgB,OAAA;AAChB,yGAAA,eAAe,OAAA;AACf,qGAAA,WAAW,OAAA;AACX,sGAAA,YAAY,OAAA;AACZ,+FAAA,KAAK,OAAA;AACL,uGAAA,aAAa,OAAA;AACb,sGAAA,YAAY,OAAA;AACZ,sGAAA,YAAY,OAAA;AACZ,uGAAA,aAAa,OAAA;AACb,kGAAA,QAAQ,OAAA;AAGV,+DAAuD;AAA9C,qHAAA,aAAa,OAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jupyterlab/testing",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.8",
|
|
4
4
|
"description": "JupyterLab basic testing utilities.",
|
|
5
5
|
"homepage": "https://github.com/jupyterlab/jupyterlab",
|
|
6
6
|
"bugs": {
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"@babel/core": "^7.10.2",
|
|
37
37
|
"@babel/preset-env": "^7.10.2",
|
|
38
|
-
"@jupyterlab/coreutils": "^6.0.
|
|
38
|
+
"@jupyterlab/coreutils": "^6.0.8",
|
|
39
39
|
"@lumino/coreutils": "^2.1.2",
|
|
40
40
|
"@lumino/signaling": "^2.1.2",
|
|
41
41
|
"child_process": "~1.0.2",
|
package/src/common.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Distributed under the terms of the Modified BSD License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { simulate } from 'simulate-event';
|
|
6
|
+
import { simulate as simulateEvent } from 'simulate-event';
|
|
7
7
|
|
|
8
8
|
import { PromiseDelegate } from '@lumino/coreutils';
|
|
9
9
|
|
|
@@ -13,6 +13,37 @@ import { sleep } from '@jupyterlab/coreutils/lib/testutils';
|
|
|
13
13
|
|
|
14
14
|
export { sleep } from '@jupyterlab/coreutils/lib/testutils';
|
|
15
15
|
|
|
16
|
+
// Add a simple polyfill for `PointerEvent` which is not yet supported by jsdom
|
|
17
|
+
// see https://github.com/jsdom/jsdom/pull/2666
|
|
18
|
+
if (!global.PointerEvent) {
|
|
19
|
+
class PointerEvent extends MouseEvent {
|
|
20
|
+
// no-op
|
|
21
|
+
}
|
|
22
|
+
global.PointerEvent = PointerEvent as any;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
const POINTER_EVENTS = [
|
|
26
|
+
'pointerdown',
|
|
27
|
+
'pointerenter',
|
|
28
|
+
'pointerleave',
|
|
29
|
+
'pointermove',
|
|
30
|
+
'pointerout',
|
|
31
|
+
'pointerover',
|
|
32
|
+
'pointerup'
|
|
33
|
+
];
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Extends `simulate` from no longer actively developed `simulate-event`
|
|
37
|
+
* with a subset of `pointer` events.
|
|
38
|
+
*/
|
|
39
|
+
export function simulate(element: EventTarget, type: string, options?: any) {
|
|
40
|
+
if (POINTER_EVENTS.includes(type)) {
|
|
41
|
+
element.dispatchEvent(new PointerEvent(type, options));
|
|
42
|
+
} else {
|
|
43
|
+
simulateEvent(element, type, options);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
16
47
|
/**
|
|
17
48
|
* Test a single emission from a signal.
|
|
18
49
|
*
|