@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
package/lib/fixtures.js
CHANGED
|
@@ -2,9 +2,33 @@
|
|
|
2
2
|
/* eslint-disable @typescript-eslint/ban-ts-comment */
|
|
3
3
|
// Copyright (c) Jupyter Development Team.
|
|
4
4
|
// Distributed under the terms of the Modified BSD License.
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
+
}) : function(o, v) {
|
|
19
|
+
o["default"] = v;
|
|
20
|
+
});
|
|
21
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
22
|
+
if (mod && mod.__esModule) return mod;
|
|
23
|
+
var result = {};
|
|
24
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
25
|
+
__setModuleDefault(result, mod);
|
|
26
|
+
return result;
|
|
27
|
+
};
|
|
5
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
29
|
exports.test = void 0;
|
|
7
30
|
const test_1 = require("@playwright/test");
|
|
31
|
+
const path = __importStar(require("path"));
|
|
8
32
|
const contents_1 = require("./contents");
|
|
9
33
|
const galata_1 = require("./galata");
|
|
10
34
|
/**
|
|
@@ -27,7 +51,7 @@ exports.test = test_1.test.extend({
|
|
|
27
51
|
*
|
|
28
52
|
* Default: /lab
|
|
29
53
|
*/
|
|
30
|
-
appPath: '/lab',
|
|
54
|
+
appPath: ['/lab', { option: true }],
|
|
31
55
|
/**
|
|
32
56
|
* Whether to go to JupyterLab page within the fixture or not.
|
|
33
57
|
*
|
|
@@ -35,7 +59,18 @@ exports.test = test_1.test.extend({
|
|
|
35
59
|
*
|
|
36
60
|
* Note: Setting it to false allows to register new route mock-ups for example.
|
|
37
61
|
*/
|
|
38
|
-
autoGoto: true,
|
|
62
|
+
autoGoto: [true, { option: true }],
|
|
63
|
+
/**
|
|
64
|
+
* Mock JupyterLab config in-memory or not.
|
|
65
|
+
*
|
|
66
|
+
* Possible values are:
|
|
67
|
+
* - true (default): JupyterLab config will be mocked on a per test basis
|
|
68
|
+
* - false: JupyterLab config won't be mocked (Be careful it will write config in local files)
|
|
69
|
+
* - Record<string, JSONObject>: Initial JupyterLab data config - Mapping (config section, value).
|
|
70
|
+
*
|
|
71
|
+
* By default the config is stored in-memory.
|
|
72
|
+
*/
|
|
73
|
+
mockConfig: [true, { option: true }],
|
|
39
74
|
/**
|
|
40
75
|
* Mock JupyterLab state in-memory or not.
|
|
41
76
|
*
|
|
@@ -46,7 +81,7 @@ exports.test = test_1.test.extend({
|
|
|
46
81
|
*
|
|
47
82
|
* By default the state is stored in-memory
|
|
48
83
|
*/
|
|
49
|
-
mockState: true,
|
|
84
|
+
mockState: [true, { option: true }],
|
|
50
85
|
/**
|
|
51
86
|
* Mock JupyterLab settings in-memory or not.
|
|
52
87
|
*
|
|
@@ -60,7 +95,18 @@ exports.test = test_1.test.extend({
|
|
|
60
95
|
* By default the settings are stored in-memory. However the
|
|
61
96
|
* they are still initialized with the hard drive values.
|
|
62
97
|
*/
|
|
63
|
-
mockSettings: galata_1.galata.DEFAULT_SETTINGS,
|
|
98
|
+
mockSettings: [galata_1.galata.DEFAULT_SETTINGS, { option: true }],
|
|
99
|
+
/**
|
|
100
|
+
* Mock JupyterLab user in-memory or not.
|
|
101
|
+
*
|
|
102
|
+
* Possible values are:
|
|
103
|
+
* - true (default): JupyterLab user will be mocked on a per test basis
|
|
104
|
+
* - false: JupyterLab user won't be mocked (It will be a random user so snapshots won't match)
|
|
105
|
+
* - Record<string, unknown>: Initial JupyterLab user - Mapping (user attribute, value).
|
|
106
|
+
*
|
|
107
|
+
* By default the user is stored in-memory.
|
|
108
|
+
*/
|
|
109
|
+
mockUser: [true, { option: true }],
|
|
64
110
|
/**
|
|
65
111
|
* Galata can keep the uploaded and created files in ``tmpPath`` on
|
|
66
112
|
* the server root for debugging purpose. By default the files are
|
|
@@ -70,7 +116,7 @@ exports.test = test_1.test.extend({
|
|
|
70
116
|
* - 'on' - ``tmpPath`` is never deleted
|
|
71
117
|
* - 'only-on-failure' - ``tmpPath`` is deleted except if a test failed or timed out.
|
|
72
118
|
*/
|
|
73
|
-
serverFiles: 'off',
|
|
119
|
+
serverFiles: ['off', { option: true }],
|
|
74
120
|
/**
|
|
75
121
|
* Sessions created during the test.
|
|
76
122
|
*
|
|
@@ -80,11 +126,11 @@ exports.test = test_1.test.extend({
|
|
|
80
126
|
*
|
|
81
127
|
* By default the sessions created during a test will be tracked and disposed at the end.
|
|
82
128
|
*/
|
|
83
|
-
sessions: async ({
|
|
129
|
+
sessions: async ({ request }, use) => {
|
|
84
130
|
const sessions = new Map();
|
|
85
131
|
await use(sessions);
|
|
86
132
|
if (sessions.size > 0) {
|
|
87
|
-
await galata_1.galata.Mock.clearRunners(
|
|
133
|
+
await galata_1.galata.Mock.clearRunners(request, [...sessions.keys()], 'sessions');
|
|
88
134
|
}
|
|
89
135
|
},
|
|
90
136
|
/**
|
|
@@ -92,15 +138,15 @@ exports.test = test_1.test.extend({
|
|
|
92
138
|
*
|
|
93
139
|
* Possible values are:
|
|
94
140
|
* - null: The Terminals API won't be mocked
|
|
95
|
-
* - Map<string,
|
|
141
|
+
* - Map<string, TerminalAPI.IModel>: The Terminals created during a test.
|
|
96
142
|
*
|
|
97
143
|
* By default the Terminals created during a test will be tracked and disposed at the end.
|
|
98
144
|
*/
|
|
99
|
-
terminals: async ({
|
|
145
|
+
terminals: async ({ request }, use) => {
|
|
100
146
|
const terminals = new Map();
|
|
101
147
|
await use(terminals);
|
|
102
148
|
if (terminals.size > 0) {
|
|
103
|
-
await galata_1.galata.Mock.clearRunners(
|
|
149
|
+
await galata_1.galata.Mock.clearRunners(request, [...terminals.keys()], 'terminals');
|
|
104
150
|
}
|
|
105
151
|
},
|
|
106
152
|
/**
|
|
@@ -109,11 +155,12 @@ exports.test = test_1.test.extend({
|
|
|
109
155
|
* Note: if you override this string, you will need to take care of creating the
|
|
110
156
|
* folder and cleaning it.
|
|
111
157
|
*/
|
|
112
|
-
tmpPath: async ({
|
|
113
|
-
const parts = testInfo.outputDir.split('/');
|
|
158
|
+
tmpPath: async ({ request, serverFiles }, use, testInfo) => {
|
|
114
159
|
// Remove appended retry part for reproducibility
|
|
115
|
-
const testFolder =
|
|
116
|
-
|
|
160
|
+
const testFolder = path
|
|
161
|
+
.basename(testInfo.outputDir)
|
|
162
|
+
.replace(/-retry\d+$/i, '');
|
|
163
|
+
const contents = new contents_1.ContentsHelper(request);
|
|
117
164
|
if (await contents.directoryExists(testFolder)) {
|
|
118
165
|
await contents.deleteDirectory(testFolder);
|
|
119
166
|
}
|
|
@@ -134,7 +181,7 @@ exports.test = test_1.test.extend({
|
|
|
134
181
|
* @param page Playwright Page model
|
|
135
182
|
* @param helpers JupyterLab helpers
|
|
136
183
|
*/
|
|
137
|
-
waitForApplication: async ({ baseURL }, use
|
|
184
|
+
waitForApplication: async ({ baseURL }, use) => {
|
|
138
185
|
const waitIsReady = async (page, helpers) => {
|
|
139
186
|
await page.waitForSelector('#jupyterlab-splash', {
|
|
140
187
|
state: 'detached'
|
|
@@ -165,8 +212,8 @@ exports.test = test_1.test.extend({
|
|
|
165
212
|
* coupling effects between tests.
|
|
166
213
|
*/
|
|
167
214
|
// @ts-ignore
|
|
168
|
-
page: async ({ appPath, autoGoto, baseURL, mockSettings, mockState, page, sessions, terminals, tmpPath, waitForApplication }, use) => {
|
|
169
|
-
await use(await galata_1.galata.initTestPage(appPath, autoGoto, baseURL, mockSettings, mockState, page, sessions, terminals, tmpPath, waitForApplication));
|
|
215
|
+
page: async ({ appPath, autoGoto, baseURL, mockConfig, mockSettings, mockState, mockUser, page, sessions, terminals, tmpPath, waitForApplication }, use) => {
|
|
216
|
+
await use(await galata_1.galata.initTestPage(appPath, autoGoto, baseURL, mockConfig, mockSettings, mockState, mockUser, page, sessions, terminals, tmpPath, waitForApplication));
|
|
170
217
|
}
|
|
171
218
|
});
|
|
172
219
|
//# sourceMappingURL=fixtures.js.map
|
package/lib/fixtures.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../src/fixtures.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,0CAA0C;AAC1C,2DAA2D
|
|
1
|
+
{"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../src/fixtures.ts"],"names":[],"mappings":"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"}
|
package/lib/galata.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import * as nbformat from '@jupyterlab/nbformat';
|
|
2
|
-
import { Session, TerminalAPI, Workspace } from '@jupyterlab/services';
|
|
3
|
-
import { ISettingRegistry } from '@jupyterlab/settingregistry';
|
|
4
|
-
import {
|
|
1
|
+
import type * as nbformat from '@jupyterlab/nbformat';
|
|
2
|
+
import type { Session, TerminalAPI, User, Workspace } from '@jupyterlab/services';
|
|
3
|
+
import type { ISettingRegistry } from '@jupyterlab/settingregistry';
|
|
4
|
+
import type { JSONObject } from '@lumino/coreutils';
|
|
5
|
+
import type { APIRequestContext, Browser, Page } from '@playwright/test';
|
|
5
6
|
import { ContentsHelper } from './contents';
|
|
6
7
|
import { PerformanceHelper } from './helpers';
|
|
7
8
|
import { IJupyterLabPage, IJupyterLabPageFixture } from './jupyterlabpage';
|
|
@@ -14,6 +15,7 @@ export declare namespace galata {
|
|
|
14
15
|
* - Deactivate codemirror cursor blinking to avoid noise in screenshots
|
|
15
16
|
*/
|
|
16
17
|
const DEFAULT_SETTINGS: Record<string, any>;
|
|
18
|
+
const DEFAULT_DOCUMENTATION_STATE: Record<string, any>;
|
|
17
19
|
/**
|
|
18
20
|
* Sidebar position
|
|
19
21
|
*/
|
|
@@ -34,6 +36,77 @@ export declare namespace galata {
|
|
|
34
36
|
* Notebook toolbar item type
|
|
35
37
|
*/
|
|
36
38
|
type NotebookToolbarItemId = DefaultNotebookToolbarItemId | string;
|
|
39
|
+
/**
|
|
40
|
+
* Options to create a new page
|
|
41
|
+
*/
|
|
42
|
+
interface INewPageOption {
|
|
43
|
+
/**
|
|
44
|
+
* Application base URL
|
|
45
|
+
*/
|
|
46
|
+
baseURL: string;
|
|
47
|
+
/**
|
|
48
|
+
* Playwright browser model
|
|
49
|
+
*/
|
|
50
|
+
browser: Browser;
|
|
51
|
+
/**
|
|
52
|
+
* Callback that resolved when the application page is ready
|
|
53
|
+
*/
|
|
54
|
+
waitForApplication: (page: Page, helpers: IJupyterLabPage) => Promise<void>;
|
|
55
|
+
/**
|
|
56
|
+
* Application URL path fragment
|
|
57
|
+
*
|
|
58
|
+
* Default: /lab
|
|
59
|
+
*/
|
|
60
|
+
appPath?: string;
|
|
61
|
+
/**
|
|
62
|
+
* Whether to go to JupyterLab page within the fixture or not.
|
|
63
|
+
*
|
|
64
|
+
* Default: true
|
|
65
|
+
*/
|
|
66
|
+
autoGoto?: boolean;
|
|
67
|
+
/**
|
|
68
|
+
* Mock Jupyter Server configuration in-memory or not.
|
|
69
|
+
*
|
|
70
|
+
* Default true
|
|
71
|
+
*/
|
|
72
|
+
mockConfig?: boolean | Record<string, unknown>;
|
|
73
|
+
/**
|
|
74
|
+
* Mock JupyterLab state in-memory or not.
|
|
75
|
+
*
|
|
76
|
+
* Default galata.DEFAULT_SETTINGS
|
|
77
|
+
*/
|
|
78
|
+
mockSettings?: boolean | Record<string, unknown>;
|
|
79
|
+
/**
|
|
80
|
+
* Mock JupyterLab settings in-memory or not.
|
|
81
|
+
*
|
|
82
|
+
* Default true
|
|
83
|
+
*/
|
|
84
|
+
mockState?: boolean | Record<string, unknown>;
|
|
85
|
+
/**
|
|
86
|
+
* Mock JupyterLab user in-memory or not.
|
|
87
|
+
*
|
|
88
|
+
* Default true
|
|
89
|
+
*/
|
|
90
|
+
mockUser?: boolean | Partial<User.IUser>;
|
|
91
|
+
/**
|
|
92
|
+
* Whether to store sessions in memory or not.
|
|
93
|
+
*
|
|
94
|
+
* Default true
|
|
95
|
+
*/
|
|
96
|
+
mockSessions?: boolean;
|
|
97
|
+
/**
|
|
98
|
+
* Whether to store terminals in memory or not.
|
|
99
|
+
*
|
|
100
|
+
* Default true
|
|
101
|
+
*/
|
|
102
|
+
mockTerminals?: boolean;
|
|
103
|
+
/**
|
|
104
|
+
* Create and delete a temporary path during the page existence
|
|
105
|
+
*
|
|
106
|
+
* Default ''
|
|
107
|
+
*/
|
|
108
|
+
tmpPath?: string;
|
|
109
|
+
}
|
|
37
110
|
/**
|
|
38
111
|
* Add the Galata helpers to the page model
|
|
39
112
|
*
|
|
@@ -44,25 +117,25 @@ export declare namespace galata {
|
|
|
44
117
|
* @returns Playwright page model with Galata helpers
|
|
45
118
|
*/
|
|
46
119
|
function addHelpersToPage(page: Page, baseURL: string, waitForApplication: (page: Page, helpers: IJupyterLabPage) => Promise<void>, appPath?: string): IJupyterLabPageFixture;
|
|
47
|
-
function initTestPage(appPath: string, autoGoto: boolean, baseURL: string, mockSettings: boolean | Record<string, unknown>, mockState: boolean | Record<string, unknown>, page: Page, sessions: Map<string, Session.IModel> | null, terminals: Map<string, TerminalAPI.IModel> | null, tmpPath: string, waitForApplication: (page: Page, helpers: IJupyterLabPage) => Promise<void>): Promise<IJupyterLabPageFixture>;
|
|
120
|
+
function initTestPage(appPath: string, autoGoto: boolean, baseURL: string, mockConfig: boolean | Record<string, unknown>, mockSettings: boolean | Record<string, unknown>, mockState: boolean | Record<string, unknown>, mockUser: boolean | Partial<User.IUser>, page: Page, sessions: Map<string, Session.IModel> | null, terminals: Map<string, TerminalAPI.IModel> | null, tmpPath: string, waitForApplication: (page: Page, helpers: IJupyterLabPage) => Promise<void>): Promise<IJupyterLabPageFixture>;
|
|
48
121
|
/**
|
|
49
122
|
* Create a contents REST API helpers object
|
|
50
123
|
*
|
|
51
|
-
* @param
|
|
124
|
+
* @param request Playwright API request context
|
|
52
125
|
* @param page Playwright page model
|
|
53
126
|
* @returns Contents REST API helpers
|
|
54
127
|
*/
|
|
55
|
-
function newContentsHelper(
|
|
128
|
+
function newContentsHelper(request?: APIRequestContext, page?: Page): ContentsHelper;
|
|
56
129
|
/**
|
|
57
|
-
* Create a page with Galata helpers for the given browser
|
|
130
|
+
* Create a page with Galata helpers for the given browser in a new context.
|
|
58
131
|
*
|
|
59
|
-
* @param browser Playwright browser model
|
|
60
|
-
* @param baseURL Application base URL
|
|
61
|
-
* @param waitForApplication Callback that resolved when the application page is ready
|
|
62
|
-
* @param appPath Application URL path fragment
|
|
63
132
|
* @returns Playwright page model with Galata helpers
|
|
64
133
|
*/
|
|
65
|
-
function newPage(
|
|
134
|
+
function newPage(options: INewPageOption): Promise<{
|
|
135
|
+
page: IJupyterLabPageFixture;
|
|
136
|
+
sessions: Map<string, Session.IModel> | null;
|
|
137
|
+
terminals: Map<string, TerminalAPI.IModel> | null;
|
|
138
|
+
}>;
|
|
66
139
|
/**
|
|
67
140
|
* Create a new performance helper
|
|
68
141
|
*
|
|
@@ -74,12 +147,31 @@ export declare namespace galata {
|
|
|
74
147
|
* Regex to capture JupyterLab API call
|
|
75
148
|
*/
|
|
76
149
|
namespace Routes {
|
|
150
|
+
/**
|
|
151
|
+
* Config API
|
|
152
|
+
*
|
|
153
|
+
* The config section can be found in the named group `section`.
|
|
154
|
+
*/
|
|
155
|
+
const config: RegExp;
|
|
156
|
+
/**
|
|
157
|
+
* Contents API
|
|
158
|
+
*
|
|
159
|
+
* The content path can be found in the named group `path`.
|
|
160
|
+
*
|
|
161
|
+
* The path will be prefixed by '/'.
|
|
162
|
+
* The path will be undefined for the root folder.
|
|
163
|
+
*/
|
|
164
|
+
const contents: RegExp;
|
|
165
|
+
/**
|
|
166
|
+
* Extensions API
|
|
167
|
+
*/
|
|
168
|
+
const extensions: RegExp;
|
|
77
169
|
/**
|
|
78
170
|
* Sessions API
|
|
79
171
|
*
|
|
80
172
|
* The session id can be found in the named group `id`.
|
|
81
173
|
*
|
|
82
|
-
* The id will be
|
|
174
|
+
* The id will be prefixed by '/'.
|
|
83
175
|
*/
|
|
84
176
|
const sessions: RegExp;
|
|
85
177
|
/**
|
|
@@ -87,7 +179,7 @@ export declare namespace galata {
|
|
|
87
179
|
*
|
|
88
180
|
* The schema name can be found in the named group `id`.
|
|
89
181
|
*
|
|
90
|
-
* The id will be
|
|
182
|
+
* The id will be prefixed by '/'.
|
|
91
183
|
*/
|
|
92
184
|
const settings: RegExp;
|
|
93
185
|
/**
|
|
@@ -95,7 +187,7 @@ export declare namespace galata {
|
|
|
95
187
|
*
|
|
96
188
|
* The terminal id can be found in the named group `id`.
|
|
97
189
|
*
|
|
98
|
-
* The id will be
|
|
190
|
+
* The id will be prefixed by '/'.
|
|
99
191
|
*/
|
|
100
192
|
const terminals: RegExp;
|
|
101
193
|
/**
|
|
@@ -103,7 +195,7 @@ export declare namespace galata {
|
|
|
103
195
|
*
|
|
104
196
|
* The locale can be found in the named group `id`.
|
|
105
197
|
*
|
|
106
|
-
* The id will be
|
|
198
|
+
* The id will be prefixed by '/'.
|
|
107
199
|
*/
|
|
108
200
|
const translations: RegExp;
|
|
109
201
|
/**
|
|
@@ -111,9 +203,13 @@ export declare namespace galata {
|
|
|
111
203
|
*
|
|
112
204
|
* The space name can be found in the named group `id`.
|
|
113
205
|
*
|
|
114
|
-
* The id will be
|
|
206
|
+
* The id will be prefixed by '/'.
|
|
115
207
|
*/
|
|
116
208
|
const workspaces: RegExp;
|
|
209
|
+
/**
|
|
210
|
+
* User API
|
|
211
|
+
*/
|
|
212
|
+
const user: RegExp;
|
|
117
213
|
}
|
|
118
214
|
/**
|
|
119
215
|
* Notebook generation helpers
|
|
@@ -148,15 +244,33 @@ export declare namespace galata {
|
|
|
148
244
|
* Mock methods
|
|
149
245
|
*/
|
|
150
246
|
namespace Mock {
|
|
247
|
+
/**
|
|
248
|
+
* Set last modified attributes one day ago one listing
|
|
249
|
+
* directory content.
|
|
250
|
+
*
|
|
251
|
+
* @param page Page model object
|
|
252
|
+
*
|
|
253
|
+
* #### Notes
|
|
254
|
+
* The goal is to freeze the file browser display
|
|
255
|
+
*/
|
|
256
|
+
function freezeContentLastModified(page: Page): Promise<void>;
|
|
151
257
|
/**
|
|
152
258
|
* Clear all wanted sessions or terminals.
|
|
153
259
|
*
|
|
154
260
|
* @param baseURL Application base URL
|
|
155
261
|
* @param runners Session or terminal ids to stop
|
|
156
262
|
* @param type Type of runner; session or terminal
|
|
263
|
+
* @param request API request context
|
|
157
264
|
* @returns Whether the runners were closed or not
|
|
158
265
|
*/
|
|
159
|
-
function clearRunners(
|
|
266
|
+
function clearRunners(request: APIRequestContext, runners: string[], type: 'sessions' | 'terminals'): Promise<boolean>;
|
|
267
|
+
/**
|
|
268
|
+
* Mock config route.
|
|
269
|
+
*
|
|
270
|
+
* @param page Page model object
|
|
271
|
+
* @param config In-memory config
|
|
272
|
+
*/
|
|
273
|
+
function mockConfig(page: Page, config: Record<string, JSONObject>): Promise<void>;
|
|
160
274
|
/**
|
|
161
275
|
* Mock the runners API to display only those created during a test
|
|
162
276
|
*
|
|
@@ -180,5 +294,12 @@ export declare namespace galata {
|
|
|
180
294
|
* @param mockedSettings Test mocked settings
|
|
181
295
|
*/
|
|
182
296
|
function mockSettings(page: Page, settings: ISettingRegistry.IPlugin[], mockedSettings: Record<string, any>): Promise<void>;
|
|
297
|
+
/**
|
|
298
|
+
* Mock user route.
|
|
299
|
+
*
|
|
300
|
+
* @param page Page model object
|
|
301
|
+
* @param user In-memory user
|
|
302
|
+
*/
|
|
303
|
+
function mockUser(page: Page, user: User.IUser): Promise<void>;
|
|
183
304
|
}
|
|
184
305
|
}
|