@opensumi/playwright 2.19.10-next-1661437048.0
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/LICENSE +21 -0
- package/lib/app.d.ts +36 -0
- package/lib/app.d.ts.map +1 -0
- package/lib/app.js +91 -0
- package/lib/app.js.map +1 -0
- package/lib/constans/index.d.ts +17 -0
- package/lib/constans/index.d.ts.map +1 -0
- package/lib/constans/index.js +22 -0
- package/lib/constans/index.js.map +1 -0
- package/lib/context-menu.d.ts +9 -0
- package/lib/context-menu.d.ts.map +1 -0
- package/lib/context-menu.js +23 -0
- package/lib/context-menu.js.map +1 -0
- package/lib/editor.d.ts +17 -0
- package/lib/editor.d.ts.map +1 -0
- package/lib/editor.js +67 -0
- package/lib/editor.js.map +1 -0
- package/lib/explorer-view.d.ts +19 -0
- package/lib/explorer-view.d.ts.map +1 -0
- package/lib/explorer-view.js +66 -0
- package/lib/explorer-view.js.map +1 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +5 -0
- package/lib/index.js.map +1 -0
- package/lib/menu-item.d.ts +13 -0
- package/lib/menu-item.d.ts.map +1 -0
- package/lib/menu-item.js +37 -0
- package/lib/menu-item.js.map +1 -0
- package/lib/menu.d.ts +16 -0
- package/lib/menu.d.ts.map +1 -0
- package/lib/menu.js +66 -0
- package/lib/menu.js.map +1 -0
- package/lib/menubar.d.ts +14 -0
- package/lib/menubar.d.ts.map +1 -0
- package/lib/menubar.js +48 -0
- package/lib/menubar.js.map +1 -0
- package/lib/panel.d.ts +14 -0
- package/lib/panel.d.ts.map +1 -0
- package/lib/panel.js +35 -0
- package/lib/panel.js.map +1 -0
- package/lib/quick-command-palette.d.ts +12 -0
- package/lib/quick-command-palette.d.ts.map +1 -0
- package/lib/quick-command-palette.js +58 -0
- package/lib/quick-command-palette.js.map +1 -0
- package/lib/quick-open-palette.d.ts +12 -0
- package/lib/quick-open-palette.d.ts.map +1 -0
- package/lib/quick-open-palette.js +58 -0
- package/lib/quick-open-palette.js.map +1 -0
- package/lib/search-view.d.ts +5 -0
- package/lib/search-view.d.ts.map +1 -0
- package/lib/search-view.js +12 -0
- package/lib/search-view.js.map +1 -0
- package/lib/tests/app.test.d.ts +2 -0
- package/lib/tests/app.test.d.ts.map +1 -0
- package/lib/tests/app.test.js +16 -0
- package/lib/tests/app.test.js.map +1 -0
- package/lib/tests/editor.test.d.ts +2 -0
- package/lib/tests/editor.test.d.ts.map +1 -0
- package/lib/tests/editor.test.js +92 -0
- package/lib/tests/editor.test.js.map +1 -0
- package/lib/tests/explorer-view.test.d.ts +2 -0
- package/lib/tests/explorer-view.test.d.ts.map +1 -0
- package/lib/tests/explorer-view.test.js +80 -0
- package/lib/tests/explorer-view.test.js.map +1 -0
- package/lib/tests/hooks/index.d.ts +4 -0
- package/lib/tests/hooks/index.d.ts.map +1 -0
- package/lib/tests/hooks/index.js +14 -0
- package/lib/tests/hooks/index.js.map +1 -0
- package/lib/tests/search-view.test.d.ts +2 -0
- package/lib/tests/search-view.test.d.ts.map +1 -0
- package/lib/tests/search-view.test.js +22 -0
- package/lib/tests/search-view.test.js.map +1 -0
- package/lib/text-editor.d.ts +33 -0
- package/lib/text-editor.d.ts.map +1 -0
- package/lib/text-editor.js +169 -0
- package/lib/text-editor.js.map +1 -0
- package/lib/tree-node.d.ts +25 -0
- package/lib/tree-node.d.ts.map +1 -0
- package/lib/tree-node.js +59 -0
- package/lib/tree-node.js.map +1 -0
- package/lib/utils/element.d.ts +6 -0
- package/lib/utils/element.d.ts.map +1 -0
- package/lib/utils/element.js +32 -0
- package/lib/utils/element.js.map +1 -0
- package/lib/utils/index.d.ts +2 -0
- package/lib/utils/index.d.ts.map +1 -0
- package/lib/utils/index.js +5 -0
- package/lib/utils/index.js.map +1 -0
- package/lib/view-base.d.ts +8 -0
- package/lib/view-base.d.ts.map +1 -0
- package/lib/view-base.js +13 -0
- package/lib/view-base.js.map +1 -0
- package/lib/view.d.ts +28 -0
- package/lib/view.d.ts.map +1 -0
- package/lib/view.js +71 -0
- package/lib/view.js.map +1 -0
- package/lib/workspace.d.ts +9 -0
- package/lib/workspace.d.ts.map +1 -0
- package/lib/workspace.js +36 -0
- package/lib/workspace.js.map +1 -0
- package/package.json +37 -0
package/lib/menubar.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ElementHandle } from '@playwright/test';
|
|
2
|
+
import { OpenSumiApp } from './app';
|
|
3
|
+
import { OpenSumiViewBase } from './view-base';
|
|
4
|
+
export declare class OpenSumiMenubar extends OpenSumiViewBase {
|
|
5
|
+
static USER_KEY_TYPING_DELAY: number;
|
|
6
|
+
private elementHandle;
|
|
7
|
+
private _menuItems;
|
|
8
|
+
selector: string;
|
|
9
|
+
constructor(app: OpenSumiApp);
|
|
10
|
+
initMenubar(): Promise<void>;
|
|
11
|
+
trigger(group: string, command: string): Promise<void>;
|
|
12
|
+
getMenuItems(): Promise<ElementHandle<Node>[]>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=menubar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menubar.d.ts","sourceRoot":"","sources":["../src/menubar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAGpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,qBAAa,eAAgB,SAAQ,gBAAgB;IACnD,MAAM,CAAC,qBAAqB,SAAO;IAEnC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,UAAU,CAAkB;IAEpC,QAAQ,SAA0C;gBAEtC,GAAG,EAAE,WAAW;IAKtB,WAAW;IAIX,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAwBtC,YAAY;CAMnB"}
|
package/lib/menubar.js
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OpenSumiMenubar = void 0;
|
|
4
|
+
const constans_1 = require("./constans");
|
|
5
|
+
const utils_1 = require("./utils");
|
|
6
|
+
const view_base_1 = require("./view-base");
|
|
7
|
+
class OpenSumiMenubar extends view_base_1.OpenSumiViewBase {
|
|
8
|
+
constructor(app) {
|
|
9
|
+
super(app);
|
|
10
|
+
this.selector = `#${constans_1.OPENSUMI_VIEW_CONTAINERS.MENUBAR}`;
|
|
11
|
+
this.initMenubar();
|
|
12
|
+
}
|
|
13
|
+
async initMenubar() {
|
|
14
|
+
this.elementHandle = await this.page.waitForSelector(this.selector);
|
|
15
|
+
}
|
|
16
|
+
async trigger(group, command) {
|
|
17
|
+
// group maybe on of this: File, Edit, Selection, View, Go, Terminal, Help
|
|
18
|
+
const sections = await this.getMenuItems();
|
|
19
|
+
let item;
|
|
20
|
+
for (const section of sections) {
|
|
21
|
+
if ((await section.textContent()) === group) {
|
|
22
|
+
item = section;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (!item) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
await item.click();
|
|
29
|
+
const menu = await this.page.waitForSelector('.kt-dropdown:not(.kt-dropdown-hidden)');
|
|
30
|
+
const menuItems = await menu.$$('.kt-inner-menu-item');
|
|
31
|
+
for (const menu of menuItems) {
|
|
32
|
+
const label = await (0, utils_1.textContent)(menu.$("[class*='label__']"));
|
|
33
|
+
if (command === label) {
|
|
34
|
+
menu.click();
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
async getMenuItems() {
|
|
40
|
+
if (!this._menuItems) {
|
|
41
|
+
return await this.elementHandle.$$("[class*='menubar___']");
|
|
42
|
+
}
|
|
43
|
+
return this._menuItems;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
exports.OpenSumiMenubar = OpenSumiMenubar;
|
|
47
|
+
OpenSumiMenubar.USER_KEY_TYPING_DELAY = 100;
|
|
48
|
+
//# sourceMappingURL=menubar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menubar.js","sourceRoot":"","sources":["../src/menubar.ts"],"names":[],"mappings":";;;AAGA,yCAAsD;AACtD,mCAAsC;AACtC,2CAA+C;AAE/C,MAAa,eAAgB,SAAQ,4BAAgB;IAQnD,YAAY,GAAgB;QAC1B,KAAK,CAAC,GAAG,CAAC,CAAC;QAHb,aAAQ,GAAG,IAAI,mCAAwB,CAAC,OAAO,EAAE,CAAC;QAIhD,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI,CAAC,aAAa,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAa,EAAE,OAAe;QAC1C,0EAA0E;QAC1E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC3C,IAAI,IAAI,CAAC;QACT,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC9B,IAAI,CAAC,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC,KAAK,KAAK,EAAE;gBAC3C,IAAI,GAAG,OAAO,CAAC;aAChB;SACF;QACD,IAAI,CAAC,IAAI,EAAE;YACT,OAAO;SACR;QACD,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,uCAAuC,CAAC,CAAC;QACtF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC;QACvD,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE;YAC5B,MAAM,KAAK,GAAG,MAAM,IAAA,mBAAW,EAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC;YAC9D,IAAI,OAAO,KAAK,KAAK,EAAE;gBACrB,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,OAAO;aACR;SACF;IACH,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,uBAAuB,CAAC,CAAC;SAC7D;QACD,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;;AA9CH,0CA+CC;AA9CQ,qCAAqB,GAAG,GAAG,CAAC"}
|
package/lib/panel.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { OpenSumiApp } from './app';
|
|
2
|
+
import { OpenSumiViewBase } from './view-base';
|
|
3
|
+
export declare abstract class OpenSumiPanel extends OpenSumiViewBase {
|
|
4
|
+
private view;
|
|
5
|
+
private whenReady;
|
|
6
|
+
abstract id: string;
|
|
7
|
+
constructor(app: OpenSumiApp);
|
|
8
|
+
get viewSelector(): string;
|
|
9
|
+
init(): Promise<void>;
|
|
10
|
+
isVisible(): Promise<boolean | undefined>;
|
|
11
|
+
open(): Promise<this | undefined>;
|
|
12
|
+
waitForVisible(): Promise<void>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=panel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"panel.d.ts","sourceRoot":"","sources":["../src/panel.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,8BAAsB,aAAc,SAAQ,gBAAgB;IAC1D,OAAO,CAAC,IAAI,CAAiD;IAC7D,OAAO,CAAC,SAAS,CAAgB;IAEjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;gBAER,GAAG,EAAE,WAAW;IAK5B,IAAI,YAAY,WAEf;IAEK,IAAI;IAIJ,SAAS;IAKT,IAAI;IAUJ,cAAc;CAGrB"}
|
package/lib/panel.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OpenSumiPanel = void 0;
|
|
4
|
+
const view_base_1 = require("./view-base");
|
|
5
|
+
class OpenSumiPanel extends view_base_1.OpenSumiViewBase {
|
|
6
|
+
constructor(app) {
|
|
7
|
+
super(app);
|
|
8
|
+
this.whenReady = this.init();
|
|
9
|
+
}
|
|
10
|
+
get viewSelector() {
|
|
11
|
+
return `.${this.id}`;
|
|
12
|
+
}
|
|
13
|
+
async init() {
|
|
14
|
+
this.view = await this.page.$(this.viewSelector);
|
|
15
|
+
}
|
|
16
|
+
async isVisible() {
|
|
17
|
+
var _a;
|
|
18
|
+
await this.whenReady;
|
|
19
|
+
return (_a = this.view) === null || _a === void 0 ? void 0 : _a.isVisible();
|
|
20
|
+
}
|
|
21
|
+
async open() {
|
|
22
|
+
if (!this.id) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
await this.app.quickOpenPalette.type('view ');
|
|
26
|
+
await this.app.quickOpenPalette.trigger(this.id.toLocaleUpperCase());
|
|
27
|
+
await this.waitForVisible();
|
|
28
|
+
return this;
|
|
29
|
+
}
|
|
30
|
+
async waitForVisible() {
|
|
31
|
+
await this.page.waitForSelector(this.viewSelector, { state: 'visible' });
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.OpenSumiPanel = OpenSumiPanel;
|
|
35
|
+
//# sourceMappingURL=panel.js.map
|
package/lib/panel.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"panel.js","sourceRoot":"","sources":["../src/panel.ts"],"names":[],"mappings":";;;AAGA,2CAA+C;AAE/C,MAAsB,aAAc,SAAQ,4BAAgB;IAM1D,YAAY,GAAgB;QAC1B,KAAK,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,SAAS;;QACb,MAAM,IAAI,CAAC,SAAS,CAAC;QACrB,OAAO,MAAA,IAAI,CAAC,IAAI,0CAAE,SAAS,EAAE,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;YACZ,OAAO;SACR;QACD,MAAM,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,CAAC;QACrE,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAC3E,CAAC;CACF;AArCD,sCAqCC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ElementHandle } from '@playwright/test';
|
|
2
|
+
import { OpenSumiViewBase } from './view-base';
|
|
3
|
+
export declare class OpenSumiCommandPalette extends OpenSumiViewBase {
|
|
4
|
+
static USER_KEY_TYPING_DELAY: number;
|
|
5
|
+
open(): Promise<void>;
|
|
6
|
+
isOpen(): Promise<boolean>;
|
|
7
|
+
trigger(...commandName: string[]): Promise<void>;
|
|
8
|
+
protected triggerSingleCommand(commandName: string): Promise<void>;
|
|
9
|
+
type(command: string): Promise<void>;
|
|
10
|
+
protected selectedCommand(): Promise<ElementHandle<SVGElement | HTMLElement> | null>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=quick-command-palette.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quick-command-palette.d.ts","sourceRoot":"","sources":["../src/quick-command-palette.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAKjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,qBAAa,sBAAuB,SAAQ,gBAAgB;IAC1D,MAAM,CAAC,qBAAqB,SAAO;IAE7B,IAAI;IAKJ,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAS1B,OAAO,CAAC,GAAG,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;cAMtC,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYlE,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAW1B,eAAe,IAAI,OAAO,CAAC,aAAa,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,IAAI,CAAC;CAQ3F"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OpenSumiCommandPalette = void 0;
|
|
4
|
+
const ide_utils_1 = require("@opensumi/ide-utils");
|
|
5
|
+
const constans_1 = require("./constans");
|
|
6
|
+
const view_base_1 = require("./view-base");
|
|
7
|
+
class OpenSumiCommandPalette extends view_base_1.OpenSumiViewBase {
|
|
8
|
+
async open() {
|
|
9
|
+
await this.page.keyboard.press(ide_utils_1.isMacintosh ? 'Meta+Shift+p' : 'Control+Shift+p');
|
|
10
|
+
await this.page.waitForSelector(`#${constans_1.OPENSUMI_VIEW_CONTAINERS.QUICKPICK}`);
|
|
11
|
+
}
|
|
12
|
+
async isOpen() {
|
|
13
|
+
try {
|
|
14
|
+
await this.page.waitForSelector(`#${constans_1.OPENSUMI_VIEW_CONTAINERS.QUICKPICK}`, { timeout: 5000 });
|
|
15
|
+
}
|
|
16
|
+
catch (err) {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
return true;
|
|
20
|
+
}
|
|
21
|
+
async trigger(...commandName) {
|
|
22
|
+
for (const command of commandName) {
|
|
23
|
+
await this.triggerSingleCommand(command);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
async triggerSingleCommand(commandName) {
|
|
27
|
+
if (!(await this.isOpen())) {
|
|
28
|
+
await this.open();
|
|
29
|
+
}
|
|
30
|
+
let selected = await this.selectedCommand();
|
|
31
|
+
while (!((await (selected === null || selected === void 0 ? void 0 : selected.getAttribute('aria-label'))) === commandName)) {
|
|
32
|
+
await this.page.keyboard.press('ArrowDown');
|
|
33
|
+
selected = await this.selectedCommand();
|
|
34
|
+
}
|
|
35
|
+
await this.page.keyboard.press('Enter');
|
|
36
|
+
}
|
|
37
|
+
async type(command) {
|
|
38
|
+
if (!(await this.isOpen())) {
|
|
39
|
+
await this.open();
|
|
40
|
+
}
|
|
41
|
+
const input = await this.page.waitForSelector(`#${constans_1.OPENSUMI_VIEW_CONTAINERS.QUICKPICK_INPUT}`);
|
|
42
|
+
if (input != null) {
|
|
43
|
+
await input.focus();
|
|
44
|
+
await input.type(command, { delay: OpenSumiCommandPalette.USER_KEY_TYPING_DELAY });
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
async selectedCommand() {
|
|
48
|
+
const command = await this.page.waitForSelector(`#${constans_1.OPENSUMI_VIEW_CONTAINERS.QUICKPICK}`);
|
|
49
|
+
if (!command) {
|
|
50
|
+
throw new Error('No selected command found!');
|
|
51
|
+
}
|
|
52
|
+
const item = await command.$("[class*='item_selected']");
|
|
53
|
+
return item;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
exports.OpenSumiCommandPalette = OpenSumiCommandPalette;
|
|
57
|
+
OpenSumiCommandPalette.USER_KEY_TYPING_DELAY = 100;
|
|
58
|
+
//# sourceMappingURL=quick-command-palette.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quick-command-palette.js","sourceRoot":"","sources":["../src/quick-command-palette.ts"],"names":[],"mappings":";;;AAEA,mDAAkD;AAElD,yCAAsD;AACtD,2CAA+C;AAE/C,MAAa,sBAAuB,SAAQ,4BAAgB;IAG1D,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,uBAAW,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;QACjF,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,mCAAwB,CAAC,SAAS,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,MAAM;QACV,IAAI;YACF,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,mCAAwB,CAAC,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;SAC9F;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAG,WAAqB;QACpC,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE;YACjC,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;SAC1C;IACH,CAAC;IAES,KAAK,CAAC,oBAAoB,CAAC,WAAmB;QACtD,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;YAC1B,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;SACnB;QACD,IAAI,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC5C,OAAO,CAAC,CAAC,CAAC,MAAM,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,YAAY,CAAC,YAAY,CAAC,CAAA,CAAC,KAAK,WAAW,CAAC,EAAE;YACtE,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAC5C,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;SACzC;QACD,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAe;QACxB,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;YAC1B,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;SACnB;QACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,mCAAwB,CAAC,eAAe,EAAE,CAAC,CAAC;QAC9F,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;YACpB,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,sBAAsB,CAAC,qBAAqB,EAAE,CAAC,CAAC;SACpF;IACH,CAAC;IAES,KAAK,CAAC,eAAe;QAC7B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,mCAAwB,CAAC,SAAS,EAAE,CAAC,CAAC;QAC1F,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;SAC/C;QACD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC;IACd,CAAC;;AArDH,wDAsDC;AArDQ,4CAAqB,GAAG,GAAG,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ElementHandle } from '@playwright/test';
|
|
2
|
+
import { OpenSumiViewBase } from './view-base';
|
|
3
|
+
export declare class OpenSumiQuickOpenPalette extends OpenSumiViewBase {
|
|
4
|
+
static USER_KEY_TYPING_DELAY: number;
|
|
5
|
+
open(): Promise<void>;
|
|
6
|
+
isOpen(): Promise<boolean>;
|
|
7
|
+
trigger(...commandName: string[]): Promise<void>;
|
|
8
|
+
protected triggerSingleCommand(commandName: string): Promise<void>;
|
|
9
|
+
type(command: string): Promise<void>;
|
|
10
|
+
protected selectedCommand(): Promise<ElementHandle<SVGElement | HTMLElement> | null>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=quick-open-palette.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quick-open-palette.d.ts","sourceRoot":"","sources":["../src/quick-open-palette.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAKjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,qBAAa,wBAAyB,SAAQ,gBAAgB;IAC5D,MAAM,CAAC,qBAAqB,SAAO;IAE7B,IAAI;IAKJ,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAS1B,OAAO,CAAC,GAAG,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;cAMtC,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYlE,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAW1B,eAAe,IAAI,OAAO,CAAC,aAAa,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,IAAI,CAAC;CAQ3F"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OpenSumiQuickOpenPalette = void 0;
|
|
4
|
+
const ide_utils_1 = require("@opensumi/ide-utils");
|
|
5
|
+
const constans_1 = require("./constans");
|
|
6
|
+
const view_base_1 = require("./view-base");
|
|
7
|
+
class OpenSumiQuickOpenPalette extends view_base_1.OpenSumiViewBase {
|
|
8
|
+
async open() {
|
|
9
|
+
await this.page.keyboard.press(ide_utils_1.isMacintosh ? 'Meta+p' : 'Control+p');
|
|
10
|
+
await this.page.waitForSelector(`#${constans_1.OPENSUMI_VIEW_CONTAINERS.QUICKPICK}`);
|
|
11
|
+
}
|
|
12
|
+
async isOpen() {
|
|
13
|
+
try {
|
|
14
|
+
await this.page.waitForSelector(`#${constans_1.OPENSUMI_VIEW_CONTAINERS.QUICKPICK}`, { timeout: 5000 });
|
|
15
|
+
}
|
|
16
|
+
catch (err) {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
return true;
|
|
20
|
+
}
|
|
21
|
+
async trigger(...commandName) {
|
|
22
|
+
for (const command of commandName) {
|
|
23
|
+
await this.triggerSingleCommand(command);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
async triggerSingleCommand(commandName) {
|
|
27
|
+
if (!(await this.isOpen())) {
|
|
28
|
+
await this.open();
|
|
29
|
+
}
|
|
30
|
+
let selected = await this.selectedCommand();
|
|
31
|
+
while (!((await (selected === null || selected === void 0 ? void 0 : selected.getAttribute('aria-label'))) === commandName)) {
|
|
32
|
+
await this.page.keyboard.press('ArrowDown');
|
|
33
|
+
selected = await this.selectedCommand();
|
|
34
|
+
}
|
|
35
|
+
await this.page.keyboard.press('Enter');
|
|
36
|
+
}
|
|
37
|
+
async type(command) {
|
|
38
|
+
if (!(await this.isOpen())) {
|
|
39
|
+
await this.open();
|
|
40
|
+
}
|
|
41
|
+
const input = await this.page.waitForSelector(`#${constans_1.OPENSUMI_VIEW_CONTAINERS.QUICKPICK_INPUT}`);
|
|
42
|
+
if (input != null) {
|
|
43
|
+
await input.focus();
|
|
44
|
+
await input.type(command, { delay: OpenSumiQuickOpenPalette.USER_KEY_TYPING_DELAY });
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
async selectedCommand() {
|
|
48
|
+
const command = await this.page.waitForSelector(`#${constans_1.OPENSUMI_VIEW_CONTAINERS.QUICKPICK}`);
|
|
49
|
+
if (!command) {
|
|
50
|
+
throw new Error('No selected command found!');
|
|
51
|
+
}
|
|
52
|
+
const item = await command.$("[class*='item_selected']");
|
|
53
|
+
return item;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
exports.OpenSumiQuickOpenPalette = OpenSumiQuickOpenPalette;
|
|
57
|
+
OpenSumiQuickOpenPalette.USER_KEY_TYPING_DELAY = 100;
|
|
58
|
+
//# sourceMappingURL=quick-open-palette.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quick-open-palette.js","sourceRoot":"","sources":["../src/quick-open-palette.ts"],"names":[],"mappings":";;;AAEA,mDAAkD;AAElD,yCAAsD;AACtD,2CAA+C;AAE/C,MAAa,wBAAyB,SAAQ,4BAAgB;IAG5D,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,uBAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QACrE,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,mCAAwB,CAAC,SAAS,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,MAAM;QACV,IAAI;YACF,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,mCAAwB,CAAC,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;SAC9F;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAG,WAAqB;QACpC,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE;YACjC,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;SAC1C;IACH,CAAC;IAES,KAAK,CAAC,oBAAoB,CAAC,WAAmB;QACtD,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;YAC1B,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;SACnB;QACD,IAAI,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC5C,OAAO,CAAC,CAAC,CAAC,MAAM,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,YAAY,CAAC,YAAY,CAAC,CAAA,CAAC,KAAK,WAAW,CAAC,EAAE;YACtE,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAC5C,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;SACzC;QACD,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAe;QACxB,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;YAC1B,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;SACnB;QACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,mCAAwB,CAAC,eAAe,EAAE,CAAC,CAAC;QAC9F,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;YACpB,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,wBAAwB,CAAC,qBAAqB,EAAE,CAAC,CAAC;SACtF;IACH,CAAC;IAES,KAAK,CAAC,eAAe;QAC7B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,mCAAwB,CAAC,SAAS,EAAE,CAAC,CAAC;QAC1F,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;SAC/C;QACD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC;IACd,CAAC;;AArDH,4DAsDC;AArDQ,8CAAqB,GAAG,GAAG,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-view.d.ts","sourceRoot":"","sources":["../src/search-view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,qBAAa,kBAAmB,SAAQ,aAAa;IACnD,EAAE,SAAY;CACf"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OpenSumiSearchView = void 0;
|
|
4
|
+
const panel_1 = require("./panel");
|
|
5
|
+
class OpenSumiSearchView extends panel_1.OpenSumiPanel {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(...arguments);
|
|
8
|
+
this.id = 'search';
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.OpenSumiSearchView = OpenSumiSearchView;
|
|
12
|
+
//# sourceMappingURL=search-view.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-view.js","sourceRoot":"","sources":["../src/search-view.ts"],"names":[],"mappings":";;;AAAA,mCAAwC;AAExC,MAAa,kBAAmB,SAAQ,qBAAa;IAArD;;QACE,OAAE,GAAG,QAAQ,CAAC;IAChB,CAAC;CAAA;AAFD,gDAEC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.test.d.ts","sourceRoot":"","sources":["../../src/tests/app.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const path_1 = tslib_1.__importDefault(require("path"));
|
|
5
|
+
const test_1 = require("@playwright/test");
|
|
6
|
+
const app_1 = require("../app");
|
|
7
|
+
const workspace_1 = require("../workspace");
|
|
8
|
+
const hooks_1 = tslib_1.__importStar(require("./hooks"));
|
|
9
|
+
hooks_1.default.describe('Application', () => {
|
|
10
|
+
(0, hooks_1.default)('should show main layout', async () => {
|
|
11
|
+
const workspace = new workspace_1.OpenSumiWorkspace([path_1.default.resolve('./src/tests/workspaces/default')]);
|
|
12
|
+
const app = await app_1.OpenSumiApp.load(hooks_1.page, workspace);
|
|
13
|
+
(0, test_1.expect)(await app.isMainLayoutVisible()).toBe(true);
|
|
14
|
+
});
|
|
15
|
+
});
|
|
16
|
+
//# sourceMappingURL=app.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.test.js","sourceRoot":"","sources":["../../src/tests/app.test.ts"],"names":[],"mappings":";;;AAAA,wDAAwB;AAExB,2CAA0C;AAE1C,gCAAqC;AACrC,4CAAiD;AAEjD,yDAAqC;AAErC,eAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAChC,IAAA,eAAI,EAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,SAAS,GAAG,IAAI,6BAAiB,CAAC,CAAC,cAAI,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC;QAC1F,MAAM,GAAG,GAAG,MAAM,iBAAW,CAAC,IAAI,CAAC,YAAI,EAAE,SAAS,CAAC,CAAC;QACpD,IAAA,aAAM,EAAC,MAAM,GAAG,CAAC,mBAAmB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editor.test.d.ts","sourceRoot":"","sources":["../../src/tests/editor.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const path_1 = tslib_1.__importDefault(require("path"));
|
|
5
|
+
const test_1 = require("@playwright/test");
|
|
6
|
+
const app_1 = require("../app");
|
|
7
|
+
const constans_1 = require("../constans");
|
|
8
|
+
const explorer_view_1 = require("../explorer-view");
|
|
9
|
+
const text_editor_1 = require("../text-editor");
|
|
10
|
+
const workspace_1 = require("../workspace");
|
|
11
|
+
const hooks_1 = tslib_1.__importStar(require("./hooks"));
|
|
12
|
+
let app;
|
|
13
|
+
let explorer;
|
|
14
|
+
let editor;
|
|
15
|
+
let workspace;
|
|
16
|
+
hooks_1.default.describe('OpenSumi Editor', () => {
|
|
17
|
+
hooks_1.default.beforeAll(async () => {
|
|
18
|
+
workspace = new workspace_1.OpenSumiWorkspace([path_1.default.resolve('./src/tests/workspaces/default')]);
|
|
19
|
+
app = await app_1.OpenSumiApp.load(hooks_1.page, workspace);
|
|
20
|
+
explorer = await app.open(explorer_view_1.OpenSumiExplorerView);
|
|
21
|
+
explorer.initFileTreeView(workspace.workspace.displayName);
|
|
22
|
+
await explorer.fileTreeView.open();
|
|
23
|
+
});
|
|
24
|
+
hooks_1.default.afterAll(() => {
|
|
25
|
+
app.dispose();
|
|
26
|
+
});
|
|
27
|
+
(0, hooks_1.default)('open editor.js on the editor with preview', async () => {
|
|
28
|
+
editor = await app.openEditor(text_editor_1.OpenSumiTextEditor, explorer, 'editor.js');
|
|
29
|
+
const isPreview = await editor.isPreview();
|
|
30
|
+
(0, test_1.expect)(isPreview).toBeTruthy();
|
|
31
|
+
});
|
|
32
|
+
(0, hooks_1.default)('open editor.js on the editor without preview', async () => {
|
|
33
|
+
editor = await app.openEditor(text_editor_1.OpenSumiTextEditor, explorer, 'editor.js', false);
|
|
34
|
+
const isPreview = await editor.isPreview();
|
|
35
|
+
(0, test_1.expect)(isPreview).toBeFalsy();
|
|
36
|
+
});
|
|
37
|
+
(0, hooks_1.default)('editor dirty status should be update immediately after typing and saving', async () => {
|
|
38
|
+
await editor.addTextToNewLineAfterLineByLineNumber(1, `const a = 'a';
|
|
39
|
+
console.log(a);`);
|
|
40
|
+
let isDirty = await editor.isDirty();
|
|
41
|
+
(0, test_1.expect)(isDirty).toBeTruthy();
|
|
42
|
+
await editor.save();
|
|
43
|
+
await app.page.waitForTimeout(200);
|
|
44
|
+
isDirty = await editor.isDirty();
|
|
45
|
+
(0, test_1.expect)(isDirty).toBeFalsy();
|
|
46
|
+
});
|
|
47
|
+
(0, hooks_1.default)('copy path from file explorer to the editor content', async () => {
|
|
48
|
+
const node = await explorer.getFileStatTreeNodeByPath('editor.js');
|
|
49
|
+
let fileMenu = await (node === null || node === void 0 ? void 0 : node.openContextMenu());
|
|
50
|
+
(0, test_1.expect)(await (fileMenu === null || fileMenu === void 0 ? void 0 : fileMenu.isOpen())).toBeTruthy();
|
|
51
|
+
const copyPath = await (fileMenu === null || fileMenu === void 0 ? void 0 : fileMenu.menuItemByName('Copy Path'));
|
|
52
|
+
await (copyPath === null || copyPath === void 0 ? void 0 : copyPath.click());
|
|
53
|
+
await editor.addTextToNewLineAfterLineByLineNumber(3, 'File Path: ');
|
|
54
|
+
// cause of https://github.com/microsoft/playwright/issues/8114
|
|
55
|
+
// we can just using keypress to fake the paste feature
|
|
56
|
+
let editorMenu = await editor.openLineContextMenuByLineNumber(4);
|
|
57
|
+
(0, test_1.expect)(await (editorMenu === null || editorMenu === void 0 ? void 0 : editorMenu.isOpen())).toBeTruthy();
|
|
58
|
+
let paste = await (editorMenu === null || editorMenu === void 0 ? void 0 : editorMenu.menuItemByName('Paste'));
|
|
59
|
+
await (paste === null || paste === void 0 ? void 0 : paste.click());
|
|
60
|
+
await app.page.waitForTimeout(200);
|
|
61
|
+
(0, test_1.expect)(await editor.numberOfLines()).toBe(4);
|
|
62
|
+
(0, test_1.expect)(await editor.textContentOfLineContainingText(`File Path: ${workspace.workspace.resolve('editor.js').codeUri.fsPath.toString()}`)).toBeTruthy();
|
|
63
|
+
fileMenu = await (node === null || node === void 0 ? void 0 : node.openContextMenu());
|
|
64
|
+
const copyRelativePath = await (fileMenu === null || fileMenu === void 0 ? void 0 : fileMenu.menuItemByName('Copy Relative Path'));
|
|
65
|
+
await (copyRelativePath === null || copyRelativePath === void 0 ? void 0 : copyRelativePath.click());
|
|
66
|
+
await app.page.waitForTimeout(200);
|
|
67
|
+
await editor.addTextToNewLineAfterLineByLineNumber(4, 'File Relative Path: ');
|
|
68
|
+
editorMenu = await editor.openLineContextMenuByLineNumber(5);
|
|
69
|
+
(0, test_1.expect)(await (editorMenu === null || editorMenu === void 0 ? void 0 : editorMenu.isOpen())).toBeTruthy();
|
|
70
|
+
paste = await (editorMenu === null || editorMenu === void 0 ? void 0 : editorMenu.menuItemByName('Paste'));
|
|
71
|
+
await (paste === null || paste === void 0 ? void 0 : paste.click());
|
|
72
|
+
await app.page.waitForTimeout(200);
|
|
73
|
+
(0, test_1.expect)(await editor.numberOfLines()).toBe(5);
|
|
74
|
+
(0, test_1.expect)(await editor.textContentOfLineContainingText('File Relative Path: editor.js')).toBeTruthy();
|
|
75
|
+
});
|
|
76
|
+
(0, hooks_1.default)('Go to Symbol... should be worked', async () => {
|
|
77
|
+
editor = await app.openEditor(text_editor_1.OpenSumiTextEditor, explorer, 'editor2.js');
|
|
78
|
+
const editorMenu = await editor.openLineContextMenuByLineNumber(1);
|
|
79
|
+
(0, test_1.expect)(await (editorMenu === null || editorMenu === void 0 ? void 0 : editorMenu.isOpen())).toBeTruthy();
|
|
80
|
+
const goto = await (editorMenu === null || editorMenu === void 0 ? void 0 : editorMenu.menuItemByName('Go to Symbol...'));
|
|
81
|
+
await (goto === null || goto === void 0 ? void 0 : goto.click());
|
|
82
|
+
await app.page.waitForTimeout(200);
|
|
83
|
+
const input = await app.page.waitForSelector(`#${constans_1.OPENSUMI_VIEW_CONTAINERS.QUICKPICK_INPUT}`);
|
|
84
|
+
await input.focus();
|
|
85
|
+
await app.page.keyboard.press('ArrowDown');
|
|
86
|
+
await app.page.keyboard.press('ArrowDown');
|
|
87
|
+
await app.page.keyboard.press('Enter');
|
|
88
|
+
await app.page.keyboard.press('Delete');
|
|
89
|
+
(0, test_1.expect)(await editor.textContentOfLineContainingText('Person.prototype.getAge = ;')).toBeTruthy();
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
//# sourceMappingURL=editor.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editor.test.js","sourceRoot":"","sources":["../../src/tests/editor.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"explorer-view.test.d.ts","sourceRoot":"","sources":["../../src/tests/explorer-view.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const path_1 = tslib_1.__importDefault(require("path"));
|
|
5
|
+
const test_1 = require("@playwright/test");
|
|
6
|
+
const app_1 = require("../app");
|
|
7
|
+
const explorer_view_1 = require("../explorer-view");
|
|
8
|
+
const workspace_1 = require("../workspace");
|
|
9
|
+
const hooks_1 = tslib_1.__importStar(require("./hooks"));
|
|
10
|
+
let app;
|
|
11
|
+
let explorer;
|
|
12
|
+
let fileTreeView;
|
|
13
|
+
hooks_1.default.describe('OpenSumi Explorer Panel', () => {
|
|
14
|
+
hooks_1.default.beforeAll(async () => {
|
|
15
|
+
const workspace = new workspace_1.OpenSumiWorkspace([path_1.default.resolve('./src/tests/workspaces/default')]);
|
|
16
|
+
app = await app_1.OpenSumiApp.load(hooks_1.page, workspace);
|
|
17
|
+
explorer = await app.open(explorer_view_1.OpenSumiExplorerView);
|
|
18
|
+
explorer.initFileTreeView(workspace.workspace.displayName);
|
|
19
|
+
fileTreeView = explorer.fileTreeView;
|
|
20
|
+
});
|
|
21
|
+
hooks_1.default.afterAll(() => {
|
|
22
|
+
app.dispose();
|
|
23
|
+
});
|
|
24
|
+
(0, hooks_1.default)('should show file explorer', async () => {
|
|
25
|
+
(0, test_1.expect)(explorer.isVisible()).toBeTruthy();
|
|
26
|
+
await fileTreeView.open();
|
|
27
|
+
(0, test_1.expect)(fileTreeView.isVisible()).toBeTruthy();
|
|
28
|
+
});
|
|
29
|
+
(0, hooks_1.default)('can new single file by context menu', async () => {
|
|
30
|
+
var _a;
|
|
31
|
+
(0, test_1.expect)(explorer.isVisible()).toBeTruthy();
|
|
32
|
+
await fileTreeView.open();
|
|
33
|
+
(0, test_1.expect)(fileTreeView.isVisible()).toBeTruthy();
|
|
34
|
+
const node = await explorer.getFileStatTreeNodeByPath('test');
|
|
35
|
+
await (node === null || node === void 0 ? void 0 : node.expand());
|
|
36
|
+
(0, test_1.expect)(await (node === null || node === void 0 ? void 0 : node.isCollapsed())).toBeFalsy();
|
|
37
|
+
const menu = await (node === null || node === void 0 ? void 0 : node.openContextMenu());
|
|
38
|
+
(0, test_1.expect)(await (menu === null || menu === void 0 ? void 0 : menu.isOpen())).toBeTruthy();
|
|
39
|
+
const newFileMenu = await (menu === null || menu === void 0 ? void 0 : menu.menuItemByIndex(0));
|
|
40
|
+
await (newFileMenu === null || newFileMenu === void 0 ? void 0 : newFileMenu.click());
|
|
41
|
+
// type `new_file` as the file name
|
|
42
|
+
const newFileName = 'new_file';
|
|
43
|
+
const input = await ((_a = (await fileTreeView.getViewElement())) === null || _a === void 0 ? void 0 : _a.waitForSelector('.kt-input-box'));
|
|
44
|
+
if (input != null) {
|
|
45
|
+
await input.focus();
|
|
46
|
+
await input.type(newFileName, { delay: 200 });
|
|
47
|
+
await app.page.keyboard.press('Enter');
|
|
48
|
+
}
|
|
49
|
+
await app.page.waitForTimeout(200);
|
|
50
|
+
const newFile = await explorer.getFileStatTreeNodeByPath(`test/${newFileName}`);
|
|
51
|
+
(0, test_1.expect)(newFile).toBeDefined();
|
|
52
|
+
(0, test_1.expect)(await (newFile === null || newFile === void 0 ? void 0 : newFile.isFolder())).toBeFalsy();
|
|
53
|
+
});
|
|
54
|
+
(0, hooks_1.default)('can new folder by context menu', async () => {
|
|
55
|
+
var _a;
|
|
56
|
+
(0, test_1.expect)(explorer.isVisible()).toBeTruthy();
|
|
57
|
+
await fileTreeView.open();
|
|
58
|
+
(0, test_1.expect)(fileTreeView.isVisible()).toBeTruthy();
|
|
59
|
+
const node = await explorer.getFileStatTreeNodeByPath('test');
|
|
60
|
+
await (node === null || node === void 0 ? void 0 : node.expand());
|
|
61
|
+
(0, test_1.expect)(await (node === null || node === void 0 ? void 0 : node.isCollapsed())).toBeFalsy();
|
|
62
|
+
const menu = await (node === null || node === void 0 ? void 0 : node.openContextMenu());
|
|
63
|
+
(0, test_1.expect)(await (menu === null || menu === void 0 ? void 0 : menu.isOpen())).toBeTruthy();
|
|
64
|
+
const newFileMenu = await (menu === null || menu === void 0 ? void 0 : menu.menuItemByName('New Folder'));
|
|
65
|
+
await (newFileMenu === null || newFileMenu === void 0 ? void 0 : newFileMenu.click());
|
|
66
|
+
// type `new_file` as the file name
|
|
67
|
+
const newFileName = 'new_Folder';
|
|
68
|
+
const input = await ((_a = (await fileTreeView.getViewElement())) === null || _a === void 0 ? void 0 : _a.waitForSelector('.kt-input-box'));
|
|
69
|
+
if (input != null) {
|
|
70
|
+
await input.focus();
|
|
71
|
+
await input.type(newFileName, { delay: 200 });
|
|
72
|
+
await app.page.keyboard.press('Enter');
|
|
73
|
+
}
|
|
74
|
+
await app.page.waitForTimeout(200);
|
|
75
|
+
const newFile = await explorer.getFileStatTreeNodeByPath(`test/${newFileName}`);
|
|
76
|
+
(0, test_1.expect)(newFile).toBeDefined();
|
|
77
|
+
(0, test_1.expect)(await (newFile === null || newFile === void 0 ? void 0 : newFile.isFolder())).toBeTruthy();
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
//# sourceMappingURL=explorer-view.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"explorer-view.test.js","sourceRoot":"","sources":["../../src/tests/explorer-view.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tests/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE9C,eAAO,IAAI,IAAI,EAAE,IAAI,CAAC;AAUtB,eAAe,IAAI,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.page = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const test_1 = tslib_1.__importDefault(require("@playwright/test"));
|
|
6
|
+
test_1.default.beforeAll(async ({ browser }) => {
|
|
7
|
+
// ref: https://playwright.dev/docs/api/class-browsercontext
|
|
8
|
+
const context = await browser.newContext({
|
|
9
|
+
permissions: ['clipboard-read', 'clipboard-write'],
|
|
10
|
+
});
|
|
11
|
+
exports.page = await context.newPage();
|
|
12
|
+
});
|
|
13
|
+
exports.default = test_1.default;
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tests/hooks/index.ts"],"names":[],"mappings":";;;;AAAA,oEAA8C;AAI9C,cAAI,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;IACnC,4DAA4D;IAC5D,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC;QACvC,WAAW,EAAE,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;KACnD,CAAC,CAAC;IACH,YAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;AACjC,CAAC,CAAC,CAAC;AAEH,kBAAe,cAAI,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-view.test.d.ts","sourceRoot":"","sources":["../../src/tests/search-view.test.ts"],"names":[],"mappings":""}
|