@jupyterlab/galata 5.0.5 → 5.0.6
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/helpers/activity.js +17 -3
- package/lib/helpers/activity.js.map +1 -1
- package/lib/helpers/filebrowser.d.ts +3 -2
- package/lib/helpers/filebrowser.js +24 -4
- package/lib/helpers/filebrowser.js.map +1 -1
- package/lib/playwright-config.js +1 -1
- package/lib/playwright-config.js.map +1 -1
- package/package.json +10 -10
- package/src/helpers/activity.ts +16 -3
- package/src/helpers/filebrowser.ts +25 -6
- package/src/playwright-config.ts +1 -1
package/lib/helpers/activity.js
CHANGED
|
@@ -84,8 +84,15 @@ class ActivityHelper {
|
|
|
84
84
|
* @param name Activity name
|
|
85
85
|
* @returns Handle on the tab or null if the tab is not found
|
|
86
86
|
*/
|
|
87
|
-
getTab(name) {
|
|
88
|
-
|
|
87
|
+
async getTab(name) {
|
|
88
|
+
let handle = null;
|
|
89
|
+
try {
|
|
90
|
+
handle = await this.getTabLocator(name).elementHandle({ timeout: 500 });
|
|
91
|
+
}
|
|
92
|
+
catch (_a) {
|
|
93
|
+
handle = null;
|
|
94
|
+
}
|
|
95
|
+
return handle;
|
|
89
96
|
}
|
|
90
97
|
/**
|
|
91
98
|
* Get a tab locator
|
|
@@ -117,7 +124,14 @@ class ActivityHelper {
|
|
|
117
124
|
}
|
|
118
125
|
locator = page.getByRole('main').locator(`[role="tabpanel"][id="${id}"]`);
|
|
119
126
|
}
|
|
120
|
-
|
|
127
|
+
let handle = null;
|
|
128
|
+
try {
|
|
129
|
+
handle = await locator.elementHandle({ timeout: 500 });
|
|
130
|
+
}
|
|
131
|
+
catch (_a) {
|
|
132
|
+
handle = null;
|
|
133
|
+
}
|
|
134
|
+
return handle;
|
|
121
135
|
}
|
|
122
136
|
/**
|
|
123
137
|
* Get a panel locator
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity.js","sourceRoot":"","sources":["../../src/helpers/activity.ts"],"names":[],"mappings":";AAAA,0CAA0C;AAC1C,2DAA2D;;;;;;;;;;;;;;;;;;;;;;;;;;AAG3D,gDAAkC;AAElC;;GAEG;AACH,MAAa,cAAc;IACzB,YAAqB,IAAU;QAAV,SAAI,GAAJ,IAAI,CAAM;IAAG,CAAC;IAEnC;;;;OAIG;IACH,IAAI,gBAAgB;QAClB,OAAO,KAAK,CAAC,0BAA0B,CAAC,UAAU,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QACZ,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAClC,MAAM,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IAChC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,WAAW,CAAC,IAAY;;QAC5B,IAAI,MAAM,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACzC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI;iBAC9B,OAAO,CAAC,uBAAuB,CAAC;iBAChC,SAAS,CAAC,SAAS,CAAC;iBACpB,UAAU,EAAE,CAAC;YAChB,OAAO,SAAS,KAAK,IAAI,CAAC;SAC3B;aAAM;YACL,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACpC,OAAO,CACL,MAAA,CAAC,GAAG;gBACF,CAAC,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAY,EAAE,EAAE,CACnC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CACzC,CAAC,CAAC,mCACL,KAAK,CACN,CAAC;SACH;IACH,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,IAAa;
|
|
1
|
+
{"version":3,"file":"activity.js","sourceRoot":"","sources":["../../src/helpers/activity.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,10 +48,11 @@ export declare class FileBrowserHelper {
|
|
|
48
48
|
* Note: This will double click on the file;
|
|
49
49
|
* an editor needs to be available for the given file type.
|
|
50
50
|
*
|
|
51
|
-
* @param filePath
|
|
51
|
+
* @param filePath File path
|
|
52
|
+
* @param factory Document factory to use
|
|
52
53
|
* @returns Action success status
|
|
53
54
|
*/
|
|
54
|
-
open(filePath: string): Promise<boolean>;
|
|
55
|
+
open(filePath: string, factory?: string): Promise<boolean>;
|
|
55
56
|
/**
|
|
56
57
|
* Open the Home directory.
|
|
57
58
|
*
|
|
@@ -105,16 +105,36 @@ class FileBrowserHelper {
|
|
|
105
105
|
* Note: This will double click on the file;
|
|
106
106
|
* an editor needs to be available for the given file type.
|
|
107
107
|
*
|
|
108
|
-
* @param filePath
|
|
108
|
+
* @param filePath File path
|
|
109
|
+
* @param factory Document factory to use
|
|
109
110
|
* @returns Action success status
|
|
110
111
|
*/
|
|
111
|
-
async open(filePath) {
|
|
112
|
+
async open(filePath, factory) {
|
|
112
113
|
await this.revealFileInBrowser(filePath);
|
|
113
114
|
const name = path.basename(filePath);
|
|
114
115
|
const fileItem = await this.page.$(`xpath=${this.xpBuildFileSelector(name)}`);
|
|
115
116
|
if (fileItem) {
|
|
116
|
-
|
|
117
|
-
|
|
117
|
+
if (factory) {
|
|
118
|
+
await fileItem.click({ button: 'right' });
|
|
119
|
+
await this.page
|
|
120
|
+
.getByRole('listitem')
|
|
121
|
+
.filter({ hasText: 'Open With' })
|
|
122
|
+
.click();
|
|
123
|
+
await this.page
|
|
124
|
+
.getByRole('menuitem', { name: factory, exact: true })
|
|
125
|
+
.click();
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
await fileItem.dblclick();
|
|
129
|
+
}
|
|
130
|
+
// Use `last` as if a file is already open, it will simply be activated
|
|
131
|
+
// if not it will be opened with optionally another factory (but we don't have a way
|
|
132
|
+
// to know that from the DOM).
|
|
133
|
+
await this.page
|
|
134
|
+
.getByRole('main')
|
|
135
|
+
.getByRole('tab', { name })
|
|
136
|
+
.last()
|
|
137
|
+
.waitFor({
|
|
118
138
|
state: 'visible'
|
|
119
139
|
});
|
|
120
140
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filebrowser.js","sourceRoot":"","sources":["../../src/helpers/filebrowser.ts"],"names":[],"mappings":";AAAA,0CAA0C;AAC1C,2DAA2D;;;;;;;;;;;;;;;;;;;;;;;;;;AAG3D,2CAA6B;AAE7B,gDAAkC;AAElC;;GAEG;AACH,MAAa,iBAAiB;IAC5B,YACW,IAAU,EACV,QAAwB;QADxB,SAAI,GAAJ,IAAI,CAAM;QACV,aAAQ,GAAR,QAAQ,CAAgB;IAChC,CAAC;IAEJ;;;;;OAKG;IACH,mBAAmB,CAAC,QAAgB;QAClC,OAAO,uCAAuC,KAAK,CAAC,eAAe,CACjE,wBAAwB,CACzB,uBAAuB,QAAQ,MAAM,CAAC;IACzC,CAAC;IAED;;;;;OAKG;IACH,wBAAwB,CAAC,OAAe;QACtC,OAAO,8DAA8D,KAAK,CAAC,eAAe,CACxF,wBAAwB,CACzB,uBAAuB,OAAO,MAAM,CAAC;IACxC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,mBAAmB,CAAC,QAAgB;QACxC,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,GAAG,IAAI,CAAC,EAAE;YACZ,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAC3C,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;SACnC;QAED,MAAM,KAAK,CAAC,gBAAgB,CAAC,KAAK,IAAI,EAAE;YACtC,OAAO,MAAM,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,qBAAqB,CAAC,QAAgB;QAC1C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAC5B,SAAS,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAC9C,CAAC;QACF,OAAO,IAAI,KAAK,IAAI,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,mBAAmB;QACvB,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;;YACnC,IAAI,SAAS,GAAG,EAAE,CAAC;YACnB,MAAM,KAAK,GAAG,QAAQ,CAAC,gBAAgB,CACrC,6CAA6C,CAC9C,CAAC;YACF,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC;YAC9B,IAAI,QAAQ,GAAG,CAAC,EAAE;gBAChB,SAAS,GAAG,MAAA,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,mCAAI,EAAE,CAAC;aAC7D;YAED,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC,CAAC;IACL,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"filebrowser.js","sourceRoot":"","sources":["../../src/helpers/filebrowser.ts"],"names":[],"mappings":"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"}
|
package/lib/playwright-config.js
CHANGED
|
@@ -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;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,
|
|
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,KAAK,EAAE,gBAAgB;QACvB,KAAK,EAAE,mBAAmB;KAC3B;CACsB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jupyterlab/galata",
|
|
3
|
-
"version": "5.0.
|
|
3
|
+
"version": "5.0.6",
|
|
4
4
|
"description": "JupyterLab UI Testing Framework",
|
|
5
5
|
"homepage": "https://github.com/jupyterlab/jupyterlab",
|
|
6
6
|
"bugs": {
|
|
@@ -44,15 +44,15 @@
|
|
|
44
44
|
"test:update": "jlpm test:base:update && jlpm test:benchmark:update"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@jupyterlab/application": "^4.0.
|
|
48
|
-
"@jupyterlab/apputils": "^4.1.
|
|
49
|
-
"@jupyterlab/coreutils": "^6.0.
|
|
50
|
-
"@jupyterlab/debugger": "^4.0.
|
|
51
|
-
"@jupyterlab/docmanager": "^4.0.
|
|
52
|
-
"@jupyterlab/nbformat": "^4.0.
|
|
53
|
-
"@jupyterlab/notebook": "^4.0.
|
|
54
|
-
"@jupyterlab/services": "^7.0.
|
|
55
|
-
"@jupyterlab/settingregistry": "^4.0.
|
|
47
|
+
"@jupyterlab/application": "^4.0.6",
|
|
48
|
+
"@jupyterlab/apputils": "^4.1.6",
|
|
49
|
+
"@jupyterlab/coreutils": "^6.0.6",
|
|
50
|
+
"@jupyterlab/debugger": "^4.0.6",
|
|
51
|
+
"@jupyterlab/docmanager": "^4.0.6",
|
|
52
|
+
"@jupyterlab/nbformat": "^4.0.6",
|
|
53
|
+
"@jupyterlab/notebook": "^4.0.6",
|
|
54
|
+
"@jupyterlab/services": "^7.0.6",
|
|
55
|
+
"@jupyterlab/settingregistry": "^4.0.6",
|
|
56
56
|
"@lumino/coreutils": "^2.1.2",
|
|
57
57
|
"@playwright/test": "^1.32.2",
|
|
58
58
|
"@stdlib/stats": "~0.0.13",
|
package/src/helpers/activity.ts
CHANGED
|
@@ -67,8 +67,14 @@ export class ActivityHelper {
|
|
|
67
67
|
* @param name Activity name
|
|
68
68
|
* @returns Handle on the tab or null if the tab is not found
|
|
69
69
|
*/
|
|
70
|
-
getTab(name?: string): Promise<ElementHandle<Element> | null> {
|
|
71
|
-
|
|
70
|
+
async getTab(name?: string): Promise<ElementHandle<Element> | null> {
|
|
71
|
+
let handle: ElementHandle<Element> | null = null;
|
|
72
|
+
try {
|
|
73
|
+
handle = await this.getTabLocator(name).elementHandle({ timeout: 500 });
|
|
74
|
+
} catch {
|
|
75
|
+
handle = null;
|
|
76
|
+
}
|
|
77
|
+
return handle;
|
|
72
78
|
}
|
|
73
79
|
|
|
74
80
|
/**
|
|
@@ -104,7 +110,14 @@ export class ActivityHelper {
|
|
|
104
110
|
locator = page.getByRole('main').locator(`[role="tabpanel"][id="${id}"]`);
|
|
105
111
|
}
|
|
106
112
|
|
|
107
|
-
|
|
113
|
+
let handle: ElementHandle<Element> | null = null;
|
|
114
|
+
try {
|
|
115
|
+
handle = await locator.elementHandle({ timeout: 500 });
|
|
116
|
+
} catch {
|
|
117
|
+
handle = null;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
return handle;
|
|
108
121
|
}
|
|
109
122
|
|
|
110
123
|
/**
|
|
@@ -98,10 +98,11 @@ export class FileBrowserHelper {
|
|
|
98
98
|
* Note: This will double click on the file;
|
|
99
99
|
* an editor needs to be available for the given file type.
|
|
100
100
|
*
|
|
101
|
-
* @param filePath
|
|
101
|
+
* @param filePath File path
|
|
102
|
+
* @param factory Document factory to use
|
|
102
103
|
* @returns Action success status
|
|
103
104
|
*/
|
|
104
|
-
async open(filePath: string): Promise<boolean> {
|
|
105
|
+
async open(filePath: string, factory?: string): Promise<boolean> {
|
|
105
106
|
await this.revealFileInBrowser(filePath);
|
|
106
107
|
const name = path.basename(filePath);
|
|
107
108
|
|
|
@@ -109,10 +110,28 @@ export class FileBrowserHelper {
|
|
|
109
110
|
`xpath=${this.xpBuildFileSelector(name)}`
|
|
110
111
|
);
|
|
111
112
|
if (fileItem) {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
113
|
+
if (factory) {
|
|
114
|
+
await fileItem.click({ button: 'right' });
|
|
115
|
+
await this.page
|
|
116
|
+
.getByRole('listitem')
|
|
117
|
+
.filter({ hasText: 'Open With' })
|
|
118
|
+
.click();
|
|
119
|
+
await this.page
|
|
120
|
+
.getByRole('menuitem', { name: factory, exact: true })
|
|
121
|
+
.click();
|
|
122
|
+
} else {
|
|
123
|
+
await fileItem.dblclick();
|
|
124
|
+
}
|
|
125
|
+
// Use `last` as if a file is already open, it will simply be activated
|
|
126
|
+
// if not it will be opened with optionally another factory (but we don't have a way
|
|
127
|
+
// to know that from the DOM).
|
|
128
|
+
await this.page
|
|
129
|
+
.getByRole('main')
|
|
130
|
+
.getByRole('tab', { name })
|
|
131
|
+
.last()
|
|
132
|
+
.waitFor({
|
|
133
|
+
state: 'visible'
|
|
134
|
+
});
|
|
116
135
|
} else {
|
|
117
136
|
return false;
|
|
118
137
|
}
|