@jupyterlab/galata 5.0.0-alpha.2 → 5.0.0-alpha.21
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/README.md +192 -31
- package/lib/benchmarkReporter.d.ts +1 -0
- package/lib/benchmarkReporter.js +34 -39
- package/lib/benchmarkReporter.js.map +1 -1
- package/lib/benchmarkVLTpl.js +19 -5
- package/lib/benchmarkVLTpl.js.map +1 -1
- package/lib/contents.d.ts +5 -5
- package/lib/contents.js +32 -36
- package/lib/contents.js.map +1 -1
- package/lib/extension/global.d.ts +197 -0
- package/lib/extension/global.js +601 -0
- package/lib/extension/global.js.map +1 -0
- package/lib/extension/index.d.ts +6 -0
- package/lib/extension/index.js +27 -0
- package/lib/extension/index.js.map +1 -0
- package/lib/extension/tokens.d.ts +232 -0
- package/lib/extension/tokens.js +13 -0
- package/lib/extension/tokens.js.map +1 -0
- package/lib/extension.d.ts +223 -0
- package/lib/{global.js → extension.js} +1 -2
- package/lib/extension.js.map +1 -0
- package/lib/fixtures.d.ts +32 -10
- package/lib/fixtures.js +64 -17
- package/lib/fixtures.js.map +1 -1
- package/lib/galata.d.ts +140 -19
- package/lib/galata.js +272 -87
- package/lib/galata.js.map +1 -1
- package/lib/helpers/activity.d.ts +6 -0
- package/lib/helpers/activity.js +19 -5
- package/lib/helpers/activity.js.map +1 -1
- package/lib/helpers/debuggerpanel.d.ts +4 -0
- package/lib/helpers/debuggerpanel.js +16 -0
- package/lib/helpers/debuggerpanel.js.map +1 -1
- package/lib/helpers/filebrowser.js +8 -2
- package/lib/helpers/filebrowser.js.map +1 -1
- package/lib/helpers/index.d.ts +1 -0
- package/lib/helpers/index.js +6 -1
- package/lib/helpers/index.js.map +1 -1
- package/lib/helpers/kernel.js +7 -7
- package/lib/helpers/kernel.js.map +1 -1
- package/lib/helpers/menu.d.ts +7 -0
- package/lib/helpers/menu.js +17 -1
- package/lib/helpers/menu.js.map +1 -1
- package/lib/helpers/notebook.d.ts +6 -4
- package/lib/helpers/notebook.js +127 -31
- package/lib/helpers/notebook.js.map +1 -1
- package/lib/helpers/sidebar.d.ts +8 -1
- package/lib/helpers/sidebar.js +33 -15
- package/lib/helpers/sidebar.js.map +1 -1
- package/lib/helpers/statusbar.js +1 -1
- package/lib/helpers/statusbar.js.map +1 -1
- package/lib/helpers/style.d.ts +42 -0
- package/lib/helpers/style.js +50 -0
- package/lib/helpers/style.js.map +1 -0
- package/lib/helpers/theme.js +1 -1
- package/lib/helpers/theme.js.map +1 -1
- package/lib/index.d.ts +5 -2
- package/lib/index.js +12 -3
- package/lib/index.js.map +1 -1
- package/lib/jupyterlabpage.d.ts +29 -4
- package/lib/jupyterlabpage.js +38 -22
- package/lib/jupyterlabpage.js.map +1 -1
- package/lib/playwright-config.js +5 -1
- package/lib/playwright-config.js.map +1 -1
- package/lib/utils.js +5 -1
- package/lib/utils.js.map +1 -1
- package/package.json +31 -47
- package/src/benchmarkReporter.ts +756 -0
- package/src/benchmarkVLTpl.ts +91 -0
- package/src/contents.ts +472 -0
- package/src/extension.ts +281 -0
- package/src/fixtures.ts +387 -0
- package/src/galata.ts +1035 -0
- package/src/helpers/activity.ts +115 -0
- package/src/helpers/debuggerpanel.ts +159 -0
- package/src/helpers/filebrowser.ts +228 -0
- package/src/helpers/index.ts +15 -0
- package/src/helpers/kernel.ts +39 -0
- package/src/helpers/logconsole.ts +32 -0
- package/src/helpers/menu.ts +228 -0
- package/src/helpers/notebook.ts +1217 -0
- package/src/helpers/performance.ts +57 -0
- package/src/helpers/sidebar.ts +289 -0
- package/src/helpers/statusbar.ts +56 -0
- package/src/helpers/style.ts +100 -0
- package/src/helpers/theme.ts +50 -0
- package/src/index.ts +19 -0
- package/src/jupyterlabpage.ts +704 -0
- package/src/playwright-config.ts +26 -0
- package/src/utils.ts +264 -0
- package/src/vega-statistics.d.ts +15 -0
- package/lib/global.d.ts +0 -23
- package/lib/global.js.map +0 -1
- package/lib/inpage/tokens.d.ts +0 -135
- package/lib/inpage/tokens.js +0 -9
- package/lib/inpage/tokens.js.map +0 -1
- package/lib/lib-inpage/inpage.js +0 -3957
- package/lib/lib-inpage/inpage.js.map +0 -1
- package/style/index.css +0 -10
- package/style/index.js +0 -10
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) Jupyter Development Team.
|
|
3
|
+
// Distributed under the terms of the Modified BSD License.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.StyleHelper = void 0;
|
|
6
|
+
/**
|
|
7
|
+
* CSS Style analysis helpers
|
|
8
|
+
*/
|
|
9
|
+
class StyleHelper {
|
|
10
|
+
constructor(page) {
|
|
11
|
+
this.page = page;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Collect all CSS selectors on page.
|
|
15
|
+
*/
|
|
16
|
+
async collectAllSelectors() {
|
|
17
|
+
return this.page.evaluate(() => [...document.querySelectorAll('style')]
|
|
18
|
+
.filter(style => style.sheet !== null)
|
|
19
|
+
.map(style => [...style.sheet.cssRules])
|
|
20
|
+
.flat()
|
|
21
|
+
.filter((rule) => rule instanceof CSSStyleRule)
|
|
22
|
+
.map((rule) => rule.selectorText));
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Find unused CSS rules.
|
|
26
|
+
*
|
|
27
|
+
* @param options spcify which rules to include/exclude.
|
|
28
|
+
* @returns List of rules with no matching elements on the page.
|
|
29
|
+
*/
|
|
30
|
+
async findUnusedStyleRules(options) {
|
|
31
|
+
let exclude = typeof options.exclude !== 'undefined' ? options.exclude : [];
|
|
32
|
+
if (!options.includeModifiers) {
|
|
33
|
+
exclude = [...exclude, ...['.jp-mod-', '.lm-mod-']];
|
|
34
|
+
}
|
|
35
|
+
const relevantRules = (await this.collectAllSelectors())
|
|
36
|
+
// detection of pseudo-elements with `document.querySelector` is impossible,
|
|
37
|
+
// so we just check their parents
|
|
38
|
+
.map(selector => selector.replace(/::?(after|before|backdrop|cue|cue-region|first-letter|first-line|file-selector-button|marker|placeholder|selection)/, ''))
|
|
39
|
+
.filter(selector => options.includePseudoClasses ? true : !selector.match(/:\w+/))
|
|
40
|
+
.filter(selector => options.fragments.some(fragment => selector.includes(fragment)))
|
|
41
|
+
.filter(selector => !exclude.some(fragment => selector.includes(fragment)));
|
|
42
|
+
const potentiallyUnusedRules = await this.page.evaluate(relevantRules => relevantRules.filter(selector => document.querySelector(selector) == null), relevantRules);
|
|
43
|
+
if (potentiallyUnusedRules.length !== 0) {
|
|
44
|
+
console.log(potentiallyUnusedRules.length, 'out of', relevantRules.length, 'CSS rules for', options.fragments, 'may be unused:', potentiallyUnusedRules);
|
|
45
|
+
}
|
|
46
|
+
return potentiallyUnusedRules;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.StyleHelper = StyleHelper;
|
|
50
|
+
//# sourceMappingURL=style.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"style.js","sourceRoot":"","sources":["../../src/helpers/style.ts"],"names":[],"mappings":";AAAA,0CAA0C;AAC1C,2DAA2D;;;AA2B3D;;GAEG;AACH,MAAa,WAAW;IACtB,YAAqB,IAAU;QAAV,SAAI,GAAJ,IAAI,CAAM;IAAG,CAAC;IAEnC;;OAEG;IACH,KAAK,CAAC,mBAAmB;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAC7B,CAAC,GAAG,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;aACpC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC;aACrC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,KAAM,CAAC,QAAQ,CAAC,CAAC;aACxC,IAAI,EAAE;aACN,MAAM,CAAC,CAAC,IAAa,EAAE,EAAE,CAAC,IAAI,YAAY,YAAY,CAAC;aACvD,GAAG,CAAC,CAAC,IAAkB,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAClD,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,oBAAoB,CACxB,OAAiC;QAEjC,IAAI,OAAO,GAAG,OAAO,OAAO,CAAC,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE;YAC7B,OAAO,GAAG,CAAC,GAAG,OAAO,EAAE,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;SACrD;QACD,MAAM,aAAa,GAAG,CAAC,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACtD,4EAA4E;YAC5E,iCAAiC;aAChC,GAAG,CAAC,QAAQ,CAAC,EAAE,CACd,QAAQ,CAAC,OAAO,CACd,qHAAqH,EACrH,EAAE,CACH,CACF;aACA,MAAM,CAAC,QAAQ,CAAC,EAAE,CACjB,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAC9D;aACA,MAAM,CAAC,QAAQ,CAAC,EAAE,CACjB,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAChE;aACA,MAAM,CACL,QAAQ,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CACnE,CAAC;QACJ,MAAM,sBAAsB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CACrD,aAAa,CAAC,EAAE,CACd,aAAa,CAAC,MAAM,CAClB,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,IAAI,CACrD,EACH,aAAa,CACd,CAAC;QACF,IAAI,sBAAsB,CAAC,MAAM,KAAK,CAAC,EAAE;YACvC,OAAO,CAAC,GAAG,CACT,sBAAsB,CAAC,MAAM,EAC7B,QAAQ,EACR,aAAa,CAAC,MAAM,EACpB,eAAe,EACf,OAAO,CAAC,SAAS,EACjB,gBAAgB,EAChB,sBAAsB,CACvB,CAAC;SACH;QACD,OAAO,sBAAsB,CAAC;IAChC,CAAC;CACF;AApED,kCAoEC"}
|
package/lib/helpers/theme.js
CHANGED
|
@@ -40,7 +40,7 @@ class ThemeHelper {
|
|
|
40
40
|
async setTheme(themeName) {
|
|
41
41
|
const page = this.page;
|
|
42
42
|
await page.evaluate(async (themeName) => {
|
|
43
|
-
await window.
|
|
43
|
+
await window.galata.setTheme(themeName);
|
|
44
44
|
}, themeName);
|
|
45
45
|
await page.waitForSelector('#jupyterlab-splash', { state: 'detached' });
|
|
46
46
|
}
|
package/lib/helpers/theme.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/helpers/theme.ts"],"names":[],"mappings":";AAAA,0CAA0C;AAC1C,2DAA2D;;;AAI3D;;GAEG;AACH,MAAa,WAAW;IACtB,YAAqB,IAAU;QAAV,SAAI,GAAJ,IAAI,CAAM;IAAG,CAAC;IAEnC;;OAEG;IACH,KAAK,CAAC,YAAY;QAChB,MAAM,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa;QACjB,MAAM,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC1C,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,QAAQ;QACZ,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;YACnC,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,WAAqB,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,QAAQ,CAAC,SAAiB;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAiB,EAAE,EAAE;YAC9C,MAAM,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/helpers/theme.ts"],"names":[],"mappings":";AAAA,0CAA0C;AAC1C,2DAA2D;;;AAI3D;;GAEG;AACH,MAAa,WAAW;IACtB,YAAqB,IAAU;QAAV,SAAI,GAAJ,IAAI,CAAM;IAAG,CAAC;IAEnC;;OAEG;IACH,KAAK,CAAC,YAAY;QAChB,MAAM,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa;QACjB,MAAM,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC1C,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,QAAQ;QACZ,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;YACnC,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,WAAqB,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,QAAQ,CAAC,SAAiB;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAiB,EAAE,EAAE;YAC9C,MAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC1C,CAAC,EAAE,SAAS,CAAC,CAAC;QAEd,MAAM,IAAI,CAAC,eAAe,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;IAC1E,CAAC;CACF;AAzCD,kCAyCC"}
|
package/lib/index.d.ts
CHANGED
|
@@ -2,9 +2,12 @@
|
|
|
2
2
|
* @packageDocumentation
|
|
3
3
|
* @module galata
|
|
4
4
|
*/
|
|
5
|
+
/**
|
|
6
|
+
* Export expect from playwright to simplify the import in tests
|
|
7
|
+
*/
|
|
8
|
+
export { expect } from '@playwright/test';
|
|
9
|
+
export * from './extension';
|
|
5
10
|
export * from './benchmarkReporter';
|
|
6
11
|
export * from './galata';
|
|
7
|
-
export * from './global';
|
|
8
|
-
export * from './inpage/tokens';
|
|
9
12
|
export * from './fixtures';
|
|
10
13
|
export * from './jupyterlabpage';
|
package/lib/index.js
CHANGED
|
@@ -8,7 +8,11 @@
|
|
|
8
8
|
*/
|
|
9
9
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
10
10
|
if (k2 === undefined) k2 = k;
|
|
11
|
-
Object.
|
|
11
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
12
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
13
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
14
|
+
}
|
|
15
|
+
Object.defineProperty(o, k2, desc);
|
|
12
16
|
}) : (function(o, m, k, k2) {
|
|
13
17
|
if (k2 === undefined) k2 = k;
|
|
14
18
|
o[k2] = m[k];
|
|
@@ -17,10 +21,15 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
17
21
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
18
22
|
};
|
|
19
23
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
+
exports.expect = void 0;
|
|
25
|
+
/**
|
|
26
|
+
* Export expect from playwright to simplify the import in tests
|
|
27
|
+
*/
|
|
28
|
+
var test_1 = require("@playwright/test");
|
|
29
|
+
Object.defineProperty(exports, "expect", { enumerable: true, get: function () { return test_1.expect; } });
|
|
30
|
+
__exportStar(require("./extension"), exports);
|
|
20
31
|
__exportStar(require("./benchmarkReporter"), exports);
|
|
21
32
|
__exportStar(require("./galata"), exports);
|
|
22
|
-
__exportStar(require("./global"), exports);
|
|
23
|
-
__exportStar(require("./inpage/tokens"), exports);
|
|
24
33
|
__exportStar(require("./fixtures"), exports);
|
|
25
34
|
__exportStar(require("./jupyterlabpage"), exports);
|
|
26
35
|
//# 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,0CAA0C;AAC1C,sCAAsC;AACtC,2DAA2D;AAC3D;;;GAGG
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,0CAA0C;AAC1C,sCAAsC;AACtC,2DAA2D;AAC3D;;;GAGG;;;;;;;;;;;;;;;;;AAEH;;GAEG;AACH,yCAA0C;AAAjC,8FAAA,MAAM,OAAA;AAEf,8CAA4B;AAE5B,sDAAoC;AACpC,2CAAyB;AACzB,6CAA2B;AAC3B,mDAAiC"}
|
package/lib/jupyterlabpage.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import type { Notification } from '@jupyterlab/apputils';
|
|
1
2
|
import type { ElementHandle, Page, Response } from '@playwright/test';
|
|
2
3
|
import { ContentsHelper } from './contents';
|
|
3
|
-
import { ActivityHelper, DebuggerHelper, FileBrowserHelper, KernelHelper, LogConsoleHelper, MenuHelper, NotebookHelper, PerformanceHelper, SidebarHelper, StatusBarHelper, ThemeHelper } from './helpers';
|
|
4
|
+
import { ActivityHelper, DebuggerHelper, FileBrowserHelper, KernelHelper, LogConsoleHelper, MenuHelper, NotebookHelper, PerformanceHelper, SidebarHelper, StatusBarHelper, StyleHelper, ThemeHelper } from './helpers';
|
|
4
5
|
/**
|
|
5
6
|
* JupyterLab page interface
|
|
6
7
|
*/
|
|
@@ -42,6 +43,10 @@ export interface IJupyterLabPage {
|
|
|
42
43
|
* JupyterLab notebook helpers
|
|
43
44
|
*/
|
|
44
45
|
readonly notebook: NotebookHelper;
|
|
46
|
+
/**
|
|
47
|
+
* JupyterLab notifications
|
|
48
|
+
*/
|
|
49
|
+
readonly notifications: Promise<Notification.INotification[]>;
|
|
45
50
|
/**
|
|
46
51
|
* Webbrowser performance helpers
|
|
47
52
|
*/
|
|
@@ -54,6 +59,10 @@ export interface IJupyterLabPage {
|
|
|
54
59
|
* JupyterLab sidebar helpers
|
|
55
60
|
*/
|
|
56
61
|
readonly sidebar: SidebarHelper;
|
|
62
|
+
/**
|
|
63
|
+
* JupyterLab style helpers
|
|
64
|
+
*/
|
|
65
|
+
readonly style: StyleHelper;
|
|
57
66
|
/**
|
|
58
67
|
* JupyterLab theme helpers
|
|
59
68
|
*/
|
|
@@ -136,8 +145,9 @@ export interface IJupyterLabPage {
|
|
|
136
145
|
* - `'domcontentloaded'` - consider operation to be finished when the `DOMContentLoaded` event is fired.
|
|
137
146
|
* - `'load'` - consider operation to be finished when the `load` event is fired.
|
|
138
147
|
* - `'networkidle'` - consider operation to be finished when there are no network connections for at least `500` ms.
|
|
148
|
+
* - `'commit'` - consider operation to be finished when network response is received and the document started loading.
|
|
139
149
|
*/
|
|
140
|
-
waitUntil?: 'load' | 'domcontentloaded' | 'networkidle';
|
|
150
|
+
waitUntil?: 'load' | 'domcontentloaded' | 'networkidle' | 'commit';
|
|
141
151
|
}): Promise<Response | null>;
|
|
142
152
|
/**
|
|
143
153
|
* Whether JupyterLab is in simple mode or not
|
|
@@ -155,7 +165,7 @@ export interface IJupyterLabPage {
|
|
|
155
165
|
*/
|
|
156
166
|
setSimpleMode(simple: boolean): Promise<boolean>;
|
|
157
167
|
/**
|
|
158
|
-
* Wait for a
|
|
168
|
+
* Wait for a condition to be fulfilled
|
|
159
169
|
*
|
|
160
170
|
* @param condition Condition to fulfill
|
|
161
171
|
* @param timeout Maximal time to wait for the condition to be true
|
|
@@ -238,6 +248,10 @@ export declare class JupyterLabPage implements IJupyterLabPage {
|
|
|
238
248
|
* JupyterLab notebook helpers
|
|
239
249
|
*/
|
|
240
250
|
readonly notebook: NotebookHelper;
|
|
251
|
+
/**
|
|
252
|
+
* JupyterLab notifications
|
|
253
|
+
*/
|
|
254
|
+
get notifications(): Promise<Notification.INotification[]>;
|
|
241
255
|
/**
|
|
242
256
|
* Webbrowser performance helpers
|
|
243
257
|
*/
|
|
@@ -250,6 +264,10 @@ export declare class JupyterLabPage implements IJupyterLabPage {
|
|
|
250
264
|
* JupyterLab sidebar helpers
|
|
251
265
|
*/
|
|
252
266
|
readonly sidebar: SidebarHelper;
|
|
267
|
+
/**
|
|
268
|
+
* JupyterLab style helpers
|
|
269
|
+
*/
|
|
270
|
+
readonly style: StyleHelper;
|
|
253
271
|
/**
|
|
254
272
|
* JupyterLab theme helpers
|
|
255
273
|
*/
|
|
@@ -366,8 +384,15 @@ export declare class JupyterLabPage implements IJupyterLabPage {
|
|
|
366
384
|
* - `'domcontentloaded'` - consider operation to be finished when the `DOMContentLoaded` event is fired.
|
|
367
385
|
* - `'load'` - consider operation to be finished when the `load` event is fired.
|
|
368
386
|
* - `'networkidle'` - consider operation to be finished when there are no network connections for at least `500` ms.
|
|
387
|
+
* - `'commit'` - consider operation to be finished when network response is received and the document started loading.
|
|
369
388
|
*/
|
|
370
|
-
waitUntil?: 'load' | 'domcontentloaded' | 'networkidle';
|
|
389
|
+
waitUntil?: 'load' | 'domcontentloaded' | 'networkidle' | 'commit';
|
|
390
|
+
/**
|
|
391
|
+
* Whether to wait for fixture `waitIsReady` or not when reloading.
|
|
392
|
+
*
|
|
393
|
+
* Default is true.
|
|
394
|
+
*/
|
|
395
|
+
waitForIsReady?: boolean;
|
|
371
396
|
}): Promise<Response | null>;
|
|
372
397
|
/**
|
|
373
398
|
* Reset the User Interface
|
package/lib/jupyterlabpage.js
CHANGED
|
@@ -3,7 +3,11 @@
|
|
|
3
3
|
// Distributed under the terms of the Modified BSD License.
|
|
4
4
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
5
5
|
if (k2 === undefined) k2 = k;
|
|
6
|
-
Object.
|
|
6
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
7
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
8
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
9
|
+
}
|
|
10
|
+
Object.defineProperty(o, k2, desc);
|
|
7
11
|
}) : (function(o, m, k, k2) {
|
|
8
12
|
if (k2 === undefined) k2 = k;
|
|
9
13
|
o[k2] = m[k];
|
|
@@ -22,7 +26,6 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
22
26
|
};
|
|
23
27
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
28
|
exports.JupyterLabPage = void 0;
|
|
25
|
-
const path = __importStar(require("path"));
|
|
26
29
|
const contents_1 = require("./contents");
|
|
27
30
|
const helpers_1 = require("./helpers");
|
|
28
31
|
const Utils = __importStar(require("./utils"));
|
|
@@ -55,12 +58,7 @@ class JupyterLabPage {
|
|
|
55
58
|
*/
|
|
56
59
|
this.waitForAppStarted = async () => {
|
|
57
60
|
return this.waitForCondition(() => this.page.evaluate(async () => {
|
|
58
|
-
if (typeof window.
|
|
59
|
-
// Wait for plugins to be loaded
|
|
60
|
-
await window.jupyterlab.started;
|
|
61
|
-
return true;
|
|
62
|
-
}
|
|
63
|
-
else if (typeof window.jupyterapp === 'object') {
|
|
61
|
+
if (typeof window.jupyterapp === 'object') {
|
|
64
62
|
// Wait for plugins to be loaded
|
|
65
63
|
await window.jupyterapp.started;
|
|
66
64
|
return true;
|
|
@@ -70,7 +68,7 @@ class JupyterLabPage {
|
|
|
70
68
|
};
|
|
71
69
|
this.waitIsReady = waitForApplication;
|
|
72
70
|
this.activity = new helpers_1.ActivityHelper(page);
|
|
73
|
-
this.contents = new contents_1.ContentsHelper(
|
|
71
|
+
this.contents = new contents_1.ContentsHelper(page.context().request, page);
|
|
74
72
|
this.filebrowser = new helpers_1.FileBrowserHelper(page, this.contents);
|
|
75
73
|
this.kernel = new helpers_1.KernelHelper(page);
|
|
76
74
|
this.logconsole = new helpers_1.LogConsoleHelper(page);
|
|
@@ -79,9 +77,16 @@ class JupyterLabPage {
|
|
|
79
77
|
this.performance = new helpers_1.PerformanceHelper(page);
|
|
80
78
|
this.statusbar = new helpers_1.StatusBarHelper(page, this.menu);
|
|
81
79
|
this.sidebar = new helpers_1.SidebarHelper(page, this.menu);
|
|
80
|
+
this.style = new helpers_1.StyleHelper(page);
|
|
82
81
|
this.theme = new helpers_1.ThemeHelper(page);
|
|
83
82
|
this.debugger = new helpers_1.DebuggerHelper(page, this.sidebar, this.notebook);
|
|
84
83
|
}
|
|
84
|
+
/**
|
|
85
|
+
* JupyterLab notifications
|
|
86
|
+
*/
|
|
87
|
+
get notifications() {
|
|
88
|
+
return this.page.evaluate(async () => window.galata.getNotifications());
|
|
89
|
+
}
|
|
85
90
|
/**
|
|
86
91
|
* Selector for launcher tab
|
|
87
92
|
*/
|
|
@@ -152,7 +157,10 @@ class JupyterLabPage {
|
|
|
152
157
|
const target = (url === null || url === void 0 ? void 0 : url.startsWith('http'))
|
|
153
158
|
? url
|
|
154
159
|
: `${this.baseURL}${this.appPath}/${url !== null && url !== void 0 ? url : ''}`;
|
|
155
|
-
const response = await this.page.goto(target,
|
|
160
|
+
const response = await this.page.goto(target, {
|
|
161
|
+
...(options !== null && options !== void 0 ? options : {}),
|
|
162
|
+
waitUntil: (_a = options === null || options === void 0 ? void 0 : options.waitUntil) !== null && _a !== void 0 ? _a : 'domcontentloaded'
|
|
163
|
+
});
|
|
156
164
|
await this.waitForAppStarted();
|
|
157
165
|
await this.hookHelpersUp();
|
|
158
166
|
await this.waitIsReady(this.page, this);
|
|
@@ -171,11 +179,16 @@ class JupyterLabPage {
|
|
|
171
179
|
* @param options
|
|
172
180
|
*/
|
|
173
181
|
async reload(options) {
|
|
174
|
-
var _a;
|
|
175
|
-
const response = await this.page.reload(
|
|
182
|
+
var _a, _b;
|
|
183
|
+
const response = await this.page.reload({
|
|
184
|
+
timeout: options === null || options === void 0 ? void 0 : options.timeout,
|
|
185
|
+
waitUntil: (_a = options === null || options === void 0 ? void 0 : options.waitUntil) !== null && _a !== void 0 ? _a : 'domcontentloaded'
|
|
186
|
+
});
|
|
176
187
|
await this.waitForAppStarted();
|
|
177
188
|
await this.hookHelpersUp();
|
|
178
|
-
|
|
189
|
+
if ((_b = options === null || options === void 0 ? void 0 : options.waitForIsReady) !== null && _b !== void 0 ? _b : true) {
|
|
190
|
+
await this.waitIsReady(this.page, this);
|
|
191
|
+
}
|
|
179
192
|
return response;
|
|
180
193
|
}
|
|
181
194
|
/**
|
|
@@ -190,8 +203,14 @@ class JupyterLabPage {
|
|
|
190
203
|
await this.kernel.shutdownAll();
|
|
191
204
|
// show status bar
|
|
192
205
|
await this.statusbar.show();
|
|
193
|
-
//
|
|
194
|
-
await this.
|
|
206
|
+
// Reset the layout
|
|
207
|
+
await this.page.evaluate(async ({ pluginId }) => {
|
|
208
|
+
const settingRegistry = (await window.galata.getPlugin(pluginId));
|
|
209
|
+
const SHELL_ID = '@jupyterlab/application-extension:shell';
|
|
210
|
+
await settingRegistry.remove(SHELL_ID, 'layout');
|
|
211
|
+
}, {
|
|
212
|
+
pluginId: '@jupyterlab/apputils-extension:settings'
|
|
213
|
+
});
|
|
195
214
|
// show Files tab on sidebar
|
|
196
215
|
await this.sidebar.openTab('filebrowser');
|
|
197
216
|
// go to home folder
|
|
@@ -268,18 +287,15 @@ class JupyterLabPage {
|
|
|
268
287
|
* Inject the galata in-page helpers
|
|
269
288
|
*/
|
|
270
289
|
async hookHelpersUp() {
|
|
271
|
-
//
|
|
272
|
-
await this.page.addScriptTag({
|
|
273
|
-
path: path.resolve(__dirname, './lib-inpage/inpage.js')
|
|
274
|
-
});
|
|
290
|
+
// Check galata helpers are loaded
|
|
275
291
|
const galataipDefined = await this.page.evaluate(() => {
|
|
276
|
-
return Promise.resolve(typeof window.
|
|
292
|
+
return Promise.resolve(typeof window.galata === 'object');
|
|
277
293
|
});
|
|
278
294
|
if (!galataipDefined) {
|
|
279
|
-
throw new Error('Failed to
|
|
295
|
+
throw new Error('Failed to activate galata extension');
|
|
280
296
|
}
|
|
281
297
|
const jlabAccessible = await this.page.evaluate(() => {
|
|
282
|
-
return Promise.resolve(typeof window.
|
|
298
|
+
return Promise.resolve(typeof window.galata.app === 'object');
|
|
283
299
|
});
|
|
284
300
|
if (!jlabAccessible) {
|
|
285
301
|
throw new Error('Failed to access JupyterLab object in browser context');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jupyterlabpage.js","sourceRoot":"","sources":["../src/jupyterlabpage.ts"],"names":[],"mappings":";AAAA,0CAA0C;AAC1C,2DAA2D
|
|
1
|
+
{"version":3,"file":"jupyterlabpage.js","sourceRoot":"","sources":["../src/jupyterlabpage.ts"],"names":[],"mappings":"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"}
|
package/lib/playwright-config.js
CHANGED
|
@@ -4,7 +4,10 @@
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
5
|
// Default Playwright configuration for JupyterLab
|
|
6
6
|
module.exports = {
|
|
7
|
-
reporter: [
|
|
7
|
+
reporter: [
|
|
8
|
+
[process.env.CI ? 'github' : 'list'],
|
|
9
|
+
['html', { open: process.env.CI ? 'never' : 'on-failure' }]
|
|
10
|
+
],
|
|
8
11
|
reportSlowTests: null,
|
|
9
12
|
timeout: 60000,
|
|
10
13
|
use: {
|
|
@@ -14,6 +17,7 @@ module.exports = {
|
|
|
14
17
|
// Context options
|
|
15
18
|
viewport: { width: 1024, height: 768 },
|
|
16
19
|
// Artifacts
|
|
20
|
+
// trace: 'on-first-retry',
|
|
17
21
|
video: 'retain-on-failure'
|
|
18
22
|
}
|
|
19
23
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playwright-config.js","sourceRoot":"","sources":["../src/playwright-config.ts"],"names":[],"mappings":";AAAA,0CAA0C;AAC1C,2DAA2D;;AAI3D,kDAAkD;AAClD,MAAM,CAAC,OAAO,GAAG;IACf,QAAQ,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"playwright-config.js","sourceRoot":"","sources":["../src/playwright-config.ts"],"names":[],"mappings":";AAAA,0CAA0C;AAC1C,2DAA2D;;AAI3D,kDAAkD;AAClD,MAAM,CAAC,OAAO,GAAG;IACf,QAAQ,EAAE;QACR,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;QACpC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC;KAC5D;IACD,eAAe,EAAE,IAAI;IACrB,OAAO,EAAE,KAAK;IACd,GAAG,EAAE;QACH,kBAAkB;QAClB,mBAAmB;QACnB,eAAe;QAEf,kBAAkB;QAClB,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;QAEtC,YAAY;QACZ,2BAA2B;QAC3B,KAAK,EAAE,mBAAmB;KAC3B;CACsB,CAAC"}
|
package/lib/utils.js
CHANGED
|
@@ -3,7 +3,11 @@
|
|
|
3
3
|
// Distributed under the terms of the Modified BSD License.
|
|
4
4
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
5
5
|
if (k2 === undefined) k2 = k;
|
|
6
|
-
Object.
|
|
6
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
7
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
8
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
9
|
+
}
|
|
10
|
+
Object.defineProperty(o, k2, desc);
|
|
7
11
|
}) : (function(o, m, k, k2) {
|
|
8
12
|
if (k2 === undefined) k2 = k;
|
|
9
13
|
o[k2] = m[k];
|
package/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";AAAA,0CAA0C;AAC1C,2DAA2D
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jupyterlab/galata",
|
|
3
|
-
"version": "5.0.0-alpha.
|
|
3
|
+
"version": "5.0.0-alpha.21",
|
|
4
4
|
"description": "JupyterLab UI Testing Framework",
|
|
5
5
|
"homepage": "https://github.com/jupyterlab/jupyterlab",
|
|
6
6
|
"bugs": {
|
|
@@ -12,78 +12,62 @@
|
|
|
12
12
|
},
|
|
13
13
|
"license": "BSD-3-Clause",
|
|
14
14
|
"author": "Project Jupyter",
|
|
15
|
-
"sideEffects": [
|
|
16
|
-
"style/*.css",
|
|
17
|
-
"style/index.js"
|
|
18
|
-
],
|
|
19
15
|
"main": "lib/index.js",
|
|
20
16
|
"types": "lib/index.d.ts",
|
|
21
|
-
"style": "style/index.css",
|
|
22
17
|
"directories": {
|
|
23
18
|
"lib": "lib/"
|
|
24
19
|
},
|
|
25
20
|
"files": [
|
|
26
21
|
"lib/**/*.{js,ts,map}",
|
|
27
|
-
"!lib/inpage/index.*",
|
|
28
22
|
"style/index.css",
|
|
29
|
-
"style/index.js"
|
|
23
|
+
"style/index.js",
|
|
24
|
+
"src/**/*.{ts,tsx}"
|
|
30
25
|
],
|
|
31
26
|
"scripts": {
|
|
32
|
-
"build": "
|
|
33
|
-
"build:
|
|
27
|
+
"build": "npm run build:extension && npm run build:galata",
|
|
28
|
+
"build:extension": "cd extension && npm run build && cd ..",
|
|
34
29
|
"build:galata": "tsc -b",
|
|
35
|
-
"
|
|
36
|
-
"clean": "
|
|
30
|
+
"clean": "npm run clean:extension && rimraf lib tsconfig.tsbuildinfo",
|
|
31
|
+
"clean:extension": "cd extension && npm run clean && cd ..",
|
|
37
32
|
"start": "jupyter lab --config ./jupyter_server_test_config.py",
|
|
38
|
-
"start:detached": "(
|
|
33
|
+
"start:detached": "(npm run start&)",
|
|
34
|
+
"start:doc": "PYTHONWARNINGS=ignore jupyter lab --config ./jupyter_server_test_config.py --extensions-in-dev-mode",
|
|
39
35
|
"test": "playwright test",
|
|
36
|
+
"test:base": "playwright test --project galata jupyterlab",
|
|
37
|
+
"test:base:update": "playwright test --project galata jupyterlab --update-snapshots",
|
|
40
38
|
"test:benchmark": "jlpm run test -c playwright-benchmark.config.js",
|
|
39
|
+
"test:benchmark:update": "BENCHMARK_NUMBER_SAMPLES=1 jlpm run test -c playwright-benchmark.config.js --update-snapshots",
|
|
41
40
|
"test:debug": "PWDEBUG=1 playwright test",
|
|
42
|
-
"test:
|
|
43
|
-
"test:update": "
|
|
41
|
+
"test:doc": "jlpm run test --project documentation",
|
|
42
|
+
"test:doc:update": "jlpm run test --project documentation --update-snapshots",
|
|
43
|
+
"test:report": "playwright show-report",
|
|
44
|
+
"test:update": "jlpm test:base:update && jlpm test:benchmark:update"
|
|
44
45
|
},
|
|
45
46
|
"dependencies": {
|
|
46
|
-
"@jupyterlab/application": "^4.0.0-alpha.
|
|
47
|
-
"@jupyterlab/
|
|
48
|
-
"@jupyterlab/coreutils": "^6.0.0-alpha.
|
|
49
|
-
"@jupyterlab/docmanager": "^4.0.0-alpha.
|
|
50
|
-
"@jupyterlab/nbformat": "^4.0.0-alpha.
|
|
51
|
-
"@jupyterlab/notebook": "^4.0.0-alpha.
|
|
52
|
-
"@jupyterlab/services": "^7.0.0-alpha.
|
|
53
|
-
"@jupyterlab/settingregistry": "^4.0.0-alpha.
|
|
54
|
-
"@lumino/
|
|
55
|
-
"@
|
|
56
|
-
"@playwright/test": "^1.16.2",
|
|
47
|
+
"@jupyterlab/application": "^4.0.0-alpha.21",
|
|
48
|
+
"@jupyterlab/apputils": "^4.0.0-alpha.21",
|
|
49
|
+
"@jupyterlab/coreutils": "^6.0.0-alpha.21",
|
|
50
|
+
"@jupyterlab/docmanager": "^4.0.0-alpha.21",
|
|
51
|
+
"@jupyterlab/nbformat": "^4.0.0-alpha.21",
|
|
52
|
+
"@jupyterlab/notebook": "^4.0.0-alpha.21",
|
|
53
|
+
"@jupyterlab/services": "^7.0.0-alpha.21",
|
|
54
|
+
"@jupyterlab/settingregistry": "^4.0.0-alpha.21",
|
|
55
|
+
"@lumino/coreutils": "^2.0.0-rc.1",
|
|
56
|
+
"@playwright/test": "^1.31.0",
|
|
57
57
|
"@stdlib/stats": "~0.0.13",
|
|
58
|
-
"
|
|
59
|
-
"
|
|
60
|
-
"http-server": "^13.0.0",
|
|
61
|
-
"json5": "^2.1.1",
|
|
62
|
-
"node-fetch": "^2.6.0",
|
|
58
|
+
"fs-extra": "^10.1.0",
|
|
59
|
+
"json5": "^2.2.3",
|
|
63
60
|
"path": "~0.12.7",
|
|
64
61
|
"systeminformation": "^5.8.6",
|
|
65
62
|
"vega": "^5.20.0",
|
|
66
|
-
"vega-lite": "^5.1
|
|
63
|
+
"vega-lite": "^5.6.1",
|
|
67
64
|
"vega-statistics": "^1.7.9"
|
|
68
65
|
},
|
|
69
66
|
"devDependencies": {
|
|
70
|
-
"@types/node-fetch": "^2.5.4",
|
|
71
|
-
"css-loader": "^5.0.1",
|
|
72
|
-
"file-loader": "~6.0.0",
|
|
73
|
-
"raw-loader": "~4.0.0",
|
|
74
67
|
"rimraf": "~3.0.0",
|
|
75
|
-
"
|
|
76
|
-
"style-loader": "~2.0.0",
|
|
77
|
-
"svg-url-loader": "~6.0.0",
|
|
78
|
-
"svgo-loader": "^2.2.1",
|
|
79
|
-
"ts-loader": "^6.2.1",
|
|
80
|
-
"typescript": "~4.5.2",
|
|
81
|
-
"url-loader": "~4.1.0",
|
|
82
|
-
"webpack": "^5.55.1",
|
|
83
|
-
"webpack-cli": "^4.8.0"
|
|
68
|
+
"typescript": "~5.0.1-rc"
|
|
84
69
|
},
|
|
85
70
|
"publishConfig": {
|
|
86
71
|
"access": "public"
|
|
87
|
-
}
|
|
88
|
-
"styleModule": "style/index.js"
|
|
72
|
+
}
|
|
89
73
|
}
|