@opensumi/playwright 2.21.4 → 2.21.5-next-1668665440.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.
Files changed (89) hide show
  1. package/lib/debug-view.js +1 -1
  2. package/lib/diff-editor.d.ts +4 -0
  3. package/lib/diff-editor.d.ts.map +1 -0
  4. package/lib/diff-editor.js +8 -0
  5. package/lib/diff-editor.js.map +1 -0
  6. package/lib/editor.d.ts +2 -2
  7. package/lib/editor.d.ts.map +1 -1
  8. package/lib/editor.js.map +1 -1
  9. package/lib/explorer-view.d.ts +1 -0
  10. package/lib/explorer-view.d.ts.map +1 -1
  11. package/lib/explorer-view.js +30 -9
  12. package/lib/explorer-view.js.map +1 -1
  13. package/lib/filetree-view.js +2 -2
  14. package/lib/filetree-view.js.map +1 -1
  15. package/lib/opened-editor-view.js +2 -2
  16. package/lib/opened-editor-view.js.map +1 -1
  17. package/lib/panel.js +2 -2
  18. package/lib/panel.js.map +1 -1
  19. package/lib/scm-view.d.ts +21 -0
  20. package/lib/scm-view.d.ts.map +1 -0
  21. package/lib/scm-view.js +65 -0
  22. package/lib/scm-view.js.map +1 -0
  23. package/lib/search-view.js +1 -1
  24. package/lib/source-control-view.d.ts +8 -0
  25. package/lib/source-control-view.d.ts.map +1 -0
  26. package/lib/source-control-view.js +45 -0
  27. package/lib/source-control-view.js.map +1 -0
  28. package/lib/tests/scm.test.js +41 -3
  29. package/lib/tests/scm.test.js.map +1 -1
  30. package/lib/tests/settings.test.d.ts +2 -0
  31. package/lib/tests/settings.test.d.ts.map +1 -0
  32. package/lib/tests/settings.test.js +83 -0
  33. package/lib/tests/settings.test.js.map +1 -0
  34. package/lib/text-editor.d.ts +2 -2
  35. package/lib/text-editor.d.ts.map +1 -1
  36. package/lib/text-editor.js.map +1 -1
  37. package/lib/tree-node.d.ts +3 -1
  38. package/lib/tree-node.d.ts.map +1 -1
  39. package/lib/tree-node.js +3 -3
  40. package/lib/tree-node.js.map +1 -1
  41. package/package.json +4 -3
  42. package/src/app.ts +135 -0
  43. package/src/component-editor.ts +64 -0
  44. package/src/constans/index.ts +18 -0
  45. package/src/context-menu.ts +27 -0
  46. package/src/debug-view.ts +24 -0
  47. package/src/diff-editor.ts +3 -0
  48. package/src/editor.ts +130 -0
  49. package/src/explorer-view.ts +142 -0
  50. package/src/filetree-view.ts +28 -0
  51. package/src/index.ts +19 -0
  52. package/src/menu-item.ts +40 -0
  53. package/src/menu.ts +69 -0
  54. package/src/menubar.ts +53 -0
  55. package/src/opened-editor-view.ts +28 -0
  56. package/src/panel.ts +50 -0
  57. package/src/quick-command-palette.ts +62 -0
  58. package/src/quick-open-palette.ts +62 -0
  59. package/src/scm-view.ts +73 -0
  60. package/src/search-view.ts +44 -0
  61. package/src/source-control-view.ts +44 -0
  62. package/src/terminal.ts +22 -0
  63. package/src/tests/app.test.ts +16 -0
  64. package/src/tests/debug.test.ts +68 -0
  65. package/src/tests/editor.test.ts +143 -0
  66. package/src/tests/explorer-view.test.ts +202 -0
  67. package/src/tests/hooks/index.ts +13 -0
  68. package/src/tests/keymaps.test.ts +118 -0
  69. package/src/tests/language.test.ts +55 -0
  70. package/src/tests/scm.test.ts +84 -0
  71. package/src/tests/search-view.test.ts +32 -0
  72. package/src/tests/settings.test.ts +103 -0
  73. package/src/tests/workspaces/debug/.sumi/launch.json +15 -0
  74. package/src/tests/workspaces/debug/index.js +18 -0
  75. package/src/tests/workspaces/default/editor.js +0 -0
  76. package/src/tests/workspaces/default/editor2.js +87 -0
  77. package/src/tests/workspaces/default/editor3.js +0 -0
  78. package/src/tests/workspaces/default/test/test.js +1 -0
  79. package/src/tests/workspaces/git-workspace/a.js +0 -0
  80. package/src/tests/workspaces/language/definition.ts +12 -0
  81. package/src/tests/workspaces/language/reference.ts +9 -0
  82. package/src/text-editor.ts +318 -0
  83. package/src/tree-node.ts +98 -0
  84. package/src/utils/element.ts +35 -0
  85. package/src/utils/index.ts +2 -0
  86. package/src/utils/key.ts +6 -0
  87. package/src/view-base.ts +11 -0
  88. package/src/view.ts +90 -0
  89. package/src/workspace.ts +36 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.test.js","sourceRoot":"","sources":["../../src/tests/settings.test.ts"],"names":[],"mappings":";;;AAAA,wDAAwB;AAExB,2CAA0C;AAE1C,gCAAqC;AACrC,0DAA8D;AAC9D,0CAAuD;AACvD,kDAAsD;AACtD,oDAAwD;AACxD,oCAA+C;AAC/C,4CAAiD;AAEjD,yDAAqC;AAErC,IAAI,GAAgB,CAAC;AACrB,IAAI,QAA8B,CAAC;AACnC,IAAI,SAA4B,CAAC;AAEjC,eAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IACvC,eAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACxB,SAAS,GAAG,IAAI,6BAAiB,CAAC,CAAC,cAAI,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC;QACpF,GAAG,GAAG,MAAM,iBAAW,CAAC,IAAI,CAAC,YAAI,EAAE,SAAS,CAAC,CAAC;QAC9C,QAAQ,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,oCAAoB,CAAC,CAAC;QAChD,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,eAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;QACjB,GAAG,CAAC,OAAO,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,KAAK,IAAI,EAAE;QAClC,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,mCAAwB,CAAC,WAAW,EAAE,CAAC,CAAC;QAC9F,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC;QAC7E,MAAM,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,KAAK,EAAE,CAAA,CAAC;QAC9B,MAAM,IAAI,GAAG,IAAI,kCAAmB,CAAC,GAAG,CAAC,CAAC;QAC1C,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC,CAAC;IAEF,IAAA,eAAI,EAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QAC7C,MAAM,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QACpC,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAA,2BAAmB,EAAC,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,mBAAmB,CAC1C,0CAAuB,EACvB,QAAQ,EACR,UAAU,EACV,2BAA2B,CAC5B,CAAC;QACF,IAAA,aAAM,EAAC,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;QAC9C,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,MAAM,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACpC,IAAA,aAAM,EAAC,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,IAAA,eAAI,EAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,gBAAgB,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,mBAAmB,CAC1C,0CAAuB,EACvB,QAAQ,EACR,UAAU,EACV,2BAA2B,CAC5B,CAAC;QACF,IAAA,aAAM,EAAC,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;QAC9C,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,IAAA,eAAI,EAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;;QAChD,MAAM,gBAAgB,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,mBAAmB,CAC1C,0CAAuB,EACvB,QAAQ,EACR,UAAU,EACV,2BAA2B,CAC5B,CAAC;QACF,IAAA,aAAM,EAAC,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;QAC9C,0CAA0C;QAC1C,MAAM,IAAI,GAAG,CAAC,MAAM,CAAA,MAAA,CAAC,MAAM,MAAM,CAAC,YAAY,EAAE,CAAC,0CAAE,EAAE,CAAC,iCAAiC,CAAC,CAAA,CAAC,IAAI,EAAE,CAAC;QAChG,IAAI,UAAU,CAAC;QACf,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACtB,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC;YACtC,IAAI,KAAK,KAAK,SAAS,EAAE;gBACvB,UAAU,GAAG,GAAG,CAAC;gBACjB,MAAM;aACP;SACF;QACD,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;QACzB,MAAM,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,CAAC,MAAM,CAAA,MAAA,CAAC,MAAM,MAAM,CAAC,YAAY,EAAE,CAAC,0CAAE,EAAE,CAAC,+BAA+B,CAAC,CAAA,CAAC,IAAI,EAAE,CAAC;QAC/F,IAAI,iBAAiB,CAAC;QACtB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACxB,MAAM,GAAG,GAAG,MAAM,CAAA,MAAA,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,0CAAE,WAAW,EAAE,CAAA,CAAC;YACrE,IAAI,GAAG,KAAK,mBAAmB,EAAE;gBAC/B,iBAAiB,GAAG,IAAI,CAAC;gBACzB,MAAM;aACP;SACF;QACD,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC;QAC7E,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;QACjC,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;QACzB,MAAM,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,aAAa,EAAE,CAAC;QAChD,IAAA,aAAM,EAAC,MAAM,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,WAAW,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -2,7 +2,7 @@ import { ElementHandle, Page } from '@playwright/test';
2
2
  import { OpenSumiApp } from './app';
3
3
  import { OpenSumiContextMenu } from './context-menu';
4
4
  import { OpenSumiEditor } from './editor';
5
- import { OpenSumiExplorerFileStatNode } from './explorer-view';
5
+ import { OpenSumiTreeNode } from './tree-node';
6
6
  declare abstract class ViewsModel {
7
7
  readonly page: Page;
8
8
  constructor(page: Page);
@@ -23,7 +23,7 @@ declare class OverlaysModel extends ViewsModel {
23
23
  export declare class OpenSumiTextEditor extends OpenSumiEditor {
24
24
  private glyphMarginModel;
25
25
  private overlaysModel;
26
- constructor(app: OpenSumiApp, filestatElement: OpenSumiExplorerFileStatNode);
26
+ constructor(app: OpenSumiApp, filestatElement: OpenSumiTreeNode);
27
27
  getGlyphMarginModel(): Promise<GlyphMarginModel>;
28
28
  getOverlaysModel(): Promise<OverlaysModel>;
29
29
  openLineContextMenuByLineNumber(lineNumber: number): Promise<OpenSumiContextMenu | undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"text-editor.d.ts","sourceRoot":"","sources":["../src/text-editor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"text-editor.d.ts","sourceRoot":"","sources":["../src/text-editor.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"text-editor.js","sourceRoot":"","sources":["../src/text-editor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"text-editor.js","sourceRoot":"","sources":["../src/text-editor.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ export interface IOpenSumiTreeNodeSelector {
10
10
  focusedClass: string;
11
11
  collapsedClass: string;
12
12
  }
13
- export declare class OpenSumiTreeNode {
13
+ export declare abstract class OpenSumiTreeNode {
14
14
  protected elementHandle: ElementHandle<SVGElement | HTMLElement>;
15
15
  protected app: OpenSumiApp;
16
16
  private selector;
@@ -25,5 +25,7 @@ export declare class OpenSumiTreeNode {
25
25
  expand(): Promise<void>;
26
26
  collapse(): Promise<void>;
27
27
  openContextMenu(): Promise<OpenSumiContextMenu>;
28
+ abstract getFsPath(): Promise<string | null>;
29
+ abstract open(preview?: boolean): Promise<void>;
28
30
  }
29
31
  //# sourceMappingURL=tree-node.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tree-node.d.ts","sourceRoot":"","sources":["../src/tree-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAErD,MAAM,WAAW,yBAAyB;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,gBAAgB;IAEzB,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC,UAAU,GAAG,WAAW,CAAC;IAChE,SAAS,CAAC,GAAG,EAAE,WAAW;IAC1B,OAAO,CAAC,QAAQ;gBAFN,aAAa,EAAE,aAAa,CAAC,UAAU,GAAG,WAAW,CAAC,EACtD,GAAG,EAAE,WAAW,EAClB,QAAQ,GAAE,yBAQjB;IAGG,mBAAmB;IAKnB,KAAK;IAQL,WAAW;IAQX,KAAK;IAQL,UAAU;IAMV,WAAW;IAIX,UAAU;IAIV,MAAM;IASN,QAAQ;IASR,eAAe;CAGtB"}
1
+ {"version":3,"file":"tree-node.d.ts","sourceRoot":"","sources":["../src/tree-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAErD,MAAM,WAAW,yBAAyB;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,8BAAsB,gBAAgB;IAElC,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC,UAAU,GAAG,WAAW,CAAC;IAChE,SAAS,CAAC,GAAG,EAAE,WAAW;IAC1B,OAAO,CAAC,QAAQ;gBAFN,aAAa,EAAE,aAAa,CAAC,UAAU,GAAG,WAAW,CAAC,EACtD,GAAG,EAAE,WAAW,EAClB,QAAQ,GAAE,yBAQjB;IAGG,mBAAmB;IAKnB,KAAK;IAQL,WAAW;IAQX,KAAK;IAQL,UAAU;IAMV,WAAW;IAIX,UAAU;IAIV,MAAM;IASN,QAAQ;IASR,eAAe;IAIrB,QAAQ,CAAC,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAC5C,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAChD"}
package/lib/tree-node.js CHANGED
@@ -4,9 +4,9 @@ exports.OpenSumiTreeNode = void 0;
4
4
  const context_menu_1 = require("./context-menu");
5
5
  class OpenSumiTreeNode {
6
6
  constructor(elementHandle, app, selector = {
7
- labelClass: "[class*='tree_node_displayname__']",
8
- descriptionClass: "[class*='tree_node_description__']",
9
- badgeClass: "[class*='tree_node_status___']",
7
+ labelClass: "[class*='node_displayname__']",
8
+ descriptionClass: "[class*='node_description__']",
9
+ badgeClass: "[class*='node_status___']",
10
10
  toggleClass: "[class*='expansion_toggle__']",
11
11
  selectedClass: "[class*='mod_selected__']",
12
12
  focusedClass: "[class*='mod_focused__']",
@@ -1 +1 @@
1
- {"version":3,"file":"tree-node.js","sourceRoot":"","sources":["../src/tree-node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tree-node.js","sourceRoot":"","sources":["../src/tree-node.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,9 +1,10 @@
1
1
  {
2
2
  "name": "@opensumi/playwright",
3
- "version": "2.21.4",
3
+ "version": "2.21.5-next-1668665440.0",
4
4
  "description": "E2E test module for OpenSumi",
5
5
  "files": [
6
- "lib"
6
+ "lib",
7
+ "src"
7
8
  ],
8
9
  "license": "MIT",
9
10
  "main": "lib/index.js",
@@ -33,5 +34,5 @@
33
34
  "allure-playwright": "^2.0.0-beta.14",
34
35
  "typescript": "4.6.4"
35
36
  },
36
- "gitHead": "d6077dd539ffbb19593e695f0adeae87644085c4"
37
+ "gitHead": "cfb5f249055bad47ed83e9cca1e15246bf01b54a"
37
38
  }
package/src/app.ts ADDED
@@ -0,0 +1,135 @@
1
+ import { Page } from '@playwright/test';
2
+
3
+ import { Disposable } from '@opensumi/ide-utils';
4
+
5
+ import { IComponentEditorInfo } from './component-editor';
6
+ import { OpenSumiEditor } from './editor';
7
+ import { OpenSumiExplorerView } from './explorer-view';
8
+ import { OpenSumiMenubar } from './menubar';
9
+ import { OpenSumiPanel } from './panel';
10
+ import { OpenSumiCommandPalette } from './quick-command-palette';
11
+ import { OpenSumiQuickOpenPalette } from './quick-open-palette';
12
+ import { OpenSumiTreeNode } from './tree-node';
13
+ import { OpenSumiWorkspace } from './workspace';
14
+
15
+ export interface AppData {
16
+ loadingSelector: string;
17
+ mainSelector: string;
18
+ }
19
+
20
+ export const DefaultAppData: AppData = {
21
+ loadingSelector: '.loading_indicator',
22
+ mainSelector: '#main',
23
+ };
24
+
25
+ export class OpenSumiApp extends Disposable {
26
+ private _loaded = false;
27
+ private _quickCommandPalette: OpenSumiCommandPalette;
28
+ private _quickOpenPalette: OpenSumiQuickOpenPalette;
29
+ private _menubar: OpenSumiMenubar;
30
+
31
+ static async load(page: Page, workspace: OpenSumiWorkspace): Promise<OpenSumiApp> {
32
+ return this.loadApp(page, workspace, OpenSumiApp);
33
+ }
34
+
35
+ static async loadApp<T extends OpenSumiApp>(
36
+ page: Page,
37
+ workspace: OpenSumiWorkspace,
38
+ appFactory: new (page: Page) => T,
39
+ ): Promise<T> {
40
+ await workspace.initWorksapce();
41
+ const app = new appFactory(page);
42
+ await app.load(workspace);
43
+ return app;
44
+ }
45
+
46
+ public constructor(public page: Page, protected appData = DefaultAppData) {
47
+ super();
48
+ this._quickCommandPalette = new OpenSumiCommandPalette(this);
49
+ this._quickOpenPalette = new OpenSumiQuickOpenPalette(this);
50
+ this._menubar = new OpenSumiMenubar(this);
51
+ }
52
+
53
+ get quickCommandPalette() {
54
+ return this._quickCommandPalette;
55
+ }
56
+
57
+ get quickOpenPalette() {
58
+ return this._quickOpenPalette;
59
+ }
60
+
61
+ get menubar() {
62
+ return this._menubar;
63
+ }
64
+
65
+ protected async load(workspace: OpenSumiWorkspace): Promise<void> {
66
+ this.disposables.push(workspace);
67
+ const now = Date.now();
68
+ await this.loadOrReload(this.page, `/#${workspace.workspace.codeUri.fsPath}`);
69
+ await this.page.waitForSelector(this.appData.loadingSelector, { state: 'detached' });
70
+ const time = Date.now() - now;
71
+ // eslint-disable-next-line no-console
72
+ console.log(`Loading page cost ${time} ms`);
73
+ await this.page.waitForSelector(this.appData.mainSelector);
74
+ await this.waitForInitialized();
75
+ }
76
+
77
+ protected async loadOrReload(page: Page, url = '/') {
78
+ if (!this._loaded) {
79
+ const wasLoadedAlready = await page.isVisible(this.appData.mainSelector);
80
+ await page.goto(url);
81
+ if (wasLoadedAlready) {
82
+ await page.reload();
83
+ }
84
+ this._loaded = true;
85
+ } else {
86
+ await page.reload();
87
+ }
88
+ }
89
+
90
+ async isMainLayoutVisible(): Promise<boolean> {
91
+ const contentPanel = await this.page.$('#main');
92
+ return !!contentPanel && contentPanel.isVisible();
93
+ }
94
+
95
+ async open<T extends OpenSumiPanel>(PanelConstruction: new (app: OpenSumiApp) => T) {
96
+ const panel = new PanelConstruction(this);
97
+ if (await panel.isVisible()) {
98
+ return panel;
99
+ }
100
+ await panel.open();
101
+ return panel;
102
+ }
103
+
104
+ async openEditor<T extends OpenSumiEditor>(
105
+ EditorConstruction: new (app: OpenSumiApp, element?: OpenSumiTreeNode) => T,
106
+ explorer: OpenSumiExplorerView,
107
+ filePath: string,
108
+ preview = true,
109
+ ) {
110
+ const node = await explorer.getFileStatTreeNodeByPath(filePath);
111
+ if (!node || (await node?.isFolder())) {
112
+ throw Error(`File ${filePath} could not be opened on the editor`);
113
+ }
114
+ const editor = new EditorConstruction(this, node);
115
+ await editor.open(preview);
116
+ return editor;
117
+ }
118
+
119
+ // use for component editors
120
+ async openComponentEditor<T extends OpenSumiEditor>(
121
+ EditorConstruction: new (app: OpenSumiApp, info: IComponentEditorInfo) => T,
122
+ path: string,
123
+ name: string,
124
+ containerSelector: string,
125
+ ) {
126
+ const editor = new EditorConstruction(this, { path, name, containerSelector });
127
+ await editor.open();
128
+ return editor;
129
+ }
130
+
131
+ async waitForInitialized(): Promise<void> {
132
+ // custom app initialize process.
133
+ // empty by default
134
+ }
135
+ }
@@ -0,0 +1,64 @@
1
+ import { OpenSumiApp } from './app';
2
+ import { OpenSumiContextMenu } from './context-menu';
3
+ import { OpenSumiEditor } from './editor';
4
+ import { isElementVisible } from './utils';
5
+
6
+ export interface IComponentEditorInfo {
7
+ path: string;
8
+ name: string;
9
+ containerSelector: string;
10
+ }
11
+
12
+ export class OpenSumiComponentEditor extends OpenSumiEditor {
13
+ constructor(app: OpenSumiApp, private readonly info: IComponentEditorInfo) {
14
+ super(app);
15
+ }
16
+
17
+ async openTabContextMenu() {
18
+ const view = await this.getTab();
19
+ if (!view) {
20
+ return;
21
+ }
22
+ return OpenSumiContextMenu.open(this.app, async () => view);
23
+ }
24
+
25
+ async close() {
26
+ const contextMenu = await this.openTabContextMenu();
27
+ await contextMenu?.isOpen();
28
+ const close = await contextMenu?.menuItemByName('Close');
29
+ await close?.click();
30
+ }
31
+
32
+ async getTab() {
33
+ const tabsItems = await (await this.getTabElement())?.$$("[class*='kt_editor_tab___']");
34
+
35
+ if (!tabsItems) {
36
+ return;
37
+ }
38
+
39
+ for (const item of tabsItems) {
40
+ const uri = await item.getAttribute('data-uri');
41
+ if (uri?.includes(this.info.path)) {
42
+ return item;
43
+ }
44
+ }
45
+ }
46
+
47
+ async getContainer() {
48
+ return await super.getContainer(this.info.containerSelector);
49
+ }
50
+
51
+ async isVisible() {
52
+ const container = await this.getContainer();
53
+ if (!container) {
54
+ return false;
55
+ }
56
+ return await isElementVisible(Promise.resolve(container));
57
+ }
58
+
59
+ async open() {
60
+ const tab = await this.getTab();
61
+ await tab?.click();
62
+ return this;
63
+ }
64
+ }
@@ -0,0 +1,18 @@
1
+ const VIEW_CONTAINERS_PREFIX = 'opensumi';
2
+
3
+ export namespace OPENSUMI_VIEW_CONTAINERS {
4
+ export const LEFT_TABBAR_PANEL = `${VIEW_CONTAINERS_PREFIX}-left-tabbar-panel`;
5
+ export const LEFT_TABBAR = `${VIEW_CONTAINERS_PREFIX}-left-tabbar`;
6
+ export const RIGHT_TABBAR_PANEL = `${VIEW_CONTAINERS_PREFIX}-right-tabbar-panel`;
7
+ export const RIGHT_TABBAR = `${VIEW_CONTAINERS_PREFIX}-right-tabbar`;
8
+ export const BOTTOM_TABBAR = `${VIEW_CONTAINERS_PREFIX}-bottom-tabbar`;
9
+ export const BOTTOM_TABBAR_PANEL = `${VIEW_CONTAINERS_PREFIX}-bottom-tabbar-panel`;
10
+ export const STATUSBAR = `${VIEW_CONTAINERS_PREFIX}-statusbar`;
11
+ export const MENUBAR = `${VIEW_CONTAINERS_PREFIX}-menubar`;
12
+ export const EDITOR = `${VIEW_CONTAINERS_PREFIX}-editor`;
13
+ export const EDITOR_TABS = `${VIEW_CONTAINERS_PREFIX}-editor-tabs`;
14
+ export const QUICKPICK = `${VIEW_CONTAINERS_PREFIX}-quickpick`;
15
+ export const QUICKPICK_INPUT = `${VIEW_CONTAINERS_PREFIX}-quickpick-input`;
16
+ export const QUICKPICK_TABS = `${VIEW_CONTAINERS_PREFIX}-quickpick-tabs`;
17
+ export const QUICKPICK_ITEM = `${VIEW_CONTAINERS_PREFIX}-quickpick-item`;
18
+ }
@@ -0,0 +1,27 @@
1
+ import { ElementHandle } from '@playwright/test';
2
+
3
+ import { OpenSumiApp } from './app';
4
+ import { OpenSumiMenu } from './menu';
5
+
6
+ export class OpenSumiContextMenu extends OpenSumiMenu {
7
+ public static async openAt(app: OpenSumiApp, x: number, y: number): Promise<OpenSumiContextMenu> {
8
+ await app.page.mouse.move(x, y);
9
+ await app.page.mouse.click(x, y, { button: 'right' });
10
+ return OpenSumiContextMenu.returnWhenVisible(app);
11
+ }
12
+
13
+ public static async open(
14
+ app: OpenSumiApp,
15
+ element: () => Promise<ElementHandle<SVGElement | HTMLElement>>,
16
+ ): Promise<OpenSumiContextMenu> {
17
+ const elementHandle = await element();
18
+ await elementHandle.click({ button: 'right' });
19
+ return OpenSumiContextMenu.returnWhenVisible(app);
20
+ }
21
+
22
+ private static async returnWhenVisible(app: OpenSumiApp): Promise<OpenSumiContextMenu> {
23
+ const menu = new OpenSumiContextMenu(app);
24
+ await menu.waitForVisible();
25
+ return menu;
26
+ }
27
+ }
@@ -0,0 +1,24 @@
1
+ import { OpenSumiApp } from './app';
2
+ import { OpenSumiPanel } from './panel';
3
+
4
+ export class OpenSumiDebugView extends OpenSumiPanel {
5
+ private selector = {
6
+ toolbarClass: "[class*='debug_configuration_toolbar___']",
7
+ actionStartID: "[id='debug.action.start']",
8
+ };
9
+
10
+ constructor(app: OpenSumiApp) {
11
+ super(app, 'DEBUG');
12
+ }
13
+
14
+ async start(): Promise<void> {
15
+ const toolbarLocator = this.app.page.locator(this.selector.toolbarClass);
16
+ if (!toolbarLocator) {
17
+ return;
18
+ }
19
+
20
+ const element = await toolbarLocator.elementHandle();
21
+ const startIcon = await element?.$(this.selector.actionStartID);
22
+ await startIcon?.click();
23
+ }
24
+ }
@@ -0,0 +1,3 @@
1
+ import { OpenSumiTextEditor } from './text-editor';
2
+
3
+ export class OpenSumiDiffEditor extends OpenSumiTextEditor {}
package/src/editor.ts ADDED
@@ -0,0 +1,130 @@
1
+ import { OpenSumiApp } from './app';
2
+ import { OPENSUMI_VIEW_CONTAINERS } from './constans';
3
+ import { OpenSumiTreeNode } from './tree-node';
4
+ import { OpenSumiView } from './view';
5
+
6
+ export class OpenSumiEditor extends OpenSumiView {
7
+ constructor(app: OpenSumiApp, private readonly filestatElement?: OpenSumiTreeNode) {
8
+ super(app, {
9
+ tabSelector: `#${OPENSUMI_VIEW_CONTAINERS.EDITOR_TABS}`,
10
+ viewSelector: `#${OPENSUMI_VIEW_CONTAINERS.EDITOR}`,
11
+ name: 'Editor',
12
+ });
13
+ }
14
+
15
+ async getTab() {
16
+ const path = (await this.filestatElement?.getFsPath()) || '';
17
+ const tabsItems = await (await this.getTabElement())?.$$("[class*='kt_editor_tab___']");
18
+
19
+ if (!tabsItems) {
20
+ return;
21
+ }
22
+
23
+ for (const item of tabsItems) {
24
+ const uri = await item.getAttribute('data-uri');
25
+ if (uri?.includes(path)) {
26
+ return item;
27
+ }
28
+ }
29
+ }
30
+
31
+ async getContainer(selector?: string) {
32
+ if (!selector) {
33
+ return;
34
+ }
35
+ const container = await (await this.getViewElement())?.$(selector);
36
+ return container;
37
+ }
38
+
39
+ async getCurrentTab() {
40
+ return await (await this.getTabElement())?.waitForSelector("[class*='kt_editor_tab_current___']");
41
+ }
42
+
43
+ async open(preview?: boolean) {
44
+ await this.filestatElement?.open(preview);
45
+ // waiting editor render, it maybe fail while opening a large file.
46
+ await this.app.page.waitForTimeout(1000);
47
+ return this;
48
+ }
49
+
50
+ async isPreview() {
51
+ const currentTab = await this.getTab();
52
+ const isPreview = (await currentTab?.getAttribute('class'))?.includes('kt_editor_tab_preview___');
53
+ return !!isPreview;
54
+ }
55
+
56
+ async isDirty() {
57
+ const dirtyIcon = await (await this.getTab())?.$("[class*='dirty___']");
58
+ const className = await dirtyIcon?.getAttribute('class');
59
+ const hidden = className?.includes('hidden__');
60
+ return !hidden;
61
+ }
62
+
63
+ async save() {
64
+ await this.activate();
65
+ if (!(await this.isDirty())) {
66
+ return;
67
+ }
68
+ const dirtyIcon = await (await this.getTab())?.$("[class*='dirty___']");
69
+ await this.app.menubar.trigger('File', 'Save File');
70
+ // waiting for saved
71
+ await dirtyIcon?.waitForElementState('hidden');
72
+ }
73
+
74
+ async close() {
75
+ const currentTab = await this.getTabElement();
76
+ await currentTab?.hover({
77
+ position: {
78
+ x: 10,
79
+ y: 10,
80
+ },
81
+ });
82
+ const closeIcon = await currentTab?.$("[class*='close_tab___']");
83
+ await closeIcon?.click();
84
+ }
85
+
86
+ async saveAndClose() {
87
+ await this.save();
88
+ await this.close();
89
+ }
90
+
91
+ async undo(times = 1) {
92
+ await this.activate();
93
+ for (let i = 0; i < times; i++) {
94
+ await this.app.menubar.trigger('Edit', 'Undo');
95
+ await this.app.page.waitForTimeout(200);
96
+ }
97
+ }
98
+
99
+ async redo(times = 1) {
100
+ await this.activate();
101
+ for (let i = 0; i < times; i++) {
102
+ await this.app.menubar.trigger('Edit', 'Redo');
103
+ await this.app.page.waitForTimeout(200);
104
+ }
105
+ }
106
+
107
+ async triggerTitleMenu(name: string) {
108
+ const tab = await this.getTabElement();
109
+ const actions = (await tab?.$$('[class*="iconAction___"]')) || [];
110
+ for (const action of actions) {
111
+ const title = await action.getAttribute('title');
112
+ if (title === name) {
113
+ await action.click();
114
+ break;
115
+ }
116
+ }
117
+ }
118
+
119
+ async triggerTitleMenuById(id: string) {
120
+ const tab = await this.getTabElement();
121
+ const actions = (await tab?.$$('[class*="iconAction___"]')) || [];
122
+ for (const action of actions) {
123
+ const title = await action.getAttribute('id');
124
+ if (title === id) {
125
+ await action.click();
126
+ break;
127
+ }
128
+ }
129
+ }
130
+ }