@umbraco/playwright-testhelpers 17.1.0-beta.4 → 17.1.0-beta.5

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 (67) hide show
  1. package/dist/lib/helpers/BasePage.d.ts +4 -2
  2. package/dist/lib/helpers/BasePage.js +6 -2
  3. package/dist/lib/helpers/BasePage.js.map +1 -1
  4. package/dist/lib/helpers/ConstantHelper.d.ts +1 -0
  5. package/dist/lib/helpers/ConstantHelper.js +2 -1
  6. package/dist/lib/helpers/ConstantHelper.js.map +1 -1
  7. package/dist/lib/helpers/ContentUiHelper.d.ts +13 -0
  8. package/dist/lib/helpers/ContentUiHelper.js +48 -1
  9. package/dist/lib/helpers/ContentUiHelper.js.map +1 -1
  10. package/dist/lib/helpers/DataTypeUiHelper.js +4 -4
  11. package/dist/lib/helpers/DataTypeUiHelper.js.map +1 -1
  12. package/dist/lib/helpers/DictionaryUiHelper.js +1 -2
  13. package/dist/lib/helpers/DictionaryUiHelper.js.map +1 -1
  14. package/dist/lib/helpers/DocumentApiHelper.d.ts +4 -4
  15. package/dist/lib/helpers/DocumentApiHelper.js +32 -8
  16. package/dist/lib/helpers/DocumentApiHelper.js.map +1 -1
  17. package/dist/lib/helpers/DocumentBlueprintUiHelper.js +1 -2
  18. package/dist/lib/helpers/DocumentBlueprintUiHelper.js.map +1 -1
  19. package/dist/lib/helpers/DocumentTypeApiHelper.d.ts +5 -0
  20. package/dist/lib/helpers/DocumentTypeApiHelper.js +35 -0
  21. package/dist/lib/helpers/DocumentTypeApiHelper.js.map +1 -1
  22. package/dist/lib/helpers/DocumentTypeUiHelper.js +2 -2
  23. package/dist/lib/helpers/DocumentTypeUiHelper.js.map +1 -1
  24. package/dist/lib/helpers/ExamineManagementUiHelper.js +2 -3
  25. package/dist/lib/helpers/ExamineManagementUiHelper.js.map +1 -1
  26. package/dist/lib/helpers/FormsUiHelper.js +1 -2
  27. package/dist/lib/helpers/FormsUiHelper.js.map +1 -1
  28. package/dist/lib/helpers/HealthCheckUiHelper.js +4 -4
  29. package/dist/lib/helpers/HealthCheckUiHelper.js.map +1 -1
  30. package/dist/lib/helpers/LanguageUiHelper.js +1 -2
  31. package/dist/lib/helpers/LanguageUiHelper.js.map +1 -1
  32. package/dist/lib/helpers/LogViewerUiHelper.js +2 -2
  33. package/dist/lib/helpers/LogViewerUiHelper.js.map +1 -1
  34. package/dist/lib/helpers/LoginUiHelper.js +1 -2
  35. package/dist/lib/helpers/LoginUiHelper.js.map +1 -1
  36. package/dist/lib/helpers/MediaUiHelper.js +2 -2
  37. package/dist/lib/helpers/MediaUiHelper.js.map +1 -1
  38. package/dist/lib/helpers/MemberGroupUiHelper.js +2 -2
  39. package/dist/lib/helpers/MemberGroupUiHelper.js.map +1 -1
  40. package/dist/lib/helpers/MemberUiHelper.js +1 -1
  41. package/dist/lib/helpers/MemberUiHelper.js.map +1 -1
  42. package/dist/lib/helpers/PackageUiHelper.js +1 -2
  43. package/dist/lib/helpers/PackageUiHelper.js.map +1 -1
  44. package/dist/lib/helpers/PartialViewUiHelper.js +1 -2
  45. package/dist/lib/helpers/PartialViewUiHelper.js.map +1 -1
  46. package/dist/lib/helpers/PublishedStatusUiHelper.js +1 -2
  47. package/dist/lib/helpers/PublishedStatusUiHelper.js.map +1 -1
  48. package/dist/lib/helpers/RelationTypeUiHelper.js +1 -2
  49. package/dist/lib/helpers/RelationTypeUiHelper.js.map +1 -1
  50. package/dist/lib/helpers/ScriptUiHelper.js +1 -2
  51. package/dist/lib/helpers/ScriptUiHelper.js.map +1 -1
  52. package/dist/lib/helpers/StylesheetUiHelper.js +1 -2
  53. package/dist/lib/helpers/StylesheetUiHelper.js.map +1 -1
  54. package/dist/lib/helpers/TemplateApiHelper.d.ts +2 -0
  55. package/dist/lib/helpers/TemplateApiHelper.js +36 -0
  56. package/dist/lib/helpers/TemplateApiHelper.js.map +1 -1
  57. package/dist/lib/helpers/TemplateUiHelper.js +3 -4
  58. package/dist/lib/helpers/TemplateUiHelper.js.map +1 -1
  59. package/dist/lib/helpers/UiBaseLocators.d.ts +1 -0
  60. package/dist/lib/helpers/UiBaseLocators.js +23 -16
  61. package/dist/lib/helpers/UiBaseLocators.js.map +1 -1
  62. package/dist/lib/helpers/UserGroupUiHelper.js +5 -5
  63. package/dist/lib/helpers/UserGroupUiHelper.js.map +1 -1
  64. package/dist/lib/helpers/UserUiHelper.js +3 -3
  65. package/dist/lib/helpers/UserUiHelper.js.map +1 -1
  66. package/dist/tsconfig.tsbuildinfo +1 -1
  67. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"TemplateUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/TemplateUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {Page, Locator, expect} from \"@playwright/test\"\nimport {UiBaseLocators} from \"./UiBaseLocators\";\nimport {ConstantHelper} from \"./ConstantHelper\";\n\nexport class TemplateUiHelper extends UiBaseLocators {\n private readonly changeMasterTemplateBtn: Locator;\n private readonly sectionsBtn: Locator;\n private readonly removeMasterTemplateBtn: Locator;\n private readonly sectionNameTxt: Locator;\n private readonly templateTree: Locator;\n\n constructor(page: Page) {\n super(page);\n this.changeMasterTemplateBtn = page.locator('#master-template-button');\n this.sectionsBtn = page.locator('#sections-button', {hasText: 'Sections'});\n this.removeMasterTemplateBtn = page.locator('[name=\"icon-delete\"] svg');\n this.sectionNameTxt = page.getByLabel('Section Name');\n this.templateTree = page.locator('umb-tree[alias=\"Umb.Tree.Template\"]');\n }\n\n async clickActionsMenuForTemplate(name: string) {\n await this.clickActionsMenuForName(name);\n }\n\n async clickActionsMenuAtRoot() {\n await this.clickActionsMenuForTemplate('Templates');\n }\n\n async clickRootFolderCaretButton() {\n await this.openCaretButtonForName('Templates');\n }\n\n async waitForTemplateToBeCreated() {\n await this.waitForLoadState();\n }\n\n async waitForTemplateToBeDeleted() {\n await this.waitForLoadState();\n }\n\n async waitForTemplateToBeRenamed() {\n await this.waitForLoadState();\n }\n\n async goToTemplate(templateName: string, childTemplateName: string = '') {\n await this.goToSection(ConstantHelper.sections.settings);\n await this.reloadTemplateTree();\n if (childTemplateName === '') {\n await this.click(this.page.getByLabel(templateName, {exact: true}));\n await this.hasValue(this.enterAName, templateName);\n } else {\n await this.openCaretButtonForName(templateName);\n await this.click(this.page.getByLabel(childTemplateName, {exact: true}));\n await this.hasValue(this.enterAName, childTemplateName);\n }\n await this.page.waitForTimeout(ConstantHelper.wait.medium);\n }\n\n async clickSectionsButton() {\n await this.click(this.sectionsBtn);\n }\n\n async clickChangeMasterTemplateButton() {\n await this.click(this.changeMasterTemplateBtn);\n }\n\n async enterTemplateName(templateName: string) {\n await this.enterText(this.enterAName, templateName);\n }\n\n async enterTemplateContent(templateContent: string) {\n // We need this wait, to be sure that the template content is loaded.\n await this.page.waitForTimeout(ConstantHelper.wait.minimal);\n await this.enterMonacoEditorValue(templateContent);\n }\n\n async isMasterTemplateNameVisible(templateName: string, isVisible: boolean = true) {\n await expect(this.page.getByLabel(`Master template: ${templateName}`)).toBeVisible({visible: isVisible});\n }\n\n async clickRemoveMasterTemplateButton() {\n await this.click(this.removeMasterTemplateBtn);\n }\n\n async insertSection(sectionType: string, sectionName: string = '') {\n await this.clickSectionsButton();\n await this.waitForVisible(this.submitBtn);\n await this.click(this.page.locator(`[label=\"${sectionType}\"]`));\n if (sectionName !== '') {\n await this.waitForVisible(this.sectionNameTxt);\n await this.sectionNameTxt.fill(sectionName);\n }\n await this.clickSubmitButton();\n }\n\n async isTemplateTreeItemVisible(templateName: string, isVisible: boolean = true) {\n return expect(this.templateTree.getByText(templateName, {exact: true})).toBeVisible({visible: isVisible});\n }\n\n async reloadTemplateTree() {\n await this.reloadTree('Templates');\n }\n\n async isTemplateRootTreeItemVisible(templateName: string, isVisible: boolean = true, toReload: boolean = true) {\n if (toReload) {\n await this.reloadTemplateTree();\n }\n return expect(this.templateTree.getByText(templateName, {exact: true})).toBeVisible({visible: isVisible});\n }\n}"]}
1
+ {"version":3,"file":"TemplateUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/TemplateUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {Page, Locator} from \"@playwright/test\"\nimport {UiBaseLocators} from \"./UiBaseLocators\";\nimport {ConstantHelper} from \"./ConstantHelper\";\n\nexport class TemplateUiHelper extends UiBaseLocators {\n private readonly changeMasterTemplateBtn: Locator;\n private readonly sectionsBtn: Locator;\n private readonly removeMasterTemplateBtn: Locator;\n private readonly sectionNameTxt: Locator;\n private readonly templateTree: Locator;\n\n constructor(page: Page) {\n super(page);\n this.changeMasterTemplateBtn = page.locator('#master-template-button');\n this.sectionsBtn = page.locator('#sections-button', {hasText: 'Sections'});\n this.removeMasterTemplateBtn = page.locator('[name=\"icon-delete\"] svg');\n this.sectionNameTxt = page.getByLabel('Section Name');\n this.templateTree = page.locator('umb-tree[alias=\"Umb.Tree.Template\"]');\n }\n\n async clickActionsMenuForTemplate(name: string) {\n await this.clickActionsMenuForName(name);\n }\n\n async clickActionsMenuAtRoot() {\n await this.clickActionsMenuForTemplate('Templates');\n }\n\n async clickRootFolderCaretButton() {\n await this.openCaretButtonForName('Templates');\n }\n\n async waitForTemplateToBeCreated() {\n await this.waitForLoadState();\n }\n\n async waitForTemplateToBeDeleted() {\n await this.waitForLoadState();\n }\n\n async waitForTemplateToBeRenamed() {\n await this.waitForLoadState();\n }\n\n async goToTemplate(templateName: string, childTemplateName: string = '') {\n await this.goToSection(ConstantHelper.sections.settings);\n await this.reloadTemplateTree();\n if (childTemplateName === '') {\n await this.click(this.page.getByLabel(templateName, {exact: true}));\n await this.hasValue(this.enterAName, templateName);\n } else {\n await this.openCaretButtonForName(templateName);\n await this.click(this.page.getByLabel(childTemplateName, {exact: true}));\n await this.hasValue(this.enterAName, childTemplateName);\n }\n await this.page.waitForTimeout(ConstantHelper.wait.medium);\n }\n\n async clickSectionsButton() {\n await this.click(this.sectionsBtn);\n }\n\n async clickChangeMasterTemplateButton() {\n await this.click(this.changeMasterTemplateBtn);\n }\n\n async enterTemplateName(templateName: string) {\n await this.enterText(this.enterAName, templateName);\n }\n\n async enterTemplateContent(templateContent: string) {\n // We need this wait, to be sure that the template content is loaded.\n await this.page.waitForTimeout(ConstantHelper.wait.minimal);\n await this.enterMonacoEditorValue(templateContent);\n }\n\n async isMasterTemplateNameVisible(templateName: string, isVisible: boolean = true) {\n await this.isVisible(this.page.getByLabel(`Master template: ${templateName}`), isVisible);\n }\n\n async clickRemoveMasterTemplateButton() {\n await this.click(this.removeMasterTemplateBtn);\n }\n\n async insertSection(sectionType: string, sectionName: string = '') {\n await this.clickSectionsButton();\n await this.waitForVisible(this.submitBtn);\n await this.click(this.page.locator(`[label=\"${sectionType}\"]`));\n if (sectionName !== '') {\n await this.waitForVisible(this.sectionNameTxt);\n await this.sectionNameTxt.fill(sectionName);\n }\n await this.clickSubmitButton();\n }\n\n async isTemplateTreeItemVisible(templateName: string, isVisible: boolean = true) {\n await this.isVisible(this.templateTree.getByText(templateName, {exact: true}), isVisible);\n }\n\n async reloadTemplateTree() {\n await this.reloadTree('Templates');\n }\n\n async isTemplateRootTreeItemVisible(templateName: string, isVisible: boolean = true, toReload: boolean = true) {\n if (toReload) {\n await this.reloadTemplateTree();\n }\n await this.isVisible(this.templateTree.getByText(templateName, {exact: true}), isVisible);\n }\n}"]}
@@ -374,4 +374,5 @@ export declare class UiBaseLocators extends BasePage {
374
374
  isTextWithExactNameVisible(name: string, isVisible?: boolean): Promise<void>;
375
375
  isTextWithMessageVisible(message: string, isVisible?: boolean): Promise<void>;
376
376
  getTextLocatorWithName(name: string): Locator;
377
+ doesPropertyWithNameContainValidationMessage(propertyName: string, validationMessage: string, isContained?: boolean): Promise<void>;
377
378
  }
@@ -403,14 +403,14 @@ class UiBaseLocators extends BasePage_1.BasePage {
403
403
  }
404
404
  async clickActionsMenuForName(name) {
405
405
  const menuItem = this.getMenuItemByLabel(name);
406
- await this.page.waitForTimeout(ConstantHelper_1.ConstantHelper.wait.medium);
407
- await menuItem.locator('#menu-item').first().hover({ force: true });
408
- await this.click(menuItem.locator('#action-modal').first(), { force: true });
406
+ const menuItemFirstLocator = menuItem.locator('#menu-item').first();
407
+ const actionModalLocator = menuItem.locator('#action-modal').first();
408
+ await this.hoverAndClick(menuItemFirstLocator, actionModalLocator, { force: true, timeout: ConstantHelper_1.ConstantHelper.wait.medium });
409
409
  }
410
410
  async isActionsMenuForNameVisible(name, isVisible = true) {
411
411
  const menuItem = this.getMenuItemByLabel(name);
412
412
  await this.click(menuItem);
413
- await (0, test_1.expect)(menuItem.locator('#action-modal').first()).toBeVisible({ visible: isVisible });
413
+ await this.isVisible(menuItem.locator('#action-modal').first(), isVisible);
414
414
  }
415
415
  // Caret Button Methods
416
416
  async clickCaretButtonForName(name) {
@@ -418,7 +418,8 @@ class UiBaseLocators extends BasePage_1.BasePage {
418
418
  await this.click(this.getMenuItemByLabel(name).locator('#caret-button').first());
419
419
  }
420
420
  async isCaretButtonWithNameVisible(name, isVisible = true) {
421
- await (0, test_1.expect)(this.getMenuItemByLabel(name).locator('#caret-button').first()).toBeVisible({ visible: isVisible });
421
+ const caretButton = this.getMenuItemByLabel(name).locator('#caret-button').first();
422
+ await this.isVisible(caretButton, isVisible);
422
423
  }
423
424
  async clickCaretButton() {
424
425
  await this.click(this.caretBtn);
@@ -599,7 +600,7 @@ class UiBaseLocators extends BasePage_1.BasePage {
599
600
  const regex = new RegExp(`^workspace-action:.*Save$`);
600
601
  const saveButtonLocator = this.page.getByTestId(regex);
601
602
  const saveBtn = this.workspaceAction.filter({ has: saveButtonLocator });
602
- await (0, test_1.expect)(saveBtn.locator(this.successState)).toBeVisible({ visible: isVisible, timeout: ConstantHelper_1.ConstantHelper.timeout.long });
603
+ await this.isVisible(saveBtn.locator(this.successState), isVisible, ConstantHelper_1.ConstantHelper.timeout.long);
603
604
  }
604
605
  async isSuccessButtonWithTextVisible(text) {
605
606
  return await this.isVisible(this.successState.filter({ hasText: text }));
@@ -612,26 +613,23 @@ class UiBaseLocators extends BasePage_1.BasePage {
612
613
  }
613
614
  // Notification Methods
614
615
  async isSuccessNotificationVisible(isVisible = true) {
615
- return await (0, test_1.expect)(this.successNotification.first()).toBeVisible({ visible: isVisible, timeout: ConstantHelper_1.ConstantHelper.timeout.long });
616
+ return await this.isVisible(this.successNotification.first(), isVisible, ConstantHelper_1.ConstantHelper.timeout.long);
616
617
  }
617
618
  async doesSuccessNotificationsHaveCount(count) {
618
619
  await this.hasCount(this.successNotification, count);
619
620
  }
620
621
  async doesSuccessNotificationHaveText(text, isVisible = true, deleteNotification = false, timeout = 5000) {
621
- const response = await (0, test_1.expect)(this.successNotification.filter({ hasText: text })).toBeVisible({
622
- visible: isVisible,
623
- timeout: timeout
624
- });
622
+ const response = await this.isVisible(this.successNotification.filter({ hasText: text }), isVisible, timeout);
625
623
  if (deleteNotification) {
626
624
  await this.click(this.successNotification.filter({ hasText: text }).getByLabel('close'), { force: true });
627
625
  }
628
626
  return response;
629
627
  }
630
628
  async isErrorNotificationVisible(isVisible = true) {
631
- return await (0, test_1.expect)(this.errorNotification.first()).toBeVisible({ visible: isVisible });
629
+ return await this.isVisible(this.errorNotification.first(), isVisible);
632
630
  }
633
631
  async doesErrorNotificationHaveText(text, isVisible = true, deleteNotification = false) {
634
- const response = await (0, test_1.expect)(this.errorNotification.filter({ hasText: text })).toBeVisible({ visible: isVisible });
632
+ const response = await this.isVisible(this.errorNotification.filter({ hasText: text }), isVisible);
635
633
  if (deleteNotification) {
636
634
  await this.click(this.errorNotification.filter({ hasText: text }).locator('svg'));
637
635
  }
@@ -662,7 +660,7 @@ class UiBaseLocators extends BasePage_1.BasePage {
662
660
  async goToSection(sectionName, checkSections = true, skipReload = false) {
663
661
  if (checkSections) {
664
662
  for (let section in ConstantHelper_1.ConstantHelper.sections) {
665
- await (0, test_1.expect)(this.sectionLinks.getByRole('tab', { name: ConstantHelper_1.ConstantHelper.sections[section] })).toBeVisible({ timeout: ConstantHelper_1.ConstantHelper.timeout.navigation });
663
+ await this.isVisible(this.sectionLinks.getByRole('tab', { name: ConstantHelper_1.ConstantHelper.sections[section] }), true, ConstantHelper_1.ConstantHelper.timeout.navigation);
666
664
  }
667
665
  }
668
666
  const alreadySelected = await this.sectionLinks.locator('[active]').getByText(sectionName).isVisible();
@@ -1250,14 +1248,23 @@ class UiBaseLocators extends BasePage_1.BasePage {
1250
1248
  }
1251
1249
  // Text Visibility Methods
1252
1250
  async isTextWithExactNameVisible(name, isVisible = true) {
1253
- return (0, test_1.expect)(this.page.getByText(name, { exact: true })).toBeVisible({ visible: isVisible });
1251
+ return await this.isVisible(this.page.getByText(name, { exact: true }), isVisible);
1254
1252
  }
1255
1253
  async isTextWithMessageVisible(message, isVisible = true) {
1256
- return await (0, test_1.expect)(this.page.getByText(message)).toBeVisible({ visible: isVisible });
1254
+ return await this.isVisible(this.page.getByText(message), isVisible);
1257
1255
  }
1258
1256
  getTextLocatorWithName(name) {
1259
1257
  return this.page.getByText(name, { exact: true });
1260
1258
  }
1259
+ async doesPropertyWithNameContainValidationMessage(propertyName, validationMessage, isContained = true) {
1260
+ const validationMessageLocator = this.page.locator('umb-property-layout[label="' + propertyName + '"]').locator(this.validationMessage);
1261
+ if (!isContained) {
1262
+ await (0, test_1.expect)(validationMessageLocator).not.toContainText(validationMessage);
1263
+ }
1264
+ else {
1265
+ await (0, test_1.expect)(validationMessageLocator).toContainText(validationMessage);
1266
+ }
1267
+ }
1261
1268
  }
1262
1269
  exports.UiBaseLocators = UiBaseLocators;
1263
1270
  //# sourceMappingURL=UiBaseLocators.js.map