@umbraco/playwright-testhelpers 17.1.0-beta.4 → 17.1.0-beta.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.
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 +24 -15
  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
  }
@@ -404,13 +404,15 @@ class UiBaseLocators extends BasePage_1.BasePage {
404
404
  async clickActionsMenuForName(name) {
405
405
  const menuItem = this.getMenuItemByLabel(name);
406
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 });
407
+ const menuItemFirstLocator = menuItem.locator('#menu-item').first();
408
+ const actionModalLocator = menuItem.locator('#action-modal').first();
409
+ await this.hover(menuItemFirstLocator, { force: true });
410
+ await this.click(actionModalLocator, { force: true });
409
411
  }
410
412
  async isActionsMenuForNameVisible(name, isVisible = true) {
411
413
  const menuItem = this.getMenuItemByLabel(name);
412
414
  await this.click(menuItem);
413
- await (0, test_1.expect)(menuItem.locator('#action-modal').first()).toBeVisible({ visible: isVisible });
415
+ await this.isVisible(menuItem.locator('#action-modal').first(), isVisible);
414
416
  }
415
417
  // Caret Button Methods
416
418
  async clickCaretButtonForName(name) {
@@ -418,7 +420,8 @@ class UiBaseLocators extends BasePage_1.BasePage {
418
420
  await this.click(this.getMenuItemByLabel(name).locator('#caret-button').first());
419
421
  }
420
422
  async isCaretButtonWithNameVisible(name, isVisible = true) {
421
- await (0, test_1.expect)(this.getMenuItemByLabel(name).locator('#caret-button').first()).toBeVisible({ visible: isVisible });
423
+ const caretButton = this.getMenuItemByLabel(name).locator('#caret-button').first();
424
+ await this.isVisible(caretButton, isVisible);
422
425
  }
423
426
  async clickCaretButton() {
424
427
  await this.click(this.caretBtn);
@@ -599,7 +602,7 @@ class UiBaseLocators extends BasePage_1.BasePage {
599
602
  const regex = new RegExp(`^workspace-action:.*Save$`);
600
603
  const saveButtonLocator = this.page.getByTestId(regex);
601
604
  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 });
605
+ await this.isVisible(saveBtn.locator(this.successState), isVisible, ConstantHelper_1.ConstantHelper.timeout.long);
603
606
  }
604
607
  async isSuccessButtonWithTextVisible(text) {
605
608
  return await this.isVisible(this.successState.filter({ hasText: text }));
@@ -612,26 +615,23 @@ class UiBaseLocators extends BasePage_1.BasePage {
612
615
  }
613
616
  // Notification Methods
614
617
  async isSuccessNotificationVisible(isVisible = true) {
615
- return await (0, test_1.expect)(this.successNotification.first()).toBeVisible({ visible: isVisible, timeout: ConstantHelper_1.ConstantHelper.timeout.long });
618
+ return await this.isVisible(this.successNotification.first(), isVisible, ConstantHelper_1.ConstantHelper.timeout.long);
616
619
  }
617
620
  async doesSuccessNotificationsHaveCount(count) {
618
621
  await this.hasCount(this.successNotification, count);
619
622
  }
620
623
  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
- });
624
+ const response = await this.isVisible(this.successNotification.filter({ hasText: text }), isVisible, timeout);
625
625
  if (deleteNotification) {
626
626
  await this.click(this.successNotification.filter({ hasText: text }).getByLabel('close'), { force: true });
627
627
  }
628
628
  return response;
629
629
  }
630
630
  async isErrorNotificationVisible(isVisible = true) {
631
- return await (0, test_1.expect)(this.errorNotification.first()).toBeVisible({ visible: isVisible });
631
+ return await this.isVisible(this.errorNotification.first(), isVisible);
632
632
  }
633
633
  async doesErrorNotificationHaveText(text, isVisible = true, deleteNotification = false) {
634
- const response = await (0, test_1.expect)(this.errorNotification.filter({ hasText: text })).toBeVisible({ visible: isVisible });
634
+ const response = await this.isVisible(this.errorNotification.filter({ hasText: text }), isVisible);
635
635
  if (deleteNotification) {
636
636
  await this.click(this.errorNotification.filter({ hasText: text }).locator('svg'));
637
637
  }
@@ -662,7 +662,7 @@ class UiBaseLocators extends BasePage_1.BasePage {
662
662
  async goToSection(sectionName, checkSections = true, skipReload = false) {
663
663
  if (checkSections) {
664
664
  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 });
665
+ await this.isVisible(this.sectionLinks.getByRole('tab', { name: ConstantHelper_1.ConstantHelper.sections[section] }), true, ConstantHelper_1.ConstantHelper.timeout.navigation);
666
666
  }
667
667
  }
668
668
  const alreadySelected = await this.sectionLinks.locator('[active]').getByText(sectionName).isVisible();
@@ -1250,14 +1250,23 @@ class UiBaseLocators extends BasePage_1.BasePage {
1250
1250
  }
1251
1251
  // Text Visibility Methods
1252
1252
  async isTextWithExactNameVisible(name, isVisible = true) {
1253
- return (0, test_1.expect)(this.page.getByText(name, { exact: true })).toBeVisible({ visible: isVisible });
1253
+ return await this.isVisible(this.page.getByText(name, { exact: true }), isVisible);
1254
1254
  }
1255
1255
  async isTextWithMessageVisible(message, isVisible = true) {
1256
- return await (0, test_1.expect)(this.page.getByText(message)).toBeVisible({ visible: isVisible });
1256
+ return await this.isVisible(this.page.getByText(message), isVisible);
1257
1257
  }
1258
1258
  getTextLocatorWithName(name) {
1259
1259
  return this.page.getByText(name, { exact: true });
1260
1260
  }
1261
+ async doesPropertyWithNameContainValidationMessage(propertyName, validationMessage, isContained = true) {
1262
+ const validationMessageLocator = this.page.locator('umb-property-layout[label="' + propertyName + '"]').locator(this.validationMessage);
1263
+ if (!isContained) {
1264
+ await (0, test_1.expect)(validationMessageLocator).not.toContainText(validationMessage);
1265
+ }
1266
+ else {
1267
+ await (0, test_1.expect)(validationMessageLocator).toContainText(validationMessage);
1268
+ }
1269
+ }
1261
1270
  }
1262
1271
  exports.UiBaseLocators = UiBaseLocators;
1263
1272
  //# sourceMappingURL=UiBaseLocators.js.map