d5-testing-library 2.0.0-alpha.5 → 2.0.0-alpha.6

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,6 +1,6 @@
1
1
  import {
2
2
  FormEdit
3
- } from "./chunk-WFIWSDDW.mjs";
3
+ } from "./chunk-N4PDOG6U.mjs";
4
4
  export {
5
5
  FormEdit as default
6
6
  };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ListForm
3
- } from "./chunk-WFIWSDDW.mjs";
3
+ } from "./chunk-N4PDOG6U.mjs";
4
4
  export {
5
5
  ListForm as default
6
6
  };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  TreeView
3
- } from "./chunk-WFIWSDDW.mjs";
3
+ } from "./chunk-N4PDOG6U.mjs";
4
4
  export {
5
5
  TreeView as default
6
6
  };
@@ -2941,6 +2941,15 @@ function createSubSystemTestId(itemName) {
2941
2941
  function createEditorButtonTestId(itemName) {
2942
2942
  return `${"editor-button" /* EDITOR_BUTTON */}-${itemName}`;
2943
2943
  }
2944
+ function createLabelFieldTestId(formName, itemName) {
2945
+ return `${"label" /* LABEL */}-${createFieldTestId(formName, itemName)}`;
2946
+ }
2947
+ function createLabelDocFilterTestId(formName, itemName) {
2948
+ return `${"label" /* LABEL */}-${createDocFilterTestId(formName, itemName)}`;
2949
+ }
2950
+ function createLabelLayoutFilterTestId(formName, itemName) {
2951
+ return `${"label" /* LABEL */}-${createLayoutFilterTestId(formName, itemName)}`;
2952
+ }
2944
2953
 
2945
2954
  // src/pageObjects/AbstractElementWithParent.ts
2946
2955
  var AbstractElementWithParent = class extends AbstractElement {
@@ -3308,15 +3317,15 @@ async function classDependencyInjector(formType) {
3308
3317
  let SubFormFactoryClass;
3309
3318
  switch (formType) {
3310
3319
  case "1" /* LIST */:
3311
- SubFormFactoryClass = (await import("./ListForm-SD2263JC.mjs")).default;
3320
+ SubFormFactoryClass = (await import("./ListForm-H7E4GQWM.mjs")).default;
3312
3321
  break;
3313
3322
  case "3" /* TREE */:
3314
- SubFormFactoryClass = (await import("./TreeView-2EXBXJQK.mjs")).default;
3323
+ SubFormFactoryClass = (await import("./TreeView-Q7YDCHQZ.mjs")).default;
3315
3324
  break;
3316
3325
  case "2" /* EDIT */:
3317
3326
  case "99" /* FREE_FORM */:
3318
3327
  case "4" /* REPORT */:
3319
- SubFormFactoryClass = (await import("./FormEdit-252GXW3Z.mjs")).default;
3328
+ SubFormFactoryClass = (await import("./FormEdit-KTRSSTSI.mjs")).default;
3320
3329
  break;
3321
3330
  default:
3322
3331
  throw new Error(`Unsupported form type ${formType}`);
@@ -4157,7 +4166,12 @@ var FormFilterField = class extends AbstractEditor {
4157
4166
  formName;
4158
4167
  name;
4159
4168
  constructor(parentCssSelector, formName, name, page) {
4160
- super(parentCssSelector, byTestIdCssSelector(createLayoutFilterTestId(formName, name)), page);
4169
+ super({
4170
+ parentCssSelector,
4171
+ elementCssSelector: byTestIdCssSelector(createLayoutFilterTestId(formName, name)),
4172
+ titleCssSelector: byTestIdCssSelector(createLabelLayoutFilterTestId(formName, name)),
4173
+ page
4174
+ });
4161
4175
  this.formName = formName;
4162
4176
  this.name = name;
4163
4177
  }
@@ -4261,7 +4275,12 @@ var PanelFilterField = class extends AbstractEditor {
4261
4275
  formName;
4262
4276
  name;
4263
4277
  constructor(parentCssSelector, formName, name, page) {
4264
- super(parentCssSelector, byTestIdCssSelector(createDocFilterTestId(formName, name)), page);
4278
+ super({
4279
+ parentCssSelector,
4280
+ elementCssSelector: byTestIdCssSelector(createDocFilterTestId(formName, name)),
4281
+ titleCssSelector: byTestIdCssSelector(createLabelDocFilterTestId(formName, name)),
4282
+ page
4283
+ });
4265
4284
  this.formName = formName;
4266
4285
  this.name = name;
4267
4286
  }
@@ -5203,11 +5222,25 @@ var EditorButton = class extends AbstractElementWithParent {
5203
5222
  }
5204
5223
  };
5205
5224
 
5225
+ // src/pageObjects/elements/EditorTitle.ts
5226
+ var CAPTION_TEXT_CLASS = " .caption-text";
5227
+ var EditorTitle = class extends AbstractElementWithParent {
5228
+ constructor({ parentCssSelector, elementCssSelector, page }) {
5229
+ super(parentCssSelector, elementCssSelector, page);
5230
+ }
5231
+ async getTitle() {
5232
+ const captionElement = this.getLocator().locator(CAPTION_TEXT_CLASS);
5233
+ return captionElement.innerText();
5234
+ }
5235
+ };
5236
+
5206
5237
  // src/pageObjects/elements/AbstractEditor.ts
5207
5238
  var AbstractEditor = class extends AbstractElementWithParent {
5208
5239
  editor;
5209
- constructor(parentCssSelector, elementCssSelector, page) {
5240
+ _titleCssSelector;
5241
+ constructor({ parentCssSelector, elementCssSelector, titleCssSelector, page }) {
5210
5242
  super(parentCssSelector, elementCssSelector, page);
5243
+ this._titleCssSelector = titleCssSelector;
5211
5244
  }
5212
5245
  async initEditor() {
5213
5246
  if (!this.editor) {
@@ -5303,12 +5336,30 @@ var AbstractEditor = class extends AbstractElementWithParent {
5303
5336
  button(name) {
5304
5337
  return new EditorButton(this.getFullCssSelector(), name, this.page);
5305
5338
  }
5339
+ /**
5340
+ * Повертає загловок едітора
5341
+ * @example
5342
+ * expect(await formEdit.field('NumberFld').title()).toBe('Title1');
5343
+ * expect(await formEdit.field('TextFld').title()).toBe('Title2`);
5344
+ */
5345
+ async title() {
5346
+ return new EditorTitle({
5347
+ elementCssSelector: this._titleCssSelector,
5348
+ parentCssSelector: this.parentCssSelector,
5349
+ page: this.page
5350
+ }).getTitle();
5351
+ }
5306
5352
  };
5307
5353
 
5308
5354
  // src/pageObjects/elements/FormField.ts
5309
5355
  var FormField = class extends AbstractEditor {
5310
5356
  constructor(parentCssSelector, formName, name, page) {
5311
- super(parentCssSelector, byTestIdCssSelector(createFieldTestId(formName, name)), page);
5357
+ super({
5358
+ parentCssSelector,
5359
+ elementCssSelector: byTestIdCssSelector(createFieldTestId(formName, name)),
5360
+ titleCssSelector: byTestIdCssSelector(createLabelFieldTestId(formName, name)),
5361
+ page
5362
+ });
5312
5363
  }
5313
5364
  };
5314
5365
 
@@ -5846,7 +5897,10 @@ var ToolbarItem = class extends AbstractElementWithParent {
5846
5897
  async click() {
5847
5898
  try {
5848
5899
  await this.init();
5849
- await waitElementIsVisible_default({ locator: this._button.getLocator() });
5900
+ await wait(async () => {
5901
+ const element = this._button.getLocator();
5902
+ return await element.isEnabled() && await element.isVisible();
5903
+ }, this.page);
5850
5904
  await this._button.click();
5851
5905
  } catch (error) {
5852
5906
  throw new Error(`Cannot click on toolbar item: ${this._itemName}`);
@@ -5906,7 +5960,12 @@ var FormToolbar = class extends AbstractElementWithParent {
5906
5960
  // src/pageObjects/elements/Filters/HeaderFilterField.ts
5907
5961
  var HeaderFilterField = class extends AbstractEditor {
5908
5962
  constructor(parentCssSelector, formName, name, page) {
5909
- super(parentCssSelector, byTestIdCssSelector(createHeaderFilterTestId(formName, name)), page);
5963
+ super({
5964
+ parentCssSelector,
5965
+ elementCssSelector: byTestIdCssSelector(createHeaderFilterTestId(formName, name)),
5966
+ titleCssSelector: "",
5967
+ page
5968
+ });
5910
5969
  }
5911
5970
  async getValue() {
5912
5971
  return super.getValue();
@@ -1380,6 +1380,15 @@ function createSubSystemTestId(itemName) {
1380
1380
  function createEditorButtonTestId(itemName) {
1381
1381
  return `${"editor-button" /* EDITOR_BUTTON */}-${itemName}`;
1382
1382
  }
1383
+ function createLabelFieldTestId(formName, itemName) {
1384
+ return `${"label" /* LABEL */}-${createFieldTestId(formName, itemName)}`;
1385
+ }
1386
+ function createLabelDocFilterTestId(formName, itemName) {
1387
+ return `${"label" /* LABEL */}-${createDocFilterTestId(formName, itemName)}`;
1388
+ }
1389
+ function createLabelLayoutFilterTestId(formName, itemName) {
1390
+ return `${"label" /* LABEL */}-${createLayoutFilterTestId(formName, itemName)}`;
1391
+ }
1383
1392
  var init_createDataTestId = __esm({
1384
1393
  "src/utils/createDataTestId.ts"() {
1385
1394
  "use strict";
@@ -2225,6 +2234,25 @@ var init_EditorButton = __esm({
2225
2234
  }
2226
2235
  });
2227
2236
 
2237
+ // src/pageObjects/elements/EditorTitle.ts
2238
+ var CAPTION_TEXT_CLASS, EditorTitle;
2239
+ var init_EditorTitle = __esm({
2240
+ "src/pageObjects/elements/EditorTitle.ts"() {
2241
+ "use strict";
2242
+ init_AbstractElementWithParent();
2243
+ CAPTION_TEXT_CLASS = " .caption-text";
2244
+ EditorTitle = class extends AbstractElementWithParent {
2245
+ constructor({ parentCssSelector, elementCssSelector, page }) {
2246
+ super(parentCssSelector, elementCssSelector, page);
2247
+ }
2248
+ async getTitle() {
2249
+ const captionElement = this.getLocator().locator(CAPTION_TEXT_CLASS);
2250
+ return captionElement.innerText();
2251
+ }
2252
+ };
2253
+ }
2254
+ });
2255
+
2228
2256
  // src/pageObjects/elements/AbstractEditor.ts
2229
2257
  var AbstractEditor;
2230
2258
  var init_AbstractEditor2 = __esm({
@@ -2233,10 +2261,13 @@ var init_AbstractEditor2 = __esm({
2233
2261
  init_AbstractElementWithParent();
2234
2262
  init_Editors();
2235
2263
  init_EditorButton();
2264
+ init_EditorTitle();
2236
2265
  AbstractEditor = class extends AbstractElementWithParent {
2237
2266
  editor;
2238
- constructor(parentCssSelector, elementCssSelector, page) {
2267
+ _titleCssSelector;
2268
+ constructor({ parentCssSelector, elementCssSelector, titleCssSelector, page }) {
2239
2269
  super(parentCssSelector, elementCssSelector, page);
2270
+ this._titleCssSelector = titleCssSelector;
2240
2271
  }
2241
2272
  async initEditor() {
2242
2273
  if (!this.editor) {
@@ -2332,6 +2363,19 @@ var init_AbstractEditor2 = __esm({
2332
2363
  button(name) {
2333
2364
  return new EditorButton(this.getFullCssSelector(), name, this.page);
2334
2365
  }
2366
+ /**
2367
+ * Повертає загловок едітора
2368
+ * @example
2369
+ * expect(await formEdit.field('NumberFld').title()).toBe('Title1');
2370
+ * expect(await formEdit.field('TextFld').title()).toBe('Title2`);
2371
+ */
2372
+ async title() {
2373
+ return new EditorTitle({
2374
+ elementCssSelector: this._titleCssSelector,
2375
+ parentCssSelector: this.parentCssSelector,
2376
+ page: this.page
2377
+ }).getTitle();
2378
+ }
2335
2379
  };
2336
2380
  }
2337
2381
  });
@@ -2346,7 +2390,12 @@ var init_FormField = __esm({
2346
2390
  init_AbstractEditor2();
2347
2391
  FormField = class extends AbstractEditor {
2348
2392
  constructor(parentCssSelector, formName, name, page) {
2349
- super(parentCssSelector, byTestIdCssSelector(createFieldTestId(formName, name)), page);
2393
+ super({
2394
+ parentCssSelector,
2395
+ elementCssSelector: byTestIdCssSelector(createFieldTestId(formName, name)),
2396
+ titleCssSelector: byTestIdCssSelector(createLabelFieldTestId(formName, name)),
2397
+ page
2398
+ });
2350
2399
  }
2351
2400
  };
2352
2401
  }
@@ -2951,6 +3000,7 @@ var init_ToolbarItem = __esm({
2951
3000
  init_locators();
2952
3001
  init_ToolbarMenu();
2953
3002
  init_waitElementIsVisible();
3003
+ init_wait();
2954
3004
  GROUP_BUTTON_CLASS = "toolbar-group-button";
2955
3005
  toolbarItemSelector = (form, name) => byTestIdCssSelector(`ftb-${form}-${name}`);
2956
3006
  ToolbarItem = class extends AbstractElementWithParent {
@@ -2974,7 +3024,10 @@ var init_ToolbarItem = __esm({
2974
3024
  async click() {
2975
3025
  try {
2976
3026
  await this.init();
2977
- await waitElementIsVisible_default({ locator: this._button.getLocator() });
3027
+ await wait(async () => {
3028
+ const element = this._button.getLocator();
3029
+ return await element.isEnabled() && await element.isVisible();
3030
+ }, this.page);
2978
3031
  await this._button.click();
2979
3032
  } catch (error) {
2980
3033
  throw new Error(`Cannot click on toolbar item: ${this._itemName}`);
@@ -3149,7 +3202,12 @@ var init_FormFilterField = __esm({
3149
3202
  formName;
3150
3203
  name;
3151
3204
  constructor(parentCssSelector, formName, name, page) {
3152
- super(parentCssSelector, byTestIdCssSelector(createLayoutFilterTestId(formName, name)), page);
3205
+ super({
3206
+ parentCssSelector,
3207
+ elementCssSelector: byTestIdCssSelector(createLayoutFilterTestId(formName, name)),
3208
+ titleCssSelector: byTestIdCssSelector(createLabelLayoutFilterTestId(formName, name)),
3209
+ page
3210
+ });
3153
3211
  this.formName = formName;
3154
3212
  this.name = name;
3155
3213
  }
@@ -3263,7 +3321,12 @@ var init_PanelFilterField = __esm({
3263
3321
  formName;
3264
3322
  name;
3265
3323
  constructor(parentCssSelector, formName, name, page) {
3266
- super(parentCssSelector, byTestIdCssSelector(createDocFilterTestId(formName, name)), page);
3324
+ super({
3325
+ parentCssSelector,
3326
+ elementCssSelector: byTestIdCssSelector(createDocFilterTestId(formName, name)),
3327
+ titleCssSelector: byTestIdCssSelector(createLabelDocFilterTestId(formName, name)),
3328
+ page
3329
+ });
3267
3330
  this.formName = formName;
3268
3331
  this.name = name;
3269
3332
  }
@@ -3431,7 +3494,12 @@ var init_HeaderFilterField = __esm({
3431
3494
  init_AbstractEditor2();
3432
3495
  HeaderFilterField = class extends AbstractEditor {
3433
3496
  constructor(parentCssSelector, formName, name, page) {
3434
- super(parentCssSelector, byTestIdCssSelector(createHeaderFilterTestId(formName, name)), page);
3497
+ super({
3498
+ parentCssSelector,
3499
+ elementCssSelector: byTestIdCssSelector(createHeaderFilterTestId(formName, name)),
3500
+ titleCssSelector: "",
3501
+ page
3502
+ });
3435
3503
  }
3436
3504
  async getValue() {
3437
3505
  return super.getValue();
@@ -347,7 +347,13 @@ declare class EditorButton extends AbstractElementWithParent {
347
347
 
348
348
  declare class AbstractEditor extends AbstractElementWithParent implements Editor {
349
349
  protected editor: Editor;
350
- constructor(parentCssSelector: string, elementCssSelector: string, page: Page);
350
+ protected _titleCssSelector: string;
351
+ constructor({ parentCssSelector, elementCssSelector, titleCssSelector, page }: {
352
+ parentCssSelector: string;
353
+ elementCssSelector: string;
354
+ titleCssSelector: string;
355
+ page: Page;
356
+ });
351
357
  protected initEditor(): Promise<void>;
352
358
  /**
353
359
  * Возвращает значение в поле
@@ -404,6 +410,13 @@ declare class AbstractEditor extends AbstractElementWithParent implements Editor
404
410
  * await form.field('Name').button('editorButton).click()
405
411
  */
406
412
  button(name: string): EditorButton;
413
+ /**
414
+ * Повертає загловок едітора
415
+ * @example
416
+ * expect(await formEdit.field('NumberFld').title()).toBe('Title1');
417
+ * expect(await formEdit.field('TextFld').title()).toBe('Title2`);
418
+ */
419
+ title(): Promise<string>;
407
420
  }
408
421
 
409
422
  declare class FormField extends AbstractEditor {
@@ -347,7 +347,13 @@ declare class EditorButton extends AbstractElementWithParent {
347
347
 
348
348
  declare class AbstractEditor extends AbstractElementWithParent implements Editor {
349
349
  protected editor: Editor;
350
- constructor(parentCssSelector: string, elementCssSelector: string, page: Page);
350
+ protected _titleCssSelector: string;
351
+ constructor({ parentCssSelector, elementCssSelector, titleCssSelector, page }: {
352
+ parentCssSelector: string;
353
+ elementCssSelector: string;
354
+ titleCssSelector: string;
355
+ page: Page;
356
+ });
351
357
  protected initEditor(): Promise<void>;
352
358
  /**
353
359
  * Возвращает значение в поле
@@ -404,6 +410,13 @@ declare class AbstractEditor extends AbstractElementWithParent implements Editor
404
410
  * await form.field('Name').button('editorButton).click()
405
411
  */
406
412
  button(name: string): EditorButton;
413
+ /**
414
+ * Повертає загловок едітора
415
+ * @example
416
+ * expect(await formEdit.field('NumberFld').title()).toBe('Title1');
417
+ * expect(await formEdit.field('TextFld').title()).toBe('Title2`);
418
+ */
419
+ title(): Promise<string>;
407
420
  }
408
421
 
409
422
  declare class FormField extends AbstractEditor {
@@ -23,7 +23,7 @@ import {
23
23
  readonlyLocator,
24
24
  wait,
25
25
  waitElementIsVisible_default
26
- } from "./chunk-WFIWSDDW.mjs";
26
+ } from "./chunk-N4PDOG6U.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-WFIWSDDW.mjs";
26
+ } from "./chunk-N4PDOG6U.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.5",
3
+ "version": "2.0.0-alpha.6",
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",