@umbraco/playwright-testhelpers 17.0.0-beta.1 → 17.0.0-beta.11

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 (51) hide show
  1. package/dist/lib/helpers/ApiHelpers.d.ts +23 -13
  2. package/dist/lib/helpers/ApiHelpers.js +107 -49
  3. package/dist/lib/helpers/ApiHelpers.js.map +1 -1
  4. package/dist/lib/helpers/ConstantHelper.d.ts +8 -3
  5. package/dist/lib/helpers/ConstantHelper.js +20 -15
  6. package/dist/lib/helpers/ConstantHelper.js.map +1 -1
  7. package/dist/lib/helpers/ContentUiHelper.d.ts +4 -3
  8. package/dist/lib/helpers/ContentUiHelper.js +16 -12
  9. package/dist/lib/helpers/ContentUiHelper.js.map +1 -1
  10. package/dist/lib/helpers/DataTypeApiHelper.d.ts +3 -0
  11. package/dist/lib/helpers/DataTypeApiHelper.js +21 -0
  12. package/dist/lib/helpers/DataTypeApiHelper.js.map +1 -1
  13. package/dist/lib/helpers/DataTypeUiHelper.d.ts +3 -0
  14. package/dist/lib/helpers/DataTypeUiHelper.js +15 -2
  15. package/dist/lib/helpers/DataTypeUiHelper.js.map +1 -1
  16. package/dist/lib/helpers/DocumentBlueprintUiHelper.d.ts +1 -0
  17. package/dist/lib/helpers/DocumentBlueprintUiHelper.js +3 -0
  18. package/dist/lib/helpers/DocumentBlueprintUiHelper.js.map +1 -1
  19. package/dist/lib/helpers/DocumentTypeUiHelper.d.ts +1 -0
  20. package/dist/lib/helpers/DocumentTypeUiHelper.js +6 -4
  21. package/dist/lib/helpers/DocumentTypeUiHelper.js.map +1 -1
  22. package/dist/lib/helpers/LanguageUiHelper.d.ts +1 -0
  23. package/dist/lib/helpers/LanguageUiHelper.js +3 -1
  24. package/dist/lib/helpers/LanguageUiHelper.js.map +1 -1
  25. package/dist/lib/helpers/LoginApiHelper.d.ts +7 -3
  26. package/dist/lib/helpers/LoginApiHelper.js +7 -5
  27. package/dist/lib/helpers/LoginApiHelper.js.map +1 -1
  28. package/dist/lib/helpers/PartialViewUiHelper.d.ts +1 -0
  29. package/dist/lib/helpers/PartialViewUiHelper.js +5 -3
  30. package/dist/lib/helpers/PartialViewUiHelper.js.map +1 -1
  31. package/dist/lib/helpers/RelationTypeUiHelper.js +1 -0
  32. package/dist/lib/helpers/RelationTypeUiHelper.js.map +1 -1
  33. package/dist/lib/helpers/ScriptUiHelper.d.ts +1 -0
  34. package/dist/lib/helpers/ScriptUiHelper.js +6 -2
  35. package/dist/lib/helpers/ScriptUiHelper.js.map +1 -1
  36. package/dist/lib/helpers/StylesheetUiHelper.d.ts +3 -0
  37. package/dist/lib/helpers/StylesheetUiHelper.js +11 -2
  38. package/dist/lib/helpers/StylesheetUiHelper.js.map +1 -1
  39. package/dist/lib/helpers/UiBaseLocators.d.ts +10 -1
  40. package/dist/lib/helpers/UiBaseLocators.js +42 -12
  41. package/dist/lib/helpers/UiBaseLocators.js.map +1 -1
  42. package/dist/lib/helpers/UserApiHelper.d.ts +6 -2
  43. package/dist/lib/helpers/UserApiHelper.js +1 -1
  44. package/dist/lib/helpers/UserApiHelper.js.map +1 -1
  45. package/dist/lib/helpers/UserGroupUiHelper.js +1 -1
  46. package/dist/lib/helpers/UserGroupUiHelper.js.map +1 -1
  47. package/dist/lib/helpers/UserUiHelper.d.ts +0 -1
  48. package/dist/lib/helpers/UserUiHelper.js +0 -2
  49. package/dist/lib/helpers/UserUiHelper.js.map +1 -1
  50. package/dist/tsconfig.tsbuildinfo +1 -1
  51. package/package.json +2 -2
@@ -15,6 +15,7 @@ export declare class DocumentTypeUiHelper extends UiBaseLocators {
15
15
  private readonly setAsDefaultBtn;
16
16
  private readonly tabGroup;
17
17
  private readonly documentTypesMenu;
18
+ private readonly createDocumentModal;
18
19
  constructor(page: Page);
19
20
  clickActionsMenuForDocumentType(name: string): Promise<void>;
20
21
  clickActionsMenuAtRoot(): Promise<void>;
@@ -18,8 +18,10 @@ class DocumentTypeUiHelper extends UiBaseLocators_1.UiBaseLocators {
18
18
  setAsDefaultBtn;
19
19
  tabGroup;
20
20
  documentTypesMenu;
21
+ createDocumentModal;
21
22
  constructor(page) {
22
23
  super(page);
24
+ this.createDocumentModal = page.locator('umb-entity-create-option-action-list-modal');
23
25
  this.newDocumentTypeBtn = page.getByLabel('New Document Type…');
24
26
  this.sharedAcrossCulturesToggle = page.locator('label').filter({ hasText: 'Shared across cultures' }).locator('#toggle');
25
27
  this.tabGroup = page.getByTestId('workspace:view-links');
@@ -27,10 +29,10 @@ class DocumentTypeUiHelper extends UiBaseLocators_1.UiBaseLocators {
27
29
  this.documentTypeTemplatesTabBtn = this.tabGroup.locator('[data-mark*="Templates"]');
28
30
  this.varyBySegmentsBtn = page.getByText('Vary by segment', { exact: true });
29
31
  this.varyByCultureBtn = page.getByText('Vary by culture', { exact: true });
30
- this.createDocumentTypeBtn = page.locator('umb-ref-item').getByText('Document Type', { exact: true });
31
- this.createDocumentTypeWithTemplateBtn = page.locator('umb-ref-item').getByText('Document Type with Template', { exact: true });
32
- this.createElementTypeBtn = page.locator('umb-ref-item').getByText('Element Type', { exact: true });
33
- this.createDocumentFolderBtn = page.locator('umb-ref-item').getByText('Folder', { exact: true });
32
+ this.createDocumentTypeBtn = this.createDocumentModal.locator('umb-ref-item').getByText('Document Type', { exact: true });
33
+ this.createDocumentTypeWithTemplateBtn = this.createDocumentModal.locator('umb-ref-item', { hasText: 'Document Type with template' });
34
+ this.createElementTypeBtn = this.createDocumentModal.locator('umb-ref-item', { hasText: 'Element Type' });
35
+ this.createDocumentFolderBtn = this.createDocumentModal.locator('umb-ref-item', { hasText: 'Folder' });
34
36
  this.preventCleanupBtn = page.getByText('Prevent clean up');
35
37
  this.setAsDefaultBtn = page.getByText('Set as default');
36
38
  this.documentTypesMenu = page.locator('#menu-item').getByRole('link', { name: 'Document Types' });
@@ -1 +1 @@
1
- {"version":3,"file":"DocumentTypeUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/DocumentTypeUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {UiBaseLocators} from \"./UiBaseLocators\";\nimport {expect, Locator, Page} from \"@playwright/test\";\n\nexport class DocumentTypeUiHelper extends UiBaseLocators {\n private readonly newDocumentTypeBtn: Locator;\n private readonly sharedAcrossCulturesToggle: Locator;\n private readonly documentTypeSettingsTabBtn: Locator;\n private readonly documentTypeTemplatesTabBtn: Locator;\n private readonly varyBySegmentsBtn: Locator;\n private readonly varyByCultureBtn: Locator;\n private readonly createDocumentTypeBtn: Locator;\n private readonly createDocumentTypeWithTemplateBtn: Locator;\n private readonly createElementTypeBtn: Locator;\n private readonly createDocumentFolderBtn: Locator;\n private readonly preventCleanupBtn: Locator;\n private readonly setAsDefaultBtn: Locator;\n private readonly tabGroup: Locator;\n private readonly documentTypesMenu: Locator;\n\n constructor(page: Page) {\n super(page);\n this.newDocumentTypeBtn = page.getByLabel('New Document Type…');\n this.sharedAcrossCulturesToggle = page.locator('label').filter({hasText: 'Shared across cultures'}).locator('#toggle');\n this.tabGroup = page.getByTestId('workspace:view-links');\n this.documentTypeSettingsTabBtn = this.tabGroup.locator('[data-mark*=\"Settings\"]');\n this.documentTypeTemplatesTabBtn = this.tabGroup.locator('[data-mark*=\"Templates\"]');\n this.varyBySegmentsBtn = page.getByText('Vary by segment', {exact: true});\n this.varyByCultureBtn = page.getByText('Vary by culture', {exact: true});\n this.createDocumentTypeBtn = page.locator('umb-ref-item').getByText('Document Type', {exact: true});\n this.createDocumentTypeWithTemplateBtn = page.locator('umb-ref-item').getByText('Document Type with Template', {exact: true});\n this.createElementTypeBtn = page.locator('umb-ref-item').getByText('Element Type', {exact: true});\n this.createDocumentFolderBtn = page.locator('umb-ref-item').getByText('Folder', {exact: true});\n this.preventCleanupBtn = page.getByText('Prevent clean up');\n this.setAsDefaultBtn = page.getByText('Set as default');\n this.documentTypesMenu = page.locator('#menu-item').getByRole('link', {name: 'Document Types'});\n }\n\n async clickActionsMenuForDocumentType(name: string) {\n await this.clickActionsMenuForName(name);\n }\n\n async clickActionsMenuAtRoot() {\n await this.clickActionsMenuForDocumentType(\"Document Types\");\n }\n\n async clickRootFolderCaretButton() {\n await this.openCaretButtonForName('Document Types');\n }\n\n async clickNewDocumentTypeButton() {\n await expect(this.newDocumentTypeBtn).toBeVisible();\n await this.newDocumentTypeBtn.click();\n }\n\n async clickSharedAcrossCulturesToggle() {\n await expect(this.sharedAcrossCulturesToggle).toBeVisible();\n await this.sharedAcrossCulturesToggle.click();\n }\n\n async clickDocumentTypeSettingsTab() {\n await expect(this.documentTypeSettingsTabBtn).toBeVisible();\n await this.documentTypeSettingsTabBtn.click();\n }\n\n async clickDocumentTypeTemplatesTab() {\n await expect(this.documentTypeTemplatesTabBtn).toBeVisible();\n await this.documentTypeTemplatesTabBtn.click();\n }\n\n async clickVaryBySegmentsButton() {\n await expect(this.varyBySegmentsBtn).toBeVisible();\n await this.varyBySegmentsBtn.click();\n }\n\n async clickVaryByCultureButton() {\n await expect(this.varyByCultureBtn).toBeVisible();\n await this.varyByCultureBtn.click();\n }\n\n async clickPreventCleanupButton() {\n await expect(this.preventCleanupBtn).toBeVisible();\n await this.preventCleanupBtn.click();\n }\n\n async goToDocumentType(documentTypeName: string) {\n await this.clickRootFolderCaretButton();\n await this.clickLabelWithName(documentTypeName);\n }\n\n async waitForDocumentTypeToBeCreated() {\n await this.waitForNetworkToBeIdle();\n }\n\n async waitForDocumentTypeToBeDeleted() {\n await this.waitForNetworkToBeIdle();\n }\n\n async waitForDocumentTypeToBeRenamed() {\n await this.waitForNetworkToBeIdle();\n }\n \n async enterDocumentTypeName(documentTypeName: string) {\n await expect(this.enterAName).toBeVisible();\n await this.enterAName.fill(documentTypeName);\n await expect(this.enterAName).toHaveValue(documentTypeName);\n }\n\n async clickCreateDocumentTypeButton() {\n await expect(this.createDocumentTypeBtn).toBeVisible();\n await this.createDocumentTypeBtn.click();\n }\n\n async clickCreateDocumentTypeWithTemplateButton() {\n await expect(this.createDocumentTypeWithTemplateBtn).toBeVisible();\n await this.createDocumentTypeWithTemplateBtn.click();\n }\n\n async clickCreateElementTypeButton() {\n await expect(this.createElementTypeBtn).toBeVisible();\n await this.createElementTypeBtn.click();\n }\n\n async clickCreateDocumentFolderButton() {\n await expect(this.createDocumentFolderBtn).toBeVisible();\n await this.createDocumentFolderBtn.click();\n }\n\n async isDocumentTreeItemVisible(name: string, isVisible = true) {\n await expect(this.page.locator('umb-tree-item').locator('[label=\"' + name + '\"]')).toBeVisible({visible: isVisible});\n }\n\n async clickSetAsDefaultButton() {\n await expect(this.setAsDefaultBtn).toBeVisible();\n await this.setAsDefaultBtn.click();\n }\n\n async clickDocumentTypesMenu() {\n await expect(this.documentTypesMenu).toBeVisible();\n await this.documentTypesMenu.click();\n }\n}"]}
1
+ {"version":3,"file":"DocumentTypeUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/DocumentTypeUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {UiBaseLocators} from \"./UiBaseLocators\";\nimport {expect, Locator, Page} from \"@playwright/test\";\n\nexport class DocumentTypeUiHelper extends UiBaseLocators {\n private readonly newDocumentTypeBtn: Locator;\n private readonly sharedAcrossCulturesToggle: Locator;\n private readonly documentTypeSettingsTabBtn: Locator;\n private readonly documentTypeTemplatesTabBtn: Locator;\n private readonly varyBySegmentsBtn: Locator;\n private readonly varyByCultureBtn: Locator;\n private readonly createDocumentTypeBtn: Locator;\n private readonly createDocumentTypeWithTemplateBtn: Locator;\n private readonly createElementTypeBtn: Locator;\n private readonly createDocumentFolderBtn: Locator;\n private readonly preventCleanupBtn: Locator;\n private readonly setAsDefaultBtn: Locator;\n private readonly tabGroup: Locator;\n private readonly documentTypesMenu: Locator;\n private readonly createDocumentModal: Locator;\n\n constructor(page: Page) {\n super(page);\n this.createDocumentModal = page.locator('umb-entity-create-option-action-list-modal');\n this.newDocumentTypeBtn = page.getByLabel('New Document Type…');\n this.sharedAcrossCulturesToggle = page.locator('label').filter({hasText: 'Shared across cultures'}).locator('#toggle');\n this.tabGroup = page.getByTestId('workspace:view-links');\n this.documentTypeSettingsTabBtn = this.tabGroup.locator('[data-mark*=\"Settings\"]');\n this.documentTypeTemplatesTabBtn = this.tabGroup.locator('[data-mark*=\"Templates\"]');\n this.varyBySegmentsBtn = page.getByText('Vary by segment', {exact: true});\n this.varyByCultureBtn = page.getByText('Vary by culture', {exact: true});\n this.createDocumentTypeBtn = this.createDocumentModal.locator('umb-ref-item').getByText('Document Type', {exact: true});\n this.createDocumentTypeWithTemplateBtn = this.createDocumentModal.locator('umb-ref-item', {hasText: 'Document Type with template'});\n this.createElementTypeBtn = this.createDocumentModal.locator('umb-ref-item', {hasText: 'Element Type'});\n this.createDocumentFolderBtn = this.createDocumentModal.locator('umb-ref-item', {hasText: 'Folder'});\n this.preventCleanupBtn = page.getByText('Prevent clean up');\n this.setAsDefaultBtn = page.getByText('Set as default');\n this.documentTypesMenu = page.locator('#menu-item').getByRole('link', {name: 'Document Types'});\n }\n\n async clickActionsMenuForDocumentType(name: string) {\n await this.clickActionsMenuForName(name);\n }\n\n async clickActionsMenuAtRoot() {\n await this.clickActionsMenuForDocumentType(\"Document Types\");\n }\n\n async clickRootFolderCaretButton() {\n await this.openCaretButtonForName('Document Types');\n }\n\n async clickNewDocumentTypeButton() {\n await expect(this.newDocumentTypeBtn).toBeVisible();\n await this.newDocumentTypeBtn.click();\n }\n\n async clickSharedAcrossCulturesToggle() {\n await expect(this.sharedAcrossCulturesToggle).toBeVisible();\n await this.sharedAcrossCulturesToggle.click();\n }\n\n async clickDocumentTypeSettingsTab() {\n await expect(this.documentTypeSettingsTabBtn).toBeVisible();\n await this.documentTypeSettingsTabBtn.click();\n }\n\n async clickDocumentTypeTemplatesTab() {\n await expect(this.documentTypeTemplatesTabBtn).toBeVisible();\n await this.documentTypeTemplatesTabBtn.click();\n }\n\n async clickVaryBySegmentsButton() {\n await expect(this.varyBySegmentsBtn).toBeVisible();\n await this.varyBySegmentsBtn.click();\n }\n\n async clickVaryByCultureButton() {\n await expect(this.varyByCultureBtn).toBeVisible();\n await this.varyByCultureBtn.click();\n }\n\n async clickPreventCleanupButton() {\n await expect(this.preventCleanupBtn).toBeVisible();\n await this.preventCleanupBtn.click();\n }\n\n async goToDocumentType(documentTypeName: string) {\n await this.clickRootFolderCaretButton();\n await this.clickLabelWithName(documentTypeName);\n }\n\n async waitForDocumentTypeToBeCreated() {\n await this.waitForNetworkToBeIdle();\n }\n\n async waitForDocumentTypeToBeDeleted() {\n await this.waitForNetworkToBeIdle();\n }\n\n async waitForDocumentTypeToBeRenamed() {\n await this.waitForNetworkToBeIdle();\n }\n \n async enterDocumentTypeName(documentTypeName: string) {\n await expect(this.enterAName).toBeVisible();\n await this.enterAName.fill(documentTypeName);\n await expect(this.enterAName).toHaveValue(documentTypeName);\n }\n\n async clickCreateDocumentTypeButton() {\n await expect(this.createDocumentTypeBtn).toBeVisible();\n await this.createDocumentTypeBtn.click();\n }\n\n async clickCreateDocumentTypeWithTemplateButton() {\n await expect(this.createDocumentTypeWithTemplateBtn).toBeVisible();\n await this.createDocumentTypeWithTemplateBtn.click();\n }\n\n async clickCreateElementTypeButton() {\n await expect(this.createElementTypeBtn).toBeVisible();\n await this.createElementTypeBtn.click();\n }\n\n async clickCreateDocumentFolderButton() {\n await expect(this.createDocumentFolderBtn).toBeVisible();\n await this.createDocumentFolderBtn.click();\n }\n\n async isDocumentTreeItemVisible(name: string, isVisible = true) {\n await expect(this.page.locator('umb-tree-item').locator('[label=\"' + name + '\"]')).toBeVisible({visible: isVisible});\n }\n\n async clickSetAsDefaultButton() {\n await expect(this.setAsDefaultBtn).toBeVisible();\n await this.setAsDefaultBtn.click();\n }\n\n async clickDocumentTypesMenu() {\n await expect(this.documentTypesMenu).toBeVisible();\n await this.documentTypesMenu.click();\n }\n}"]}
@@ -9,6 +9,7 @@ export declare class LanguageUiHelper extends UiBaseLocators {
9
9
  private readonly languageTable;
10
10
  private readonly deleteLanguageEntityAction;
11
11
  private readonly languageCreateBtn;
12
+ private readonly settingsSidebar;
12
13
  constructor(page: Page);
13
14
  clickLanguageCreateButton(): Promise<void>;
14
15
  clickLanguagesMenu(): Promise<void>;
@@ -13,9 +13,11 @@ class LanguageUiHelper extends UiBaseLocators_1.UiBaseLocators {
13
13
  languageTable;
14
14
  deleteLanguageEntityAction;
15
15
  languageCreateBtn;
16
+ settingsSidebar;
16
17
  constructor(page) {
17
18
  super(page);
18
- this.languagesMenu = page.locator('umb-menu').getByLabel('Languages');
19
+ this.settingsSidebar = page.getByTestId('section-sidebar:Umb.SectionSidebarMenu.Settings');
20
+ this.languagesMenu = this.settingsSidebar.getByRole('link', { name: 'Languages' });
19
21
  this.languageDropdown = page.locator('umb-input-culture-select #expand-symbol-wrapper');
20
22
  this.defaultLanguageToggle = page.locator('uui-toggle').filter({ hasText: /Default language/ }).locator('#toggle');
21
23
  this.mandatoryLanguageToggle = page.locator('uui-toggle').filter({ hasText: /Mandatory language/ }).locator('#toggle');
@@ -1 +1 @@
1
- {"version":3,"file":"LanguageUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/LanguageUiHelper.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 LanguageUiHelper extends UiBaseLocators {\n private readonly languagesMenu: Locator;\n private readonly languageDropdown: Locator;\n private readonly defaultLanguageToggle: Locator;\n private readonly mandatoryLanguageToggle: Locator;\n private readonly addFallbackLanguageBtn: Locator;\n private readonly languageTable: Locator;\n private readonly deleteLanguageEntityAction: Locator;\n private readonly languageCreateBtn: Locator;\n\n constructor(page: Page) {\n super(page);\n this.languagesMenu = page.locator('umb-menu').getByLabel('Languages');\n this.languageDropdown = page.locator('umb-input-culture-select #expand-symbol-wrapper');\n this.defaultLanguageToggle = page.locator('uui-toggle').filter({hasText: /Default language/}).locator('#toggle');\n this.mandatoryLanguageToggle = page.locator('uui-toggle').filter({hasText: /Mandatory language/}).locator('#toggle');\n this.addFallbackLanguageBtn = page.locator('#add-button');\n this.languageTable = page.locator('umb-language-table-collection-view');\n this.deleteLanguageEntityAction = page.getByTestId('entity-action:Umb.EntityAction.Language.Delete');\n this.languageCreateBtn = page.getByTestId('collection-action:Umb.CollectionAction.Language.Create');\n }\n\n async clickLanguageCreateButton() {\n await expect(this.languageCreateBtn).toBeVisible();\n await this.languageCreateBtn.click();\n }\n\n async clickLanguagesMenu() {\n await expect(this.languagesMenu).toBeVisible();\n await this.languagesMenu.click();\n }\n\n async goToLanguages() {\n await this.goToSection(ConstantHelper.sections.settings);\n await this.clickLanguagesMenu();\n }\n\n async waitForLanguageToBeCreated() {\n await this.waitForNetworkToBeIdle();\n }\n\n async waitForLanguageToBeDeleted() {\n await this.waitForNetworkToBeIdle();\n }\n \n async removeFallbackLanguageByIsoCode(isoCode: string) {\n await this.page.locator('umb-entity-item-ref[id=\"' + isoCode + '\"]').hover();\n await this.page.locator('umb-entity-item-ref[id=\"' + isoCode + '\"]').getByLabel('Remove').click();\n await this.confirmToRemoveBtn.click();\n }\n\n async chooseLanguageByName(name: string) {\n await this.languageDropdown.click();\n await this.page.locator('umb-input-culture-select').getByText(name, {exact: true}).click();\n }\n\n async clickLanguageByName(name: string) {\n await this.languageTable.getByText(name, {exact: true}).click();\n }\n\n async isLanguageNameVisible(name: string, isVisible = true) {\n return await expect(this.languageTable.getByText(name, {exact: true})).toBeVisible({visible: isVisible});\n }\n\n async switchDefaultLanguageOption() {\n await this.defaultLanguageToggle.click();\n }\n\n async switchMandatoryLanguageOption() {\n await this.mandatoryLanguageToggle.click();\n }\n\n async clickAddFallbackLanguageButton() {\n await this.addFallbackLanguageBtn.click();\n }\n\n async clickRemoveLanguageByName(name: string) {\n await this.page.locator('uui-table-row').filter({has: this.page.getByText(name, {exact: true})}).locator(this.deleteLanguageEntityAction).click({force: true});\n }\n\n async removeLanguageByName(name: string) {\n await this.clickRemoveLanguageByName(name);\n await this.clickConfirmToDeleteButton();\n }\n\n async selectFallbackLanguageByName(name: string) {\n await this.page.locator('umb-language-picker-modal').getByLabel(name).click();\n await this.clickSubmitButton();\n }\n}"]}
1
+ {"version":3,"file":"LanguageUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/LanguageUiHelper.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 LanguageUiHelper extends UiBaseLocators {\n private readonly languagesMenu: Locator;\n private readonly languageDropdown: Locator;\n private readonly defaultLanguageToggle: Locator;\n private readonly mandatoryLanguageToggle: Locator;\n private readonly addFallbackLanguageBtn: Locator;\n private readonly languageTable: Locator;\n private readonly deleteLanguageEntityAction: Locator;\n private readonly languageCreateBtn: Locator;\n private readonly settingsSidebar: Locator;\n\n constructor(page: Page) {\n super(page);\n this.settingsSidebar = page.getByTestId('section-sidebar:Umb.SectionSidebarMenu.Settings');\n this.languagesMenu = this.settingsSidebar.getByRole('link', {name: 'Languages'});\n this.languageDropdown = page.locator('umb-input-culture-select #expand-symbol-wrapper');\n this.defaultLanguageToggle = page.locator('uui-toggle').filter({hasText: /Default language/}).locator('#toggle');\n this.mandatoryLanguageToggle = page.locator('uui-toggle').filter({hasText: /Mandatory language/}).locator('#toggle');\n this.addFallbackLanguageBtn = page.locator('#add-button');\n this.languageTable = page.locator('umb-language-table-collection-view');\n this.deleteLanguageEntityAction = page.getByTestId('entity-action:Umb.EntityAction.Language.Delete');\n this.languageCreateBtn = page.getByTestId('collection-action:Umb.CollectionAction.Language.Create');\n }\n\n async clickLanguageCreateButton() {\n await expect(this.languageCreateBtn).toBeVisible();\n await this.languageCreateBtn.click();\n }\n\n async clickLanguagesMenu() {\n await expect(this.languagesMenu).toBeVisible();\n await this.languagesMenu.click();\n }\n\n async goToLanguages() {\n await this.goToSection(ConstantHelper.sections.settings);\n await this.clickLanguagesMenu();\n }\n\n async waitForLanguageToBeCreated() {\n await this.waitForNetworkToBeIdle();\n }\n\n async waitForLanguageToBeDeleted() {\n await this.waitForNetworkToBeIdle();\n }\n \n async removeFallbackLanguageByIsoCode(isoCode: string) {\n await this.page.locator('umb-entity-item-ref[id=\"' + isoCode + '\"]').hover();\n await this.page.locator('umb-entity-item-ref[id=\"' + isoCode + '\"]').getByLabel('Remove').click();\n await this.confirmToRemoveBtn.click();\n }\n\n async chooseLanguageByName(name: string) {\n await this.languageDropdown.click();\n await this.page.locator('umb-input-culture-select').getByText(name, {exact: true}).click();\n }\n\n async clickLanguageByName(name: string) {\n await this.languageTable.getByText(name, {exact: true}).click();\n }\n\n async isLanguageNameVisible(name: string, isVisible = true) {\n return await expect(this.languageTable.getByText(name, {exact: true})).toBeVisible({visible: isVisible});\n }\n\n async switchDefaultLanguageOption() {\n await this.defaultLanguageToggle.click();\n }\n\n async switchMandatoryLanguageOption() {\n await this.mandatoryLanguageToggle.click();\n }\n\n async clickAddFallbackLanguageButton() {\n await this.addFallbackLanguageBtn.click();\n }\n\n async clickRemoveLanguageByName(name: string) {\n await this.page.locator('uui-table-row').filter({has: this.page.getByText(name, {exact: true})}).locator(this.deleteLanguageEntityAction).click({force: true});\n }\n\n async removeLanguageByName(name: string) {\n await this.clickRemoveLanguageByName(name);\n await this.clickConfirmToDeleteButton();\n }\n\n async selectFallbackLanguageByName(name: string) {\n await this.page.locator('umb-language-picker-modal').getByLabel(name).click();\n await this.clickSubmitButton();\n }\n}"]}
@@ -6,12 +6,16 @@ export declare class LoginApiHelper {
6
6
  constructor(api: ApiHelpers, page: Page);
7
7
  login(userEmail: string, password: string): Promise<{
8
8
  cookie: string;
9
- accessToken: any;
10
- refreshToken: any;
9
+ accessToken: "" | {
10
+ value: string;
11
+ } | undefined;
12
+ refreshToken: "" | {
13
+ value: string;
14
+ } | undefined;
11
15
  }>;
12
16
  getCookie(userEmail: string, password: string): Promise<string>;
13
17
  createCodeChallenge(codeVerifier: string): Promise<string>;
14
18
  getAuthorizationCode(codeChallenge: string, cookie: string, stateValue: string): Promise<string | null>;
15
- getRefreshToken(cookie: string, codeVerifier: string, authorizationCode: any): Promise<any>;
19
+ getCookiesWithAccessTokenAndRefreshToken(cookie: string, codeVerifier: string, authorizationCode: any): Promise<string>;
16
20
  getAccessToken(cookie: string, refreshToken: string): Promise<any>;
17
21
  }
@@ -15,8 +15,10 @@ class LoginApiHelper {
15
15
  const cookie = await this.getCookie(userEmail, password);
16
16
  const codeChallenge = await this.createCodeChallenge(codeVerifier);
17
17
  const authorizationCode = await this.getAuthorizationCode(codeChallenge, cookie, stateValue);
18
- const refreshToken = await this.getRefreshToken(cookie, codeVerifier, authorizationCode);
19
- const accessToken = await this.getAccessToken(cookie, refreshToken.refresh_token);
18
+ const setCookies = await this.getCookiesWithAccessTokenAndRefreshToken(cookie, codeVerifier, authorizationCode);
19
+ let tokens = await this.api.updateLocalStorageTokens(setCookies);
20
+ const accessToken = tokens.accessToken;
21
+ const refreshToken = tokens.refreshToken;
20
22
  return { cookie, accessToken, refreshToken };
21
23
  }
22
24
  async getCookie(userEmail, password) {
@@ -56,7 +58,7 @@ class LoginApiHelper {
56
58
  // Extract the authorization code from the location header
57
59
  return new URLSearchParams(locationHeader.split('?')[1]).get('code');
58
60
  }
59
- async getRefreshToken(cookie, codeVerifier, authorizationCode) {
61
+ async getCookiesWithAccessTokenAndRefreshToken(cookie, codeVerifier, authorizationCode) {
60
62
  const response = await this.page.request.post(this.api.baseUrl + '/umbraco/management/api/v1/security/back-office/token', {
61
63
  headers: {
62
64
  'Content-Type': 'application/x-www-form-urlencoded',
@@ -73,9 +75,9 @@ class LoginApiHelper {
73
75
  ignoreHTTPSErrors: true
74
76
  });
75
77
  if (response.status() !== 200) {
76
- console.error('Failed to retrieve refresh token');
78
+ console.error('Failed to retrieve cookie');
77
79
  }
78
- return await response.json();
80
+ return response.headers()['set-cookie'];
79
81
  }
80
82
  async getAccessToken(cookie, refreshToken) {
81
83
  const response = await this.page.request.post(this.api.baseUrl + '/umbraco/management/api/v1/security/back-office/token', {
@@ -1 +1 @@
1
- {"version":3,"file":"LoginApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/LoginApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\nimport {Page} from \"@playwright/test\";\nimport {createHash} from \"crypto\";\n\nexport class LoginApiHelper {\n api: ApiHelpers;\n page: Page;\n\n constructor(api: ApiHelpers, page: Page) {\n this.api = api;\n this.page = page;\n }\n\n public async login(userEmail: string, password: string) {\n const codeVerifier = \"12345\"; // A static state value for testing\n const stateValue = 'myStateValue'; // A static state value for testing\n const cookie = await this.getCookie(userEmail, password);\n const codeChallenge = await this.createCodeChallenge(codeVerifier);\n const authorizationCode = await this.getAuthorizationCode(codeChallenge, cookie, stateValue);\n const refreshToken = await this.getRefreshToken(cookie, codeVerifier, authorizationCode);\n const accessToken = await this.getAccessToken(cookie, refreshToken.refresh_token);\n return {cookie, accessToken, refreshToken};\n }\n\n async getCookie(userEmail: string, password: string) {\n const response = await this.page.request.post(this.api.baseUrl + '/umbraco/management/api/v1/security/back-office/login', {\n headers: {\n 'Content-Type': 'application/json',\n Referer: this.api.baseUrl,\n Origin: this.api.baseUrl,\n },\n data: {\n username: userEmail,\n password: password\n },\n ignoreHTTPSErrors: true\n });\n\n // Ensure the cookie is properly captured\n return response.headers()['set-cookie'];\n }\n\n async createCodeChallenge(codeVerifier: string) {\n return createHash('sha256').update(codeVerifier, 'utf8').digest('base64').replace(/=/g, '').trim();\n }\n\n async getAuthorizationCode(codeChallenge: string, cookie: string, stateValue: string) {\n const authorizationUrl = `${this.api.baseUrl}/umbraco/management/api/v1/security/back-office/authorize?client_id=umbraco-back-office&response_type=code&redirect_uri=${encodeURIComponent(this.api.baseUrl + '/umbraco/oauth_complete')}&code_challenge_method=S256&code_challenge=${codeChallenge}&state=${stateValue}&scope=offline_access&prompt=consent&access_type=offline`;\n const response = await this.page.request.get(authorizationUrl, {\n headers: {\n Cookie: cookie,\n Referer: this.api.baseUrl,\n },\n ignoreHTTPSErrors: true,\n maxRedirects: 0\n });\n\n // Parse the authorization code from the redirect URL\n const locationHeader = response.headers()['location'];\n if (!locationHeader) {\n throw new Error('Authorization redirect location not found');\n }\n // Extract the authorization code from the location header\n return new URLSearchParams(locationHeader.split('?')[1]).get('code');\n }\n\n async getRefreshToken(cookie: string, codeVerifier: string, authorizationCode) {\n const response = await this.page.request.post(this.api.baseUrl + '/umbraco/management/api/v1/security/back-office/token', {\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n Cookie: cookie,\n Origin: this.api.baseUrl\n },\n form: {\n grant_type: 'authorization_code',\n client_id: 'umbraco-back-office',\n redirect_uri: this.api.baseUrl + '/umbraco/oauth_complete',\n code: authorizationCode,\n code_verifier: codeVerifier\n },\n ignoreHTTPSErrors: true\n });\n\n if (response.status() !== 200) {\n console.error('Failed to retrieve refresh token');\n }\n return await response.json();\n }\n\n async getAccessToken(cookie: string, refreshToken: string) {\n const response = await this.page.request.post(this.api.baseUrl + '/umbraco/management/api/v1/security/back-office/token', {\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n Cookie: cookie,\n Origin: this.api.baseUrl\n },\n form: {\n grant_type: 'refresh_token',\n client_id: 'umbraco-back-office',\n redirect_uri: this.api.baseUrl + '/umbraco/oauth_complete',\n refresh_token: refreshToken,\n },\n ignoreHTTPSErrors: true\n });\n\n if (response.status() === 200) {\n console.log('Login successful');\n } else {\n console.error('Login failed');\n }\n return await response.json();\n }\n}\n"]}
1
+ {"version":3,"file":"LoginApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/LoginApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\nimport {Page} from \"@playwright/test\";\nimport {createHash} from \"crypto\";\n\nexport class LoginApiHelper {\n api: ApiHelpers;\n page: Page;\n\n constructor(api: ApiHelpers, page: Page) {\n this.api = api;\n this.page = page;\n }\n\n public async login(userEmail: string, password: string) {\n const codeVerifier = \"12345\"; // A static state value for testing\n const stateValue = 'myStateValue'; // A static state value for testing\n const cookie = await this.getCookie(userEmail, password);\n const codeChallenge = await this.createCodeChallenge(codeVerifier);\n const authorizationCode = await this.getAuthorizationCode(codeChallenge, cookie, stateValue);\n const setCookies = await this.getCookiesWithAccessTokenAndRefreshToken(cookie, codeVerifier, authorizationCode);\n let tokens = await this.api.updateLocalStorageTokens(setCookies);\n const accessToken = tokens.accessToken;\n const refreshToken = tokens.refreshToken;\n return {cookie, accessToken, refreshToken};\n }\n\n async getCookie(userEmail: string, password: string) {\n const response = await this.page.request.post(this.api.baseUrl + '/umbraco/management/api/v1/security/back-office/login', {\n headers: {\n 'Content-Type': 'application/json',\n Referer: this.api.baseUrl,\n Origin: this.api.baseUrl,\n },\n data: {\n username: userEmail,\n password: password\n },\n ignoreHTTPSErrors: true\n });\n\n // Ensure the cookie is properly captured\n return response.headers()['set-cookie'];\n }\n\n async createCodeChallenge(codeVerifier: string) {\n return createHash('sha256').update(codeVerifier, 'utf8').digest('base64').replace(/=/g, '').trim();\n }\n\n async getAuthorizationCode(codeChallenge: string, cookie: string, stateValue: string) {\n const authorizationUrl = `${this.api.baseUrl}/umbraco/management/api/v1/security/back-office/authorize?client_id=umbraco-back-office&response_type=code&redirect_uri=${encodeURIComponent(this.api.baseUrl + '/umbraco/oauth_complete')}&code_challenge_method=S256&code_challenge=${codeChallenge}&state=${stateValue}&scope=offline_access&prompt=consent&access_type=offline`;\n const response = await this.page.request.get(authorizationUrl, {\n headers: {\n Cookie: cookie,\n Referer: this.api.baseUrl,\n },\n ignoreHTTPSErrors: true,\n maxRedirects: 0\n });\n\n // Parse the authorization code from the redirect URL\n const locationHeader = response.headers()['location'];\n if (!locationHeader) {\n throw new Error('Authorization redirect location not found');\n }\n // Extract the authorization code from the location header\n return new URLSearchParams(locationHeader.split('?')[1]).get('code');\n }\n\n async getCookiesWithAccessTokenAndRefreshToken(cookie: string, codeVerifier: string, authorizationCode) {\n const response = await this.page.request.post(this.api.baseUrl + '/umbraco/management/api/v1/security/back-office/token', {\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n Cookie: cookie,\n Origin: this.api.baseUrl\n },\n form: {\n grant_type: 'authorization_code',\n client_id: 'umbraco-back-office',\n redirect_uri: this.api.baseUrl + '/umbraco/oauth_complete',\n code: authorizationCode,\n code_verifier: codeVerifier\n },\n ignoreHTTPSErrors: true\n });\n\n if (response.status() !== 200) {\n console.error('Failed to retrieve cookie');\n }\n return response.headers()['set-cookie'];\n }\n\n async getAccessToken(cookie: string, refreshToken: string) {\n const response = await this.page.request.post(this.api.baseUrl + '/umbraco/management/api/v1/security/back-office/token', {\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n Cookie: cookie,\n Origin: this.api.baseUrl\n },\n form: {\n grant_type: 'refresh_token',\n client_id: 'umbraco-back-office',\n redirect_uri: this.api.baseUrl + '/umbraco/oauth_complete',\n refresh_token: refreshToken,\n },\n ignoreHTTPSErrors: true\n });\n\n if (response.status() === 200) {\n console.log('Login successful');\n } else {\n console.error('Login failed');\n }\n return await response.json();\n }\n}\n"]}
@@ -6,6 +6,7 @@ export declare class PartialViewUiHelper extends UiBaseLocators {
6
6
  private readonly partialViewTree;
7
7
  private readonly partialViewUiLoader;
8
8
  private readonly newFolderThreeDots;
9
+ private readonly partialViewCreateModal;
9
10
  constructor(page: Page);
10
11
  clickActionsMenuForPartialView(name: string): Promise<void>;
11
12
  clickActionsMenuAtRoot(): Promise<void>;
@@ -9,13 +9,15 @@ class PartialViewUiHelper extends UiBaseLocators_1.UiBaseLocators {
9
9
  partialViewTree;
10
10
  partialViewUiLoader;
11
11
  newFolderThreeDots;
12
+ partialViewCreateModal;
12
13
  constructor(page) {
13
14
  super(page);
14
- this.newEmptyPartialViewBtn = page.getByLabel('New empty partial view');
15
- this.newPartialViewFromSnippetBtn = page.getByLabel('New partial view from snippet...');
15
+ this.partialViewCreateModal = page.locator('umb-partial-view-create-options-modal');
16
+ this.newEmptyPartialViewBtn = this.partialViewCreateModal.locator('uui-menu-item', { hasText: 'Empty partial view' });
17
+ this.newPartialViewFromSnippetBtn = this.partialViewCreateModal.locator('uui-menu-item', { hasText: 'Partial view from snippet' });
16
18
  this.partialViewTree = page.locator('umb-tree[alias="Umb.Tree.PartialView"]');
17
19
  this.partialViewUiLoader = page.locator('uui-loader');
18
- this.newFolderThreeDots = page.getByLabel('New Folder...');
20
+ this.newFolderThreeDots = this.partialViewCreateModal.locator('uui-menu-item', { hasText: 'Folder' });
19
21
  }
20
22
  async clickActionsMenuForPartialView(name) {
21
23
  await this.clickActionsMenuForName(name);
@@ -1 +1 @@
1
- {"version":3,"file":"PartialViewUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/PartialViewUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {Page, Locator, expect} from \"@playwright/test\"\nimport {UiBaseLocators} from \"./UiBaseLocators\";\n\nexport class PartialViewUiHelper extends UiBaseLocators {\n private readonly newEmptyPartialViewBtn: Locator;\n private readonly newPartialViewFromSnippetBtn: Locator;\n private readonly partialViewTree: Locator;\n private readonly partialViewUiLoader: Locator;\n private readonly newFolderThreeDots: Locator;\n\n constructor(page: Page) {\n super(page);\n this.newEmptyPartialViewBtn = page.getByLabel('New empty partial view');\n this.newPartialViewFromSnippetBtn = page.getByLabel('New partial view from snippet...');\n this.partialViewTree = page.locator('umb-tree[alias=\"Umb.Tree.PartialView\"]');\n this.partialViewUiLoader = page.locator('uui-loader');\n this.newFolderThreeDots = page.getByLabel('New Folder...');\n }\n\n async clickActionsMenuForPartialView(name: string) {\n await this.clickActionsMenuForName(name);\n }\n\n async clickActionsMenuAtRoot() {\n await this.clickActionsMenuForPartialView('Partial Views');\n }\n\n async clickRootFolderCaretButton() {\n await this.openCaretButtonForName('Partial Views');\n }\n\n async waitForPartialViewToBeCreated() {\n await this.waitForNetworkToBeIdle();\n }\n\n async waitForPartialViewToBeDeleted() {\n await this.waitForNetworkToBeIdle();\n }\n\n async waitForPartialViewToBeRenamed() {\n await this.waitForNetworkToBeIdle();\n }\n \n async clickNewEmptyPartialViewButton() {\n await this.newEmptyPartialViewBtn.click();\n }\n\n async clickNewPartialViewFromSnippetButton() {\n await this.newPartialViewFromSnippetBtn.click();\n }\n\n async enterPartialViewName(partialViewName: string) {\n await expect(this.enterAName).toBeVisible();\n await this.enterAName.click();\n await this.enterAName.clear();\n await this.enterAName.fill(partialViewName);\n await expect(this.enterAName).toHaveValue(partialViewName);\n }\n\n async enterPartialViewContent(partialViewContent: string) {\n // The waits in this method is currently needed as the test will fail with expects\n await this.waitUntilPartialViewLoaderIsNoLongerVisible();\n await this.enterMonacoEditorValue(partialViewContent);\n // We need this wait, to be sure that the partial view content is loaded.\n await this.page.waitForTimeout(200);\n }\n\n async openPartialViewAtRoot(partialViewName: string) {\n await this.reloadPartialViewTree();\n await this.page.locator('uui-menu-item[label=\"' + partialViewName +'\"]').click();\n await expect(this.enterAName).toBeVisible();\n }\n\n async createPartialViewFolder(folderName: string) {\n await this.clickCreateOptionsActionMenuOption();\n await this.newFolderThreeDots.click();\n await this.enterFolderName(folderName);\n await this.clickConfirmCreateFolderButton();\n }\n\n async reloadPartialViewTree() {\n await this.reloadTree('Partial Views');\n }\n\n async waitUntilPartialViewLoaderIsNoLongerVisible() {\n await expect(this.partialViewUiLoader).toBeVisible({visible: false});\n }\n\n async isPartialViewRootTreeItemVisible(partialView: string, isVisible: boolean = true, toReload: boolean = true) {\n if (toReload) {\n await this.reloadPartialViewTree();\n }\n return expect(this.partialViewTree.getByText(partialView, {exact: true})).toBeVisible({visible: isVisible});\n }\n}"]}
1
+ {"version":3,"file":"PartialViewUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/PartialViewUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {Page, Locator, expect} from \"@playwright/test\"\nimport {UiBaseLocators} from \"./UiBaseLocators\";\n\nexport class PartialViewUiHelper extends UiBaseLocators {\n private readonly newEmptyPartialViewBtn: Locator;\n private readonly newPartialViewFromSnippetBtn: Locator;\n private readonly partialViewTree: Locator;\n private readonly partialViewUiLoader: Locator;\n private readonly newFolderThreeDots: Locator;\n private readonly partialViewCreateModal: Locator;\n\n constructor(page: Page) {\n super(page);\n this.partialViewCreateModal = page.locator('umb-partial-view-create-options-modal');\n this.newEmptyPartialViewBtn = this.partialViewCreateModal.locator('uui-menu-item', {hasText: 'Empty partial view'});\n this.newPartialViewFromSnippetBtn = this.partialViewCreateModal.locator('uui-menu-item', {hasText: 'Partial view from snippet'});\n this.partialViewTree = page.locator('umb-tree[alias=\"Umb.Tree.PartialView\"]');\n this.partialViewUiLoader = page.locator('uui-loader');\n this.newFolderThreeDots = this.partialViewCreateModal.locator('uui-menu-item', {hasText: 'Folder'});\n }\n\n async clickActionsMenuForPartialView(name: string) {\n await this.clickActionsMenuForName(name);\n }\n\n async clickActionsMenuAtRoot() {\n await this.clickActionsMenuForPartialView('Partial Views');\n }\n\n async clickRootFolderCaretButton() {\n await this.openCaretButtonForName('Partial Views');\n }\n\n async waitForPartialViewToBeCreated() {\n await this.waitForNetworkToBeIdle();\n }\n\n async waitForPartialViewToBeDeleted() {\n await this.waitForNetworkToBeIdle();\n }\n\n async waitForPartialViewToBeRenamed() {\n await this.waitForNetworkToBeIdle();\n }\n \n async clickNewEmptyPartialViewButton() {\n await this.newEmptyPartialViewBtn.click();\n }\n\n async clickNewPartialViewFromSnippetButton() {\n await this.newPartialViewFromSnippetBtn.click();\n }\n\n async enterPartialViewName(partialViewName: string) {\n await expect(this.enterAName).toBeVisible();\n await this.enterAName.click();\n await this.enterAName.clear();\n await this.enterAName.fill(partialViewName);\n await expect(this.enterAName).toHaveValue(partialViewName);\n }\n\n async enterPartialViewContent(partialViewContent: string) {\n // The waits in this method is currently needed as the test will fail with expects\n await this.waitUntilPartialViewLoaderIsNoLongerVisible();\n await this.enterMonacoEditorValue(partialViewContent);\n // We need this wait, to be sure that the partial view content is loaded.\n await this.page.waitForTimeout(200);\n }\n\n async openPartialViewAtRoot(partialViewName: string) {\n await this.reloadPartialViewTree();\n await this.page.locator('uui-menu-item[label=\"' + partialViewName +'\"]').click();\n await expect(this.enterAName).toBeVisible();\n }\n\n async createPartialViewFolder(folderName: string) {\n await this.clickCreateOptionsActionMenuOption();\n await this.newFolderThreeDots.click();\n await this.enterFolderName(folderName);\n await this.clickConfirmCreateFolderButton();\n }\n\n async reloadPartialViewTree() {\n await this.reloadTree('Partial Views');\n }\n\n async waitUntilPartialViewLoaderIsNoLongerVisible() {\n await expect(this.partialViewUiLoader).toBeVisible({visible: false});\n }\n\n async isPartialViewRootTreeItemVisible(partialView: string, isVisible: boolean = true, toReload: boolean = true) {\n if (toReload) {\n await this.reloadPartialViewTree();\n }\n return expect(this.partialViewTree.getByText(partialView, {exact: true})).toBeVisible({visible: isVisible});\n }\n}"]}
@@ -39,6 +39,7 @@ class RelationTypeUiHelper extends UiBaseLocators_1.UiBaseLocators {
39
39
  async goToRelationTypeWithName(name) {
40
40
  await (0, test_1.expect)(this.relationTypeCollection.getByText(name)).toBeVisible();
41
41
  await this.relationTypeCollection.getByText(name).click();
42
+ await this.waitUntilUiLoaderIsNoLongerVisible();
42
43
  }
43
44
  async clickRootFolderCaretButton() {
44
45
  await this.openCaretButtonForName("Relation Types");
@@ -1 +1 @@
1
- {"version":3,"file":"RelationTypeUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/RelationTypeUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {expect, Locator, Page} from \"@playwright/test\"\nimport {UiBaseLocators} from \"./UiBaseLocators\";\n\nexport class RelationTypeUiHelper extends UiBaseLocators{\n private readonly relationTypeNameTxt: Locator;\n private readonly parentToChildRadioBtn: Locator;\n private readonly bidirectionalRadioBtn: Locator;\n private readonly isDependencyToggle: Locator;\n private readonly parentDropDownBox: Locator;\n private readonly childDropDownBox: Locator;\n private readonly relationTypeCollection: Locator;\n private readonly relationTypeWorkspace: Locator;\n private readonly relationTypeParentType: Locator;\n private readonly relationTypeChildType: Locator;\n private readonly relationTypeBidirectional: Locator;\n private readonly relationTypeDependency: Locator;\n private readonly relationsTableRow: Locator;\n\n constructor(page: Page) {\n super(page);\n this.relationTypeNameTxt = page.locator('#name #input');\n this.parentToChildRadioBtn = page.locator(\"uui-radio[label='Parent to child'] #button\");\n this.bidirectionalRadioBtn = page.locator(\"uui-radio[label='Bidirectional'] #button\");\n this.isDependencyToggle = page.locator(\"umb-property-layout[label='Is dependency'] #toggle\");\n this.parentDropDownBox = page.locator(\"umb-property-layout[label='Parent'] #native\");\n this.childDropDownBox = page.locator(\"umb-property-layout[label='Child'] #native\");\n this.relationTypeCollection = page.locator('umb-relation-type-table-collection-view')\n this.relationTypeWorkspace = page.locator('umb-relation-type-detail-workspace-view');\n this.relationTypeParentType = this.relationTypeWorkspace.locator('[label=\"Parent Type\"]').locator('[slot=\"editor\"]');\n this.relationTypeChildType = this.relationTypeWorkspace.locator('[label=\"Child Type\"]').locator('[slot=\"editor\"]');\n this.relationTypeBidirectional =this.relationTypeWorkspace.locator('[label=\"Bidirectional\"]').locator('[slot=\"editor\"]');\n this.relationTypeDependency = this.relationTypeWorkspace.locator('[label=\"Dependency\"]').locator('[slot=\"editor\"]');\n this.relationsTableRow = this.relationTypeWorkspace.locator('umb-table').locator('uui-table-row');\n }\n\n async clickActionsMenuForRelationType(name: string) {\n await this.clickActionsMenuForName(name);\n }\n \n async goToRelationTypeWithName(name: string) {\n await expect(this.relationTypeCollection.getByText(name)).toBeVisible();\n await this.relationTypeCollection.getByText(name).click();\n }\n\n async clickRootFolderCaretButton() {\n await this.openCaretButtonForName(\"Relation Types\");\n }\n\n async clickActionsMenuAtRoot() {\n await this.clickActionsMenuForRelationType(\"Relation Types\");\n }\n\n async openRelationTypeByNameAtRoot(relationTypeName: string) {\n await this.clickRootFolderCaretButton();\n await this.page.getByLabel(relationTypeName).click();\n }\n\n async enterRelationTypeName(name: string) {\n await this.relationTypeNameTxt.clear();\n await this.relationTypeNameTxt.fill(name);\n }\n\n async clickParentToChildRadioButton() {\n await this.parentToChildRadioBtn.click();\n }\n \n async doesParentTypeContainValue(value: string) {\n await expect(this.relationTypeParentType).toContainText(value);\n }\n\n async doesChildTypeContainValue(value: string) {\n await expect(this.relationTypeChildType).toContainText(value);\n }\n\n async doesBidirectionalContainValue(value: string) {\n await expect(this.relationTypeBidirectional).toContainText(value);\n }\n\n async doesDependencyContainValue(value: string) {\n await expect(this.relationTypeDependency).toContainText(value);\n }\n\n async isRelationWithParentAndChildVisible(parent: string, child: string, isVisible: boolean = true) {\n await expect(this.relationsTableRow.filter({has: this.page.locator('uui-table-cell').first().getByText(parent)}).filter({has: this.page.locator('uui-table-cell').nth(1).getByText(child)})).toBeVisible({visible: isVisible});\n }\n\n async clickBidirectionalRadioButton() {\n await this.bidirectionalRadioBtn.click();\n }\n\n async clickIsDependencyToggle() {\n await this.isDependencyToggle.click();\n }\n\n async selectParentOption(option: string) {\n await this.parentDropDownBox.selectOption({ label: option });\n }\n\n async selectChildOption(option: string) {\n await this.childDropDownBox.selectOption({ label: option });\n }\n}"]}
1
+ {"version":3,"file":"RelationTypeUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/RelationTypeUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {expect, Locator, Page} from \"@playwright/test\"\nimport {UiBaseLocators} from \"./UiBaseLocators\";\n\nexport class RelationTypeUiHelper extends UiBaseLocators{\n private readonly relationTypeNameTxt: Locator;\n private readonly parentToChildRadioBtn: Locator;\n private readonly bidirectionalRadioBtn: Locator;\n private readonly isDependencyToggle: Locator;\n private readonly parentDropDownBox: Locator;\n private readonly childDropDownBox: Locator;\n private readonly relationTypeCollection: Locator;\n private readonly relationTypeWorkspace: Locator;\n private readonly relationTypeParentType: Locator;\n private readonly relationTypeChildType: Locator;\n private readonly relationTypeBidirectional: Locator;\n private readonly relationTypeDependency: Locator;\n private readonly relationsTableRow: Locator;\n\n constructor(page: Page) {\n super(page);\n this.relationTypeNameTxt = page.locator('#name #input');\n this.parentToChildRadioBtn = page.locator(\"uui-radio[label='Parent to child'] #button\");\n this.bidirectionalRadioBtn = page.locator(\"uui-radio[label='Bidirectional'] #button\");\n this.isDependencyToggle = page.locator(\"umb-property-layout[label='Is dependency'] #toggle\");\n this.parentDropDownBox = page.locator(\"umb-property-layout[label='Parent'] #native\");\n this.childDropDownBox = page.locator(\"umb-property-layout[label='Child'] #native\");\n this.relationTypeCollection = page.locator('umb-relation-type-table-collection-view')\n this.relationTypeWorkspace = page.locator('umb-relation-type-detail-workspace-view');\n this.relationTypeParentType = this.relationTypeWorkspace.locator('[label=\"Parent Type\"]').locator('[slot=\"editor\"]');\n this.relationTypeChildType = this.relationTypeWorkspace.locator('[label=\"Child Type\"]').locator('[slot=\"editor\"]');\n this.relationTypeBidirectional =this.relationTypeWorkspace.locator('[label=\"Bidirectional\"]').locator('[slot=\"editor\"]');\n this.relationTypeDependency = this.relationTypeWorkspace.locator('[label=\"Dependency\"]').locator('[slot=\"editor\"]');\n this.relationsTableRow = this.relationTypeWorkspace.locator('umb-table').locator('uui-table-row');\n }\n\n async clickActionsMenuForRelationType(name: string) {\n await this.clickActionsMenuForName(name);\n }\n \n async goToRelationTypeWithName(name: string) {\n await expect(this.relationTypeCollection.getByText(name)).toBeVisible();\n await this.relationTypeCollection.getByText(name).click();\n await this.waitUntilUiLoaderIsNoLongerVisible();\n }\n\n async clickRootFolderCaretButton() {\n await this.openCaretButtonForName(\"Relation Types\");\n }\n\n async clickActionsMenuAtRoot() {\n await this.clickActionsMenuForRelationType(\"Relation Types\");\n }\n\n async openRelationTypeByNameAtRoot(relationTypeName: string) {\n await this.clickRootFolderCaretButton();\n await this.page.getByLabel(relationTypeName).click();\n }\n\n async enterRelationTypeName(name: string) {\n await this.relationTypeNameTxt.clear();\n await this.relationTypeNameTxt.fill(name);\n }\n\n async clickParentToChildRadioButton() {\n await this.parentToChildRadioBtn.click();\n }\n \n async doesParentTypeContainValue(value: string) {\n await expect(this.relationTypeParentType).toContainText(value);\n }\n\n async doesChildTypeContainValue(value: string) {\n await expect(this.relationTypeChildType).toContainText(value);\n }\n\n async doesBidirectionalContainValue(value: string) {\n await expect(this.relationTypeBidirectional).toContainText(value);\n }\n\n async doesDependencyContainValue(value: string) {\n await expect(this.relationTypeDependency).toContainText(value);\n }\n\n async isRelationWithParentAndChildVisible(parent: string, child: string, isVisible: boolean = true) {\n await expect(this.relationsTableRow.filter({has: this.page.locator('uui-table-cell').first().getByText(parent)}).filter({has: this.page.locator('uui-table-cell').nth(1).getByText(child)})).toBeVisible({visible: isVisible});\n }\n\n async clickBidirectionalRadioButton() {\n await this.bidirectionalRadioBtn.click();\n }\n\n async clickIsDependencyToggle() {\n await this.isDependencyToggle.click();\n }\n\n async selectParentOption(option: string) {\n await this.parentDropDownBox.selectOption({ label: option });\n }\n\n async selectChildOption(option: string) {\n await this.childDropDownBox.selectOption({ label: option });\n }\n}"]}
@@ -4,6 +4,7 @@ export declare class ScriptUiHelper extends UiBaseLocators {
4
4
  private readonly newJavascriptFileBtn;
5
5
  private readonly scriptTree;
6
6
  private readonly newFolderThreeDots;
7
+ private readonly scriptCreateModal;
7
8
  constructor(page: Page);
8
9
  clickActionsMenuForScript(name: string): Promise<void>;
9
10
  createScriptFolder(folderName: string): Promise<void>;
@@ -8,17 +8,20 @@ class ScriptUiHelper extends UiBaseLocators_1.UiBaseLocators {
8
8
  newJavascriptFileBtn;
9
9
  scriptTree;
10
10
  newFolderThreeDots;
11
+ scriptCreateModal;
11
12
  constructor(page) {
12
13
  super(page);
13
- this.newJavascriptFileBtn = page.getByLabel('New Javascript file');
14
+ this.scriptCreateModal = page.locator('umb-script-create-options-modal');
15
+ this.newJavascriptFileBtn = this.scriptCreateModal.locator('umb-ref-item', { hasText: 'JavaScript file' });
16
+ this.newFolderThreeDots = this.scriptCreateModal.locator('umb-ref-item', { hasText: 'Folder' });
14
17
  this.scriptTree = page.locator('umb-tree[alias="Umb.Tree.Script"]');
15
- this.newFolderThreeDots = page.getByLabel('New Folder...');
16
18
  }
17
19
  async clickActionsMenuForScript(name) {
18
20
  await this.clickActionsMenuForName(name);
19
21
  }
20
22
  async createScriptFolder(folderName) {
21
23
  await this.clickCreateOptionsActionMenuOption();
24
+ await (0, test_1.expect)(this.newFolderThreeDots).toBeVisible();
22
25
  await this.newFolderThreeDots.click();
23
26
  await this.enterFolderName(folderName);
24
27
  await this.clickConfirmCreateFolderButton();
@@ -30,6 +33,7 @@ class ScriptUiHelper extends UiBaseLocators_1.UiBaseLocators {
30
33
  await this.openCaretButtonForName('Scripts');
31
34
  }
32
35
  async clickNewJavascriptFileButton() {
36
+ await (0, test_1.expect)(this.newJavascriptFileBtn).toBeVisible();
33
37
  await this.newJavascriptFileBtn.click();
34
38
  }
35
39
  async waitForScriptToBeCreated() {
@@ -1 +1 @@
1
- {"version":3,"file":"ScriptUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/ScriptUiHelper.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 ScriptUiHelper extends UiBaseLocators{\n private readonly newJavascriptFileBtn: Locator;\n private readonly scriptTree: Locator;\n private readonly newFolderThreeDots: Locator;\n\n constructor(page: Page) {\n super(page);\n this.newJavascriptFileBtn = page.getByLabel('New Javascript file');\n this.scriptTree = page.locator('umb-tree[alias=\"Umb.Tree.Script\"]');\n this.newFolderThreeDots = page.getByLabel('New Folder...');\n }\n\n async clickActionsMenuForScript(name: string) {\n await this.clickActionsMenuForName(name);\n }\n\n async createScriptFolder(folderName: string) {\n await this.clickCreateOptionsActionMenuOption();\n await this.newFolderThreeDots.click();\n await this.enterFolderName(folderName);\n await this.clickConfirmCreateFolderButton();\n }\n\n async clickActionsMenuAtRoot() {\n await this.clickActionsMenuForScript('Scripts');\n }\n\n async clickRootFolderCaretButton() {\n await this.openCaretButtonForName('Scripts');\n }\n\n async clickNewJavascriptFileButton() {\n await this.newJavascriptFileBtn.click();\n }\n \n async waitForScriptToBeCreated() {\n await this.waitForNetworkToBeIdle();\n }\n\n async waitForScriptToBeDeleted() {\n await this.waitForNetworkToBeIdle();\n }\n\n async waitForScriptToBeRenamed() {\n await this.waitForNetworkToBeIdle();\n }\n \n // Will only work for root scripts\n async goToScript(scriptName: string) {\n await this.goToSection(ConstantHelper.sections.settings);\n await this.reloadScriptTree();\n await this.page.getByLabel(scriptName, {exact: true}).click();\n }\n\n async enterScriptName(scriptContent: string) {\n await expect(this.enterAName).toBeVisible();\n await this.enterAName.fill(scriptContent);\n }\n\n async enterScriptContent(scriptContent: string) {\n await this.enterMonacoEditorValue(scriptContent);\n }\n\n async openScriptAtRoot(scriptName: string) {\n await this.reloadScriptTree();\n await this.page.getByLabel(scriptName, {exact: true}).click();\n }\n\n async reloadScriptTree() {\n await this.reloadTree('Scripts');\n }\n\n async isScriptRootTreeItemVisible(scriptName: string, isVisible: boolean = true, toReload: boolean = true){\n if (toReload) {\n await this.reloadScriptTree();\n }\n return expect(this.scriptTree.getByText(scriptName, {exact: true})).toBeVisible({visible: isVisible});\n }\n}"]}
1
+ {"version":3,"file":"ScriptUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/ScriptUiHelper.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 ScriptUiHelper extends UiBaseLocators{\n private readonly newJavascriptFileBtn: Locator;\n private readonly scriptTree: Locator;\n private readonly newFolderThreeDots: Locator;\n private readonly scriptCreateModal: Locator;\n\n constructor(page: Page) {\n super(page);\n this.scriptCreateModal = page.locator('umb-script-create-options-modal');\n this.newJavascriptFileBtn = this.scriptCreateModal.locator('umb-ref-item', {hasText: 'JavaScript file'});\n this.newFolderThreeDots = this.scriptCreateModal.locator('umb-ref-item', {hasText: 'Folder'});\n this.scriptTree = page.locator('umb-tree[alias=\"Umb.Tree.Script\"]');\n }\n\n async clickActionsMenuForScript(name: string) {\n await this.clickActionsMenuForName(name);\n }\n\n async createScriptFolder(folderName: string) {\n await this.clickCreateOptionsActionMenuOption();\n await expect(this.newFolderThreeDots).toBeVisible();\n await this.newFolderThreeDots.click();\n await this.enterFolderName(folderName);\n await this.clickConfirmCreateFolderButton();\n }\n\n async clickActionsMenuAtRoot() {\n await this.clickActionsMenuForScript('Scripts');\n }\n\n async clickRootFolderCaretButton() {\n await this.openCaretButtonForName('Scripts');\n }\n\n async clickNewJavascriptFileButton() {\n await expect(this.newJavascriptFileBtn).toBeVisible();\n await this.newJavascriptFileBtn.click();\n }\n \n async waitForScriptToBeCreated() {\n await this.waitForNetworkToBeIdle();\n }\n\n async waitForScriptToBeDeleted() {\n await this.waitForNetworkToBeIdle();\n }\n\n async waitForScriptToBeRenamed() {\n await this.waitForNetworkToBeIdle();\n }\n \n // Will only work for root scripts\n async goToScript(scriptName: string) {\n await this.goToSection(ConstantHelper.sections.settings);\n await this.reloadScriptTree();\n await this.page.getByLabel(scriptName, {exact: true}).click();\n }\n\n async enterScriptName(scriptContent: string) {\n await expect(this.enterAName).toBeVisible();\n await this.enterAName.fill(scriptContent);\n }\n\n async enterScriptContent(scriptContent: string) {\n await this.enterMonacoEditorValue(scriptContent);\n }\n\n async openScriptAtRoot(scriptName: string) {\n await this.reloadScriptTree();\n await this.page.getByLabel(scriptName, {exact: true}).click();\n }\n\n async reloadScriptTree() {\n await this.reloadTree('Scripts');\n }\n\n async isScriptRootTreeItemVisible(scriptName: string, isVisible: boolean = true, toReload: boolean = true){\n if (toReload) {\n await this.reloadScriptTree();\n }\n return expect(this.scriptTree.getByText(scriptName, {exact: true})).toBeVisible({visible: isVisible});\n }\n}"]}
@@ -2,14 +2,17 @@ import { Page } from "@playwright/test";
2
2
  import { UiBaseLocators } from "./UiBaseLocators";
3
3
  export declare class StylesheetUiHelper extends UiBaseLocators {
4
4
  private readonly newStylesheetBtn;
5
+ private readonly newStylesheetFolderBtn;
5
6
  private readonly stylesheetNameTxt;
6
7
  private readonly stylesheetTree;
8
+ private readonly stylesheetCreateModal;
7
9
  constructor(page: Page);
8
10
  clickActionsMenuForStylesheet(name: string): Promise<void>;
9
11
  createStylesheetFolder(folderName: string): Promise<void>;
10
12
  clickActionsMenuAtRoot(): Promise<void>;
11
13
  clickRootFolderCaretButton(): Promise<void>;
12
14
  clickNewStylesheetButton(): Promise<void>;
15
+ clickNewStylesheetFolderButton(): Promise<void>;
13
16
  waitForStylesheetToBeCreated(): Promise<void>;
14
17
  waitForStylesheetToBeDeleted(): Promise<void>;
15
18
  waitForStylesheetToBeRenamed(): Promise<void>;
@@ -6,12 +6,16 @@ const UiBaseLocators_1 = require("./UiBaseLocators");
6
6
  const ConstantHelper_1 = require("./ConstantHelper");
7
7
  class StylesheetUiHelper extends UiBaseLocators_1.UiBaseLocators {
8
8
  newStylesheetBtn;
9
+ newStylesheetFolderBtn;
9
10
  stylesheetNameTxt;
10
11
  stylesheetTree;
12
+ stylesheetCreateModal;
11
13
  constructor(page) {
12
14
  super(page);
15
+ this.stylesheetCreateModal = page.locator('umb-entity-create-option-action-list-modal');
16
+ this.newStylesheetBtn = this.stylesheetCreateModal.locator('umb-ref-item', { hasText: 'Stylesheet' });
17
+ this.newStylesheetFolderBtn = this.stylesheetCreateModal.locator('umb-ref-item', { hasText: 'Folder' });
13
18
  this.stylesheetNameTxt = page.locator('umb-stylesheet-workspace-editor').locator('#nameInput #input');
14
- this.newStylesheetBtn = this.createOptionActionListModal.locator('[name="New Stylesheet"]');
15
19
  this.stylesheetTree = page.locator('umb-tree[alias="Umb.Tree.Stylesheet"]');
16
20
  }
17
21
  async clickActionsMenuForStylesheet(name) {
@@ -19,7 +23,7 @@ class StylesheetUiHelper extends UiBaseLocators_1.UiBaseLocators {
19
23
  }
20
24
  async createStylesheetFolder(folderName) {
21
25
  await this.clickCreateActionMenuOption();
22
- await this.clickFolderButton();
26
+ await this.clickNewStylesheetFolderButton();
23
27
  await this.enterFolderName(folderName);
24
28
  await this.clickConfirmCreateFolderButton();
25
29
  }
@@ -30,8 +34,13 @@ class StylesheetUiHelper extends UiBaseLocators_1.UiBaseLocators {
30
34
  await this.openCaretButtonForName('Stylesheets');
31
35
  }
32
36
  async clickNewStylesheetButton() {
37
+ await (0, test_1.expect)(this.newStylesheetBtn).toBeVisible();
33
38
  await this.newStylesheetBtn.click();
34
39
  }
40
+ async clickNewStylesheetFolderButton() {
41
+ await (0, test_1.expect)(this.newStylesheetFolderBtn).toBeVisible();
42
+ await this.newStylesheetFolderBtn.click();
43
+ }
35
44
  async waitForStylesheetToBeCreated() {
36
45
  await this.waitForNetworkToBeIdle();
37
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"StylesheetUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/StylesheetUiHelper.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 StylesheetUiHelper extends UiBaseLocators{\n private readonly newStylesheetBtn: Locator;\n private readonly stylesheetNameTxt: Locator;\n private readonly stylesheetTree: Locator;\n\n constructor(page: Page) {\n super(page);\n this.stylesheetNameTxt = page.locator('umb-stylesheet-workspace-editor').locator('#nameInput #input');\n this.newStylesheetBtn = this.createOptionActionListModal.locator('[name=\"New Stylesheet\"]');\n this.stylesheetTree = page.locator('umb-tree[alias=\"Umb.Tree.Stylesheet\"]');\n }\n\n async clickActionsMenuForStylesheet(name: string) {\n await this.clickActionsMenuForName(name);\n }\n\n async createStylesheetFolder(folderName: string) {\n await this.clickCreateActionMenuOption();\n await this.clickFolderButton();\n await this.enterFolderName(folderName);\n await this.clickConfirmCreateFolderButton();\n }\n \n async clickActionsMenuAtRoot() {\n await this.clickActionsMenuForStylesheet('Stylesheets');\n }\n\n async clickRootFolderCaretButton() {\n await this.openCaretButtonForName('Stylesheets');\n }\n\n async clickNewStylesheetButton() {\n await this.newStylesheetBtn.click();\n }\n\n async waitForStylesheetToBeCreated() {\n await this.waitForNetworkToBeIdle();\n }\n\n async waitForStylesheetToBeDeleted() {\n await this.waitForNetworkToBeIdle();\n }\n\n async waitForStylesheetToBeRenamed() {\n await this.waitForNetworkToBeIdle();\n }\n \n async enterStylesheetName(stylesheetName: string) {\n await expect(this.stylesheetNameTxt).toBeVisible();\n await this.stylesheetNameTxt.clear();\n await this.stylesheetNameTxt.fill(stylesheetName);\n }\n \n async enterStylesheetContent(stylesheetContent: string) {\n await this.enterMonacoEditorValue(stylesheetContent);\n }\n\n async openStylesheetByNameAtRoot(stylesheetName: string) {\n await this.reloadStylesheetTree();\n await this.page.getByLabel(stylesheetName, {exact: true}).click();\n }\n\n async reloadStylesheetTree() {\n await this.reloadTree('Stylesheets');\n }\n\n async isStylesheetRootTreeItemVisible(stylesheetName: string, isVisible: boolean = true, toReload: boolean = true) {\n if (toReload) {\n await this.reloadStylesheetTree();\n }\n return expect(this.stylesheetTree.getByText(stylesheetName, {exact: true})).toBeVisible({visible: isVisible});\n }\n\n async goToStylesheet(stylesheetName: string) {\n await this.goToSection(ConstantHelper.sections.settings);\n await this.reloadStylesheetTree();\n await this.page.getByLabel(stylesheetName, {exact: true}).click();\n }\n}"]}
1
+ {"version":3,"file":"StylesheetUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/StylesheetUiHelper.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 StylesheetUiHelper extends UiBaseLocators{\n private readonly newStylesheetBtn: Locator;\n private readonly newStylesheetFolderBtn: Locator;\n private readonly stylesheetNameTxt: Locator;\n private readonly stylesheetTree: Locator;\n private readonly stylesheetCreateModal: Locator;\n\n constructor(page: Page) {\n super(page);\n this.stylesheetCreateModal = page.locator('umb-entity-create-option-action-list-modal');\n this.newStylesheetBtn = this.stylesheetCreateModal.locator('umb-ref-item', {hasText: 'Stylesheet'});\n this.newStylesheetFolderBtn = this.stylesheetCreateModal.locator('umb-ref-item', {hasText: 'Folder'});\n this.stylesheetNameTxt = page.locator('umb-stylesheet-workspace-editor').locator('#nameInput #input');\n this.stylesheetTree = page.locator('umb-tree[alias=\"Umb.Tree.Stylesheet\"]');\n }\n\n async clickActionsMenuForStylesheet(name: string) {\n await this.clickActionsMenuForName(name);\n }\n\n async createStylesheetFolder(folderName: string) {\n await this.clickCreateActionMenuOption();\n await this.clickNewStylesheetFolderButton();\n await this.enterFolderName(folderName);\n await this.clickConfirmCreateFolderButton();\n }\n \n async clickActionsMenuAtRoot() {\n await this.clickActionsMenuForStylesheet('Stylesheets');\n }\n\n async clickRootFolderCaretButton() {\n await this.openCaretButtonForName('Stylesheets');\n }\n\n async clickNewStylesheetButton() {\n await expect(this.newStylesheetBtn).toBeVisible();\n await this.newStylesheetBtn.click();\n } \n \n async clickNewStylesheetFolderButton() {\n await expect(this.newStylesheetFolderBtn).toBeVisible();\n await this.newStylesheetFolderBtn.click();\n }\n\n async waitForStylesheetToBeCreated() {\n await this.waitForNetworkToBeIdle();\n }\n\n async waitForStylesheetToBeDeleted() {\n await this.waitForNetworkToBeIdle();\n }\n\n async waitForStylesheetToBeRenamed() {\n await this.waitForNetworkToBeIdle();\n }\n \n async enterStylesheetName(stylesheetName: string) {\n await expect(this.stylesheetNameTxt).toBeVisible();\n await this.stylesheetNameTxt.clear();\n await this.stylesheetNameTxt.fill(stylesheetName);\n }\n \n async enterStylesheetContent(stylesheetContent: string) {\n await this.enterMonacoEditorValue(stylesheetContent);\n }\n\n async openStylesheetByNameAtRoot(stylesheetName: string) {\n await this.reloadStylesheetTree();\n await this.page.getByLabel(stylesheetName, {exact: true}).click();\n }\n\n async reloadStylesheetTree() {\n await this.reloadTree('Stylesheets');\n }\n\n async isStylesheetRootTreeItemVisible(stylesheetName: string, isVisible: boolean = true, toReload: boolean = true) {\n if (toReload) {\n await this.reloadStylesheetTree();\n }\n return expect(this.stylesheetTree.getByText(stylesheetName, {exact: true})).toBeVisible({visible: isVisible});\n }\n\n async goToStylesheet(stylesheetName: string) {\n await this.goToSection(ConstantHelper.sections.settings);\n await this.reloadStylesheetTree();\n await this.page.getByLabel(stylesheetName, {exact: true}).click();\n }\n}"]}
@@ -147,6 +147,12 @@ export declare class UiBaseLocators {
147
147
  readonly caretBtn: Locator;
148
148
  readonly workspaceActionMenuBtn: Locator;
149
149
  readonly monacoEditor: Locator;
150
+ readonly createNewDocumentBlueprintBtn: Locator;
151
+ readonly openedModal: Locator;
152
+ readonly uiLoader: Locator;
153
+ readonly createDocumentBlueprintModal: Locator;
154
+ readonly entityItem: Locator;
155
+ readonly sectionLinks: Locator;
150
156
  constructor(page: Page);
151
157
  clickActionsMenuForNameInSectionSidebar(name: string): Promise<void>;
152
158
  clickActionsMenuForName(name: string): Promise<void>;
@@ -293,7 +299,7 @@ export declare class UiBaseLocators {
293
299
  clickReferenceNodeLinkWithName(name: string): Promise<void>;
294
300
  clickLinkWithName(name: string, isExact?: boolean): Promise<void>;
295
301
  clickMediaPickerModalSubmitButton(): Promise<void>;
296
- selectMediaWithName(mediaName: string): Promise<void>;
302
+ selectMediaWithName(mediaName: string, isForce?: boolean): Promise<void>;
297
303
  selectMediaWithTestId(mediaKey: string): Promise<void>;
298
304
  clickCreateModalButton(): Promise<void>;
299
305
  clickMediaCaptionAltTextModalSubmitButton(): Promise<void>;
@@ -348,5 +354,8 @@ export declare class UiBaseLocators {
348
354
  isMediaCardItemWithNameVisible(itemName: string, isVisible?: boolean): Promise<void>;
349
355
  clickWorkspaceActionMenuButton(): Promise<void>;
350
356
  clickLockActionMenuOption(): Promise<void>;
357
+ isDashboardTabWithNameVisible(name: string, isVisible?: boolean): Promise<void>;
351
358
  enterMonacoEditorValue(value: string): Promise<void>;
359
+ waitUntilUiLoaderIsNoLongerVisible(): Promise<void>;
360
+ isWorkspaceViewTabWithAliasVisible(alias: string, isVisible?: boolean): Promise<void>;
352
361
  }