d5-testing-library 2.0.0-alpha.1 → 2.0.0-alpha.10

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.
@@ -1,4 +1,4 @@
1
- import { Page, Locator } from '@playwright/test';
1
+ import { Locator, Page } from '@playwright/test';
2
2
  import * as playwright_core from 'playwright-core';
3
3
 
4
4
  type IConfig = {
@@ -9,13 +9,14 @@ type IConfig = {
9
9
  };
10
10
  declare function config(cfg?: IConfig): IConfig;
11
11
 
12
- declare abstract class AbstractElement {
12
+ declare abstract class AbstractElement<TLocator extends Locator | Promise<Locator> = Locator> {
13
13
  page: Page;
14
14
  protected elementCssSelector: string;
15
15
  protected constructor(page: Page, elementCssSelector?: string);
16
16
  protected getFullCssSelector(): string;
17
17
  protected joinRelativeCssSelectors(selectors: string[]): string;
18
- getLocator(): Locator;
18
+ protected syncLocator(): Locator;
19
+ getLocator(): TLocator;
19
20
  getAttribute(attr: string): Promise<string>;
20
21
  getClasses(): Promise<string>;
21
22
  getDataTestId(): Promise<string>;
@@ -95,6 +96,7 @@ interface Editor {
95
96
  clear?(): Promise<void>;
96
97
  isReadonly?(): Promise<boolean>;
97
98
  isDisabled?(): Promise<boolean>;
99
+ download?(): Promise<string>;
98
100
  }
99
101
  declare enum ControlClass {
100
102
  Text = "text-control",
@@ -108,14 +110,15 @@ declare enum ControlClass {
108
110
  SingleDateRange = "single-date-range-control",
109
111
  BooleanSelector = "buttons-group",
110
112
  ButtonGroup = "button-group-field",
111
- HeaderFilterDictionary = "header-filter-dictionary"
113
+ HeaderFilterDictionary = "header-filter-dictionary",
114
+ FileUploader = "file-uploader"
112
115
  }
113
116
 
114
117
  interface ClearStrategy {
115
118
  clear(editor: Editor): Promise<void>;
116
119
  }
117
120
 
118
- declare abstract class AbstractElementWithParent extends AbstractElement {
121
+ declare abstract class AbstractElementWithParent<TLocator extends Locator | Promise<Locator> = Locator> extends AbstractElement<TLocator> {
119
122
  protected parentCssSelector: string;
120
123
  constructor(parentCssSelector: string, elementCssSelector: string, page: Page);
121
124
  protected getFullCssSelector(): string;
@@ -347,7 +350,13 @@ declare class EditorButton extends AbstractElementWithParent {
347
350
 
348
351
  declare class AbstractEditor extends AbstractElementWithParent implements Editor {
349
352
  protected editor: Editor;
350
- constructor(parentCssSelector: string, elementCssSelector: string, page: Page);
353
+ protected _titleCssSelector: string;
354
+ constructor({ parentCssSelector, elementCssSelector, titleCssSelector, page }: {
355
+ parentCssSelector: string;
356
+ elementCssSelector: string;
357
+ titleCssSelector: string;
358
+ page: Page;
359
+ });
351
360
  protected initEditor(): Promise<void>;
352
361
  /**
353
362
  * Возвращает значение в поле
@@ -404,6 +413,20 @@ declare class AbstractEditor extends AbstractElementWithParent implements Editor
404
413
  * await form.field('Name').button('editorButton).click()
405
414
  */
406
415
  button(name: string): EditorButton;
416
+ /**
417
+ * Повертає загловок едітора
418
+ * @example
419
+ * expect(await formEdit.field('NumberFld').title()).toBe('Title1');
420
+ * expect(await formEdit.field('TextFld').title()).toBe('Title2`);
421
+ */
422
+ title(): Promise<string>;
423
+ /**
424
+ * Вивантажує файл і повертає назву файла. Доступний тільки для поля FileUploader.
425
+ * @example
426
+ * const fileName = await formEdit.field('FileField').downloadFile();
427
+ * expect(filename()).toBe('file.pdf');
428
+ */
429
+ download(): Promise<string>;
407
430
  }
408
431
 
409
432
  declare class FormField extends AbstractEditor {
@@ -500,7 +523,7 @@ declare class ToolbarItem extends AbstractElementWithParent implements Button {
500
523
  get menu(): ToolbarMenu;
501
524
  }
502
525
 
503
- declare class Cell extends AbstractElementWithParent {
526
+ declare class Cell extends AbstractElementWithParent<Promise<Locator>> {
504
527
  private _index;
505
528
  private readonly getCellIndex;
506
529
  constructor(parentCssSelector: string, getCellIndex: () => Promise<number>, page: Page, index?: number);
@@ -509,7 +532,7 @@ declare class Cell extends AbstractElementWithParent {
509
532
  private getTagsValue;
510
533
  private getNumberValue;
511
534
  private getDateValue;
512
- element(): Promise<Locator>;
535
+ getLocator(): Promise<Locator>;
513
536
  getValue(): Promise<string | number | 1 | 0 | string[] | Date | Date[] | null>;
514
537
  getIndex(): number;
515
538
  }
@@ -522,7 +545,7 @@ interface ConstructorParams$1 {
522
545
  index?: number;
523
546
  page: Page;
524
547
  }
525
- declare class Column extends AbstractElementWithParent {
548
+ declare class Column extends AbstractElementWithParent<Promise<Locator>> {
526
549
  private _index;
527
550
  private _caption;
528
551
  private _name;
@@ -530,7 +553,7 @@ declare class Column extends AbstractElementWithParent {
530
553
  constructor({ parentCssSelector, headerCssSelector, name, caption, index, page }: ConstructorParams$1);
531
554
  private set index(value);
532
555
  private get index();
533
- element(): Promise<Locator>;
556
+ getLocator(): Promise<Locator>;
534
557
  private getColumnHeaderIndexBy;
535
558
  private getIndexByCaption;
536
559
  private getIndexByName;
@@ -23,7 +23,7 @@ import {
23
23
  readonlyLocator,
24
24
  wait,
25
25
  waitElementIsVisible_default
26
- } from "./chunk-75NROWLM.mjs";
26
+ } from "./chunk-GSTA5R4B.mjs";
27
27
  export {
28
28
  AbstractPage,
29
29
  ApiRequest,
@@ -23,7 +23,7 @@ import {
23
23
  readonlyLocator,
24
24
  wait,
25
25
  waitElementIsVisible_default
26
- } from "./chunk-75NROWLM.mjs";
26
+ } from "./chunk-GSTA5R4B.mjs";
27
27
  export {
28
28
  AbstractPage,
29
29
  ApiRequest,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "d5-testing-library",
3
- "version": "2.0.0-alpha.1",
3
+ "version": "2.0.0-alpha.10",
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",
@@ -25,7 +25,6 @@
25
25
  "scripts": {
26
26
  "clean": "rimraf dist",
27
27
  "build": "tsup",
28
- "test": "jest",
29
28
  "changelog": "node ./scripts/releaseChangelog.mjs changelog -p v1.0.1",
30
29
  "prepublishOnly": "yarn clean",
31
30
  "prepack": "yarn build",
@@ -39,30 +38,17 @@
39
38
  "license": "ISC",
40
39
  "dependencies": {
41
40
  "@playwright/test": "1.57.0",
42
- "selenium-webdriver": "4.38.0",
43
41
  "typescript": "5.8.2"
44
42
  },
45
43
  "devDependencies": {
46
44
  "@babel/core": "7.28.5",
47
- "@types/jest": "30.0.0",
48
45
  "@types/node": "24.9.1",
49
- "@types/selenium-webdriver": "4.35.2",
50
46
  "commander": "12.1.0",
51
47
  "esbuild-extra": "0.4.2",
52
- "jest": "30.2.0",
53
48
  "rimraf": "6.0.1",
54
- "ts-jest": "29.4.5",
55
49
  "tsup": "8.5.0"
56
50
  },
57
51
  "peerDependencies": {
58
- "selenium-webdriver": "4.38.0"
59
- },
60
- "jest": {
61
- "preset": "ts-jest",
62
- "testEnvironment": "node",
63
- "transformIgnorePatterns": [
64
- "[/\\\\]node_modules[/\\\\].+[^esm]\\.(js|jsx|mjs|cjs|ts|tsx)$",
65
- "^.+\\.module\\.(css|sass|scss)$"
66
- ]
52
+ "@playwright/test": "1.57.0"
67
53
  }
68
54
  }