d5-testing-library 1.8.0-alpha.13 → 1.8.0-alpha.14

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.
@@ -119,6 +119,7 @@ declare function signIn(driver?: WebDriver): Promise<WebDriver>;
119
119
  * @returns {Promise<void>} A promise that resolves when the click action is complete.
120
120
  */
121
121
  declare const click: (webElement: WebElement, driver?: WebDriver) => Promise<void>;
122
+ declare const contextMenu: (webElement: WebElement, driver?: WebDriver) => Promise<void>;
122
123
 
123
124
  interface Editor {
124
125
  setValue(value: any): Promise<void>;
@@ -451,13 +452,27 @@ declare class FormEdit extends Form {
451
452
  closeButtonClick(): Promise<void>;
452
453
  }
453
454
 
454
- declare class ToolbarMenu extends AbstractElementWithParent {
455
- private readonly _formName;
455
+ declare abstract class AbstractDropDownMenuList extends AbstractElementWithParent {
456
+ protected abstract getButtonNameBy(name: string): By;
457
+ protected abstract getButtonTitleBy(name: string): By;
458
+ protected buttonNotDisplayedError(name: string): string;
459
+ private clickItemBy;
460
+ private clickItemByPath;
461
+ clickButton(name: string | string[]): Promise<void>;
462
+ clickButtonByTitle(title: string | string[]): Promise<void>;
463
+ isVisible(): Promise<boolean>;
464
+ }
465
+
466
+ declare abstract class AbstractDropDownMenuButton extends AbstractElementWithParent {
467
+ private readonly _list;
468
+ protected constructor(parentCssSelector: string, elementCssSelector: string, list: AbstractDropDownMenuList, driver?: WebDriver);
469
+ protected openDropdownMenu(): Promise<void>;
470
+ clickButton(name: string | string[]): Promise<void>;
471
+ clickButtonByTitle(title: string | string[]): Promise<void>;
472
+ }
473
+
474
+ declare class ToolbarMenu extends AbstractDropDownMenuButton {
456
475
  constructor(parentCssSelector: string, formName: string, name: string, driver?: WebDriver);
457
- private openDropdownMenu;
458
- private getCssSelectorToButton;
459
- private buttonNotDisplayedError;
460
- private goToButton;
461
476
  clickButton(name: string | string[]): Promise<void>;
462
477
  clickButtonByTitle(title: string | string[]): Promise<void>;
463
478
  }
@@ -488,7 +503,7 @@ declare class Cell extends AbstractElementWithParent {
488
503
  getIndex(): number;
489
504
  }
490
505
 
491
- interface ConstructorParams {
506
+ interface ConstructorParams$1 {
492
507
  parentCssSelector: string;
493
508
  headerCssSelector?: string;
494
509
  name?: string;
@@ -501,7 +516,7 @@ declare class Column extends AbstractElementWithParent {
501
516
  private _caption;
502
517
  private _name;
503
518
  protected headerCssSelector: string | undefined;
504
- constructor({ parentCssSelector, headerCssSelector, name, caption, index, driver }: ConstructorParams);
519
+ constructor({ parentCssSelector, headerCssSelector, name, caption, index, driver }: ConstructorParams$1);
505
520
  private set index(value);
506
521
  private get index();
507
522
  getElement(): Promise<WebElement>;
@@ -513,12 +528,19 @@ declare class Column extends AbstractElementWithParent {
513
528
  }
514
529
 
515
530
  declare class Row extends AbstractElementWithParent {
516
- index: number;
531
+ private readonly index;
517
532
  protected getColumnBy: (_: {
518
533
  title?: string;
519
534
  name?: string;
520
535
  }) => Column;
521
536
  protected fixedTableContentCssSelector: string;
537
+ /**
538
+ * @param parentCssSelector
539
+ * @param fixedTableContentCssSelector
540
+ * @param index починається з 0 (в getCssRowByIndexSelector додається +1)
541
+ * @param driver
542
+ * @param getColumnBy
543
+ */
522
544
  constructor(parentCssSelector: string, fixedTableContentCssSelector: string, index: number, driver?: WebDriver, getColumnBy?: (_: {
523
545
  title?: string;
524
546
  name?: string;
@@ -538,17 +560,59 @@ declare class Row extends AbstractElementWithParent {
538
560
  cancel(): Promise<void>;
539
561
  }
540
562
 
563
+ declare abstract class DXContextMenuList extends AbstractDropDownMenuList {
564
+ /**
565
+ * @param parentCssSelector
566
+ * @param classNames - Список класів. Починається з крапки
567
+ * @param driver
568
+ */
569
+ protected constructor(parentCssSelector: string, classNames: string, driver?: WebDriver);
570
+ protected getButtonTitleBy(title: string): By;
571
+ isVisible(): Promise<boolean>;
572
+ }
573
+
574
+ declare class ContextMenu extends DXContextMenuList {
575
+ private readonly _formName;
576
+ private _initFn;
577
+ constructor(cssClass: string, formName: string, driver?: WebDriver);
578
+ setInit(cb: () => Promise<void>): this;
579
+ protected getButtonNameBy(name: string): By;
580
+ clickButtonByTitle(title: string | string[]): Promise<void>;
581
+ clickButton(name: string | string[]): Promise<void>;
582
+ }
583
+
584
+ interface ConstructorParams {
585
+ parentCssSelector: string;
586
+ headerCssSelector: string;
587
+ fixedTableContentCssSelector: string;
588
+ contextMenuCssSelector: string;
589
+ tableContentCssSelector: string;
590
+ formName: string;
591
+ driver?: WebDriver;
592
+ }
541
593
  declare class Table extends AbstractElementWithParent {
542
594
  protected formName: string;
543
595
  protected headerCssSelector: string;
596
+ protected contextMenuCssSelector: string;
544
597
  protected fixedTableContentCssSelector: string;
545
598
  protected tableContentCssSelector: string;
546
- constructor(parentCssSelector: string, headerCssSelector: string, tableContentCssSelector: string, fixedTableContentCssSelector: string, formName: string, driver?: WebDriver);
599
+ constructor({ parentCssSelector, contextMenuCssSelector, tableContentCssSelector, headerCssSelector, fixedTableContentCssSelector, formName, driver }: ConstructorParams);
547
600
  private getColumnBy;
601
+ /**
602
+ * Отримати рядок по індексу.
603
+ * @param index починається з 0
604
+ */
548
605
  getRowByIndex(index: number): Row;
606
+ /**
607
+ * @param index починається з 0
608
+ */
549
609
  getColumnByIndex(index: number): Column;
550
610
  getColumnByTitle: (title: string) => Column;
551
611
  getColumnByName: (name: string) => Column;
612
+ /**
613
+ * Вибрати рядок по індексу.
614
+ * @param index починається з 0
615
+ */
552
616
  selectRowByIndex(index: number): Promise<void>;
553
617
  getRows(): Promise<Row[]>;
554
618
  getColumns(): Promise<Column[]>;
@@ -561,6 +625,28 @@ declare class Table extends AbstractElementWithParent {
561
625
  * expect(await form.field('Name').getValue()).toBe('test value');
562
626
  */
563
627
  field(name: string): FormField;
628
+ /**
629
+ * Возвращает список строк которые выделены
630
+ * @returns Row[]
631
+ * @example
632
+ * const form = new MyForm();
633
+ * //...
634
+ * await form.getSelectedRows();
635
+ */
636
+ getSelectedRows(): Promise<Row[]>;
637
+ /**
638
+ * Вызывает контекстное меню в области с данными.
639
+ * @param fieldName - имя поля
640
+ * @param [rowIndex] - индекс строки. Если значение не передано, то по умолчанию контекстное меню будет вызвано на первой выделенной строке.
641
+ * @throws {Error} Если нет выделенных строк, то выбросит исключение.
642
+ * @example
643
+ * const form = new MyForm();
644
+ * //...
645
+ * await form.contextMenu('FieldName').clickButton('OpenFormButton');
646
+ * // or
647
+ * await form.contextMenu('FieldName', 3).clickButton(['Group', 'ButtonInGroup']);
648
+ */
649
+ contextMenu(fieldName: string, rowIndex?: number): ContextMenu;
564
650
  }
565
651
 
566
652
  declare class FormFilterField extends AbstractEditor {
@@ -797,6 +883,7 @@ declare class ListForm extends Form {
797
883
  protected headerCssSelector: string;
798
884
  protected fixedTableContentCssSelector: string;
799
885
  protected tableContentCssSelector: string;
886
+ protected contextMenuCssSelector: string;
800
887
  constructor(driver: WebDriver);
801
888
  /**
802
889
  * Находит таблицу
@@ -866,4 +953,4 @@ declare class Dialog extends AbstractElement {
866
953
  button(text: string): DialogButton;
867
954
  }
868
955
 
869
- export { AbstractPage, ControlClass, Dialog, Editor, FilterPanel, FormEdit, FormField, FormFilterField, ListForm, LoginPage, NumberEditor, PanelFilterField, ReportForm, SubsystemsPanel, TextEditor, TreeView, byTestId, byTestIdCssSelector, click, config, createDriver, editorFactory, elementIsNotPresent, readonlyLocator, signIn, wait, waitElementIsVisible };
956
+ export { AbstractPage, ControlClass, Dialog, Editor, FilterPanel, FormEdit, FormField, FormFilterField, ListForm, LoginPage, NumberEditor, PanelFilterField, ReportForm, SubsystemsPanel, TextEditor, TreeView, byTestId, byTestIdCssSelector, click, config, contextMenu, createDriver, editorFactory, elementIsNotPresent, readonlyLocator, signIn, wait, waitElementIsVisible };
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  TreeView
3
- } from "./chunk-7IHH2VP3.mjs";
3
+ } from "./chunk-WYLPCDA5.mjs";
4
4
  import {
5
5
  FilterPanel,
6
6
  FormFilterField,
7
7
  ListForm,
8
8
  PanelFilterField
9
- } from "./chunk-YSGDK2Y2.mjs";
9
+ } from "./chunk-JLEBXO5Q.mjs";
10
10
  import {
11
11
  FormEdit
12
- } from "./chunk-E3O6YV4X.mjs";
12
+ } from "./chunk-SR3FJAYB.mjs";
13
13
  import {
14
14
  AbstractButton,
15
15
  AbstractElement,
@@ -24,13 +24,14 @@ import {
24
24
  byTestIdCssSelector,
25
25
  click,
26
26
  config,
27
+ contextMenu,
27
28
  createSubSystemTestId,
28
29
  editorFactory,
29
30
  fixElementStaleError,
30
31
  readonlyLocator,
31
32
  wait,
32
33
  waitElementIsVisible
33
- } from "./chunk-D7226XWY.mjs";
34
+ } from "./chunk-I42Z72TQ.mjs";
34
35
 
35
36
  // src/pageObjects/pages/LoginPage.ts
36
37
  var LOGIN_PATH = "/login";
@@ -321,6 +322,7 @@ export {
321
322
  byTestIdCssSelector,
322
323
  click,
323
324
  config,
325
+ contextMenu,
324
326
  createDriver,
325
327
  editorFactory,
326
328
  elementIsNotPresent,
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  TreeView
3
- } from "./chunk-7IHH2VP3.mjs";
3
+ } from "./chunk-WYLPCDA5.mjs";
4
4
  import {
5
5
  FilterPanel,
6
6
  FormFilterField,
7
7
  ListForm,
8
8
  PanelFilterField
9
- } from "./chunk-YSGDK2Y2.mjs";
9
+ } from "./chunk-JLEBXO5Q.mjs";
10
10
  import {
11
11
  FormEdit
12
- } from "./chunk-E3O6YV4X.mjs";
12
+ } from "./chunk-SR3FJAYB.mjs";
13
13
  import {
14
14
  AbstractButton,
15
15
  AbstractElement,
@@ -24,13 +24,14 @@ import {
24
24
  byTestIdCssSelector,
25
25
  click,
26
26
  config,
27
+ contextMenu,
27
28
  createSubSystemTestId,
28
29
  editorFactory,
29
30
  fixElementStaleError,
30
31
  readonlyLocator,
31
32
  wait,
32
33
  waitElementIsVisible
33
- } from "./chunk-D7226XWY.mjs";
34
+ } from "./chunk-I42Z72TQ.mjs";
34
35
 
35
36
  // src/pageObjects/pages/LoginPage.ts
36
37
  var LOGIN_PATH = "/login";
@@ -321,6 +322,7 @@ export {
321
322
  byTestIdCssSelector,
322
323
  click,
323
324
  config,
325
+ contextMenu,
324
326
  createDriver,
325
327
  editorFactory,
326
328
  elementIsNotPresent,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "d5-testing-library",
3
- "version": "1.8.0-alpha.13",
3
+ "version": "1.8.0-alpha.14",
4
4
  "description": "e2e testing D5 projects",
5
5
  "main": "dist/cjs/d5-testing-library.cjs",
6
6
  "module": "dist/d5-testing-library.legacy-esm.js",
@@ -20,6 +20,7 @@
20
20
  "scripts": {
21
21
  "clean": "rimraf dist",
22
22
  "build": "tsup",
23
+ "test": "jest",
23
24
  "changelog": "node ./scripts/releaseChangelog.mjs changelog -p v1.0.1",
24
25
  "prepublishOnly": "yarn clean",
25
26
  "prepack": "yarn build",
@@ -36,15 +37,26 @@
36
37
  "typescript": "5.3.3"
37
38
  },
38
39
  "devDependencies": {
39
- "@babel/core": "^7.23.9",
40
- "@types/node": "^20.11.16",
40
+ "@babel/core": "7.23.9",
41
+ "@types/node": "20.11.16",
42
+ "@types/jest": "29.5.14",
41
43
  "@types/selenium-webdriver": "4.1.26",
42
- "commander": "12.0.0",
43
- "esbuild-extra": "^0.3.1",
44
- "rimraf": "^5.0.5",
44
+ "commander": "12.1.0",
45
+ "esbuild-extra": "0.3.1",
46
+ "rimraf": "5.0.5",
47
+ "jest": "29.7.0",
48
+ "ts-jest": "29.2.5",
45
49
  "tsup": "7.0.0"
46
50
  },
47
51
  "peerDependencies": {
48
52
  "selenium-webdriver": "4.25.0"
53
+ },
54
+ "jest": {
55
+ "preset": "ts-jest",
56
+ "testEnvironment": "node",
57
+ "transformIgnorePatterns": [
58
+ "[/\\\\]node_modules[/\\\\].+[^esm]\\.(js|jsx|mjs|cjs|ts|tsx)$",
59
+ "^.+\\.module\\.(css|sass|scss)$"
60
+ ]
49
61
  }
50
62
  }
@@ -1,7 +0,0 @@
1
- import {
2
- FormEdit
3
- } from "./chunk-E3O6YV4X.mjs";
4
- import "./chunk-D7226XWY.mjs";
5
- export {
6
- FormEdit as default
7
- };
@@ -1,7 +0,0 @@
1
- import {
2
- ListForm
3
- } from "./chunk-YSGDK2Y2.mjs";
4
- import "./chunk-D7226XWY.mjs";
5
- export {
6
- ListForm as default
7
- };
@@ -1,8 +0,0 @@
1
- import {
2
- TreeView
3
- } from "./chunk-7IHH2VP3.mjs";
4
- import "./chunk-YSGDK2Y2.mjs";
5
- import "./chunk-D7226XWY.mjs";
6
- export {
7
- TreeView as default
8
- };