@umbraco/playwright-testhelpers 2.0.0-beta.77 → 2.0.0-beta.79
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.
- package/dist/lib/helpers/ContentUiHelper.d.ts +1 -1
- package/dist/lib/helpers/ContentUiHelper.js +3 -3
- package/dist/lib/helpers/ContentUiHelper.js.map +1 -1
- package/dist/lib/helpers/DataTypeUiHelper.d.ts +3 -2
- package/dist/lib/helpers/DataTypeUiHelper.js +12 -8
- package/dist/lib/helpers/DataTypeUiHelper.js.map +1 -1
- package/dist/lib/helpers/LogViewerUiHelper.js +1 -1
- package/dist/lib/helpers/LogViewerUiHelper.js.map +1 -1
- package/dist/lib/helpers/MediaApiHelper.d.ts +1 -0
- package/dist/lib/helpers/MediaApiHelper.js +14 -0
- package/dist/lib/helpers/MediaApiHelper.js.map +1 -1
- package/dist/lib/helpers/MediaUiHelper.d.ts +3 -1
- package/dist/lib/helpers/MediaUiHelper.js +12 -4
- package/dist/lib/helpers/MediaUiHelper.js.map +1 -1
- package/dist/lib/helpers/TemporaryFileApiHelper.d.ts +4 -0
- package/dist/lib/helpers/TemporaryFileApiHelper.js +3 -0
- package/dist/lib/helpers/TemporaryFileApiHelper.js.map +1 -1
- package/dist/lib/helpers/UiBaseLocators.d.ts +7 -0
- package/dist/lib/helpers/UiBaseLocators.js +31 -11
- package/dist/lib/helpers/UiBaseLocators.js.map +1 -1
- package/dist/lib/helpers/UserUiHelper.js +2 -0
- package/dist/lib/helpers/UserUiHelper.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -5,7 +5,6 @@ const UiBaseLocators_1 = require("./UiBaseLocators");
|
|
|
5
5
|
const test_1 = require("@playwright/test");
|
|
6
6
|
class MediaUiHelper extends UiBaseLocators_1.UiBaseLocators {
|
|
7
7
|
createMediaItemBtn;
|
|
8
|
-
mediaTypePopoverBtn;
|
|
9
8
|
mediaNameTxt;
|
|
10
9
|
actionModalCreateBtn;
|
|
11
10
|
mediaSearchTxt;
|
|
@@ -18,15 +17,15 @@ class MediaUiHelper extends UiBaseLocators_1.UiBaseLocators {
|
|
|
18
17
|
confirmEmptyRecycleBinBtn;
|
|
19
18
|
recycleBinMenuItem;
|
|
20
19
|
recycleBinMenuItemCaretBtn;
|
|
20
|
+
mediaSectionCreateBtn;
|
|
21
21
|
constructor(page) {
|
|
22
22
|
super(page);
|
|
23
23
|
this.createMediaItemBtn = page.locator('umb-create-media-collection-action').getByLabel('Create');
|
|
24
|
-
this.mediaTypePopoverBtn = page.locator('#collection-action-menu-popover');
|
|
25
24
|
this.mediaNameTxt = page.locator('#name-input #input');
|
|
26
25
|
this.actionModalCreateBtn = page.locator('#action-modal').getByLabel('Create');
|
|
27
26
|
this.mediaSearchTxt = page.getByLabel('Search', { exact: true });
|
|
28
27
|
this.trashBtn = page.getByLabel('Trash', { exact: true });
|
|
29
|
-
this.restoreThreeDotsBtn = page.
|
|
28
|
+
this.restoreThreeDotsBtn = page.getByRole('button', { name: 'Restore...' });
|
|
30
29
|
this.emptyRecycleBinThreeDotsBtn = page.getByLabel('Empty Recycle Bin...', { exact: true });
|
|
31
30
|
this.confirmTrashBtn = page.locator('#confirm').getByLabel('Trash');
|
|
32
31
|
this.recycleBinBtn = page.getByLabel('Recycle Bin', { exact: true });
|
|
@@ -34,6 +33,7 @@ class MediaUiHelper extends UiBaseLocators_1.UiBaseLocators {
|
|
|
34
33
|
this.confirmEmptyRecycleBinBtn = page.getByLabel('Empty Recycle Bin', { exact: true });
|
|
35
34
|
this.recycleBinMenuItem = page.locator('uui-menu-item[label="Recycle Bin"]');
|
|
36
35
|
this.recycleBinMenuItemCaretBtn = this.recycleBinMenuItem.locator('#caret-button');
|
|
36
|
+
this.mediaSectionCreateBtn = this.page.locator('#header').filter({ hasText: 'Media' }).getByLabel('#actions_create');
|
|
37
37
|
}
|
|
38
38
|
async clickCreateMediaItemButton() {
|
|
39
39
|
await this.createMediaItemBtn.click();
|
|
@@ -43,7 +43,7 @@ class MediaUiHelper extends UiBaseLocators_1.UiBaseLocators {
|
|
|
43
43
|
await this.mediaNameTxt.fill(name);
|
|
44
44
|
}
|
|
45
45
|
async clickMediaTypeWithNameButton(mediaTypeName) {
|
|
46
|
-
await this.
|
|
46
|
+
await this.page.getByLabel(mediaTypeName, { exact: true }).click({ force: true });
|
|
47
47
|
}
|
|
48
48
|
async searchForMediaItemByName(name) {
|
|
49
49
|
await this.mediaSearchTxt.clear();
|
|
@@ -64,6 +64,7 @@ class MediaUiHelper extends UiBaseLocators_1.UiBaseLocators {
|
|
|
64
64
|
async restoreMediaItem(name) {
|
|
65
65
|
await this.clickActionsMenuForName(name);
|
|
66
66
|
await this.restoreThreeDotsBtn.click();
|
|
67
|
+
await this.page.waitForTimeout(1000);
|
|
67
68
|
await this.restoreBtn.click();
|
|
68
69
|
}
|
|
69
70
|
async deleteMediaItem(name) {
|
|
@@ -71,6 +72,13 @@ class MediaUiHelper extends UiBaseLocators_1.UiBaseLocators {
|
|
|
71
72
|
await this.clickDeleteButton();
|
|
72
73
|
await this.clickConfirmToDeleteButton();
|
|
73
74
|
}
|
|
75
|
+
async clickCreateMediaWithType(mediaTypeName) {
|
|
76
|
+
await this.mediaSectionCreateBtn.click({ force: true });
|
|
77
|
+
await this.clickMediaTypeName(mediaTypeName);
|
|
78
|
+
}
|
|
79
|
+
async clickMediaTypeName(mediaTypeName) {
|
|
80
|
+
await this.documentTypeNode.filter({ hasText: mediaTypeName }).click();
|
|
81
|
+
}
|
|
74
82
|
async clickEmptyRecycleBinButton() {
|
|
75
83
|
await this.emptyRecycleBinThreeDotsBtn.click({ force: true });
|
|
76
84
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/MediaUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {UiBaseLocators} from \"./UiBaseLocators\";\nimport {expect, Locator, Page} from \"@playwright/test\";\n\nexport class MediaUiHelper extends UiBaseLocators {\n private readonly createMediaItemBtn: Locator;\n private readonly mediaTypePopoverBtn: Locator;\n private readonly mediaNameTxt: Locator;\n private readonly actionModalCreateBtn: Locator;\n private readonly mediaSearchTxt: Locator;\n private readonly trashBtn: Locator;\n private readonly restoreThreeDotsBtn: Locator;\n private readonly emptyRecycleBinThreeDotsBtn: Locator;\n private readonly confirmTrashBtn: Locator;\n private readonly recycleBinBtn: Locator;\n private readonly restoreBtn: Locator;\n private readonly confirmEmptyRecycleBinBtn: Locator;\n private readonly recycleBinMenuItem: Locator;\n private readonly recycleBinMenuItemCaretBtn: Locator;\n\n constructor(page: Page) {\n super(page);\n this.createMediaItemBtn = page.locator('umb-create-media-collection-action').getByLabel('Create');\n this.mediaTypePopoverBtn = page.locator('#collection-action-menu-popover');\n this.mediaNameTxt = page.locator('#name-input #input');\n this.actionModalCreateBtn = page.locator('#action-modal').getByLabel('Create');\n this.mediaSearchTxt = page.getByLabel('Search', {exact: true});\n this.trashBtn = page.getByLabel('Trash', {exact: true});\n this.restoreThreeDotsBtn = page.getByLabel('Restore...', {exact: true});\n this.emptyRecycleBinThreeDotsBtn = page.getByLabel('Empty Recycle Bin...', {exact: true});\n this.confirmTrashBtn = page.locator('#confirm').getByLabel('Trash');\n this.recycleBinBtn = page.getByLabel('Recycle Bin', {exact: true});\n this.restoreBtn = page.getByLabel('Restore', {exact: true});\n this.confirmEmptyRecycleBinBtn = page.getByLabel('Empty Recycle Bin', {exact: true});\n this.recycleBinMenuItem = page.locator('uui-menu-item[label=\"Recycle Bin\"]');\n this.recycleBinMenuItemCaretBtn = this.recycleBinMenuItem.locator('#caret-button');\n }\n\n async clickCreateMediaItemButton() {\n await this.createMediaItemBtn.click();\n }\n\n async enterMediaItemName(name: string) {\n await this.mediaNameTxt.clear();\n await this.mediaNameTxt.fill(name);\n }\n\n async clickMediaTypeWithNameButton(mediaTypeName: string) {\n await this.mediaTypePopoverBtn.getByLabel(mediaTypeName).click();\n }\n\n async searchForMediaItemByName(name: string) {\n await this.mediaSearchTxt.clear();\n await this.mediaSearchTxt.fill(name);\n }\n\n async doesMediaCardsContainAmount(count: number) {\n await expect(this.mediaCardItems).toHaveCount(count);\n }\n\n async doesMediaCardContainText(name: string) {\n await expect(this.mediaCardItems).toContainText(name);\n }\n\n async clickTrashButton() {\n await this.trashBtn.click();\n }\n\n async clickConfirmTrashButton() {\n await this.confirmTrashBtn.click();\n }\n\n async restoreMediaItem(name: string) {\n await this.clickActionsMenuForName(name);\n await this.restoreThreeDotsBtn.click();\n await this.restoreBtn.click();\n }\n\n async deleteMediaItem(name: string) {\n await this.clickActionsMenuForName(name);\n await this.clickDeleteButton();\n await this.clickConfirmToDeleteButton();\n }\n\n async clickEmptyRecycleBinButton() {\n await this.emptyRecycleBinThreeDotsBtn.click({force: true});\n }\n\n async clickConfirmEmptyRecycleBinButton() {\n await this.confirmEmptyRecycleBinBtn.click();\n }\n\n async clickCreateModalButton() {\n await this.actionModalCreateBtn.click();\n }\n\n async clickMediaCaretButtonForName(name: string) {\n await this.page.locator('umb-media-tree-item [label=\"' + name + '\"]').locator('#caret-button').click();\n }\n\n async reloadRecycleBin(containsMediaItems = true) {\n // We need to wait to be sure that the item is visible after reload\n await this.page.waitForTimeout(500);\n await this.page.reload();\n\n await expect(this.recycleBinMenuItem).toBeVisible();\n\n await this.clickActionsMenuForName('Recycle Bin');\n await this.clickReloadButton();\n await expect(this.recycleBinMenuItem).toBeVisible();\n\n // If the Recycle Bin does not contain any media items, the caret button should not be visible. and we should not try to click it\n if (!containsMediaItems) {\n await expect(this.recycleBinMenuItemCaretBtn).not.toBeVisible();\n return;\n }\n\n await expect(this.recycleBinMenuItemCaretBtn).toBeVisible();\n const isCaretButtonOpen = await this.recycleBinMenuItem.getAttribute('show-children');\n\n if (isCaretButtonOpen === null) {\n // We need to wait before clicking the caret button. Because the reload might not have happened yet. \n await this.clickCaretButtonForName('Recycle Bin');\n }\n }\n\n async clickRecycleBinButton() {\n await this.recycleBinBtn.click();\n }\n\n async isMediaItemVisibleInRecycleBin(mediaItem: string, isVisible: boolean = true) {\n await this.reloadRecycleBin(isVisible);\n return expect(this.page.locator('[label=\"Recycle Bin\"] [label=\"' + mediaItem + '\"]')).toBeVisible({visible: isVisible});\n }\n}"]}
|
|
1
|
+
{"version":3,"file":"MediaUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/MediaUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {UiBaseLocators} from \"./UiBaseLocators\";\nimport {expect, Locator, Page} from \"@playwright/test\";\n\nexport class MediaUiHelper extends UiBaseLocators {\n private readonly createMediaItemBtn: Locator;\n private readonly mediaNameTxt: Locator;\n private readonly actionModalCreateBtn: Locator;\n private readonly mediaSearchTxt: Locator;\n private readonly trashBtn: Locator;\n private readonly restoreThreeDotsBtn: Locator;\n private readonly emptyRecycleBinThreeDotsBtn: Locator;\n private readonly confirmTrashBtn: Locator;\n private readonly recycleBinBtn: Locator;\n private readonly restoreBtn: Locator;\n private readonly confirmEmptyRecycleBinBtn: Locator;\n private readonly recycleBinMenuItem: Locator;\n private readonly recycleBinMenuItemCaretBtn: Locator;\n private readonly mediaSectionCreateBtn: Locator;\n\n constructor(page: Page) {\n super(page);\n this.createMediaItemBtn = page.locator('umb-create-media-collection-action').getByLabel('Create');\n this.mediaNameTxt = page.locator('#name-input #input');\n this.actionModalCreateBtn = page.locator('#action-modal').getByLabel('Create');\n this.mediaSearchTxt = page.getByLabel('Search', {exact: true});\n this.trashBtn = page.getByLabel('Trash', {exact: true});\n this.restoreThreeDotsBtn = page.getByRole('button', {name: 'Restore...'});\n this.emptyRecycleBinThreeDotsBtn = page.getByLabel('Empty Recycle Bin...', {exact: true});\n this.confirmTrashBtn = page.locator('#confirm').getByLabel('Trash');\n this.recycleBinBtn = page.getByLabel('Recycle Bin', {exact: true});\n this.restoreBtn = page.getByLabel('Restore', {exact: true});\n this.confirmEmptyRecycleBinBtn = page.getByLabel('Empty Recycle Bin', {exact: true});\n this.recycleBinMenuItem = page.locator('uui-menu-item[label=\"Recycle Bin\"]');\n this.recycleBinMenuItemCaretBtn = this.recycleBinMenuItem.locator('#caret-button');\n this.mediaSectionCreateBtn = this.page.locator('#header').filter({hasText: 'Media'}).getByLabel('#actions_create');\n }\n\n async clickCreateMediaItemButton() {\n await this.createMediaItemBtn.click();\n }\n\n async enterMediaItemName(name: string) {\n await this.mediaNameTxt.clear();\n await this.mediaNameTxt.fill(name);\n }\n\n async clickMediaTypeWithNameButton(mediaTypeName: string) {\n await this.page.getByLabel(mediaTypeName, {exact: true}).click({force: true});\n }\n\n async searchForMediaItemByName(name: string) {\n await this.mediaSearchTxt.clear();\n await this.mediaSearchTxt.fill(name);\n }\n\n async doesMediaCardsContainAmount(count: number) {\n await expect(this.mediaCardItems).toHaveCount(count);\n }\n\n async doesMediaCardContainText(name: string) {\n await expect(this.mediaCardItems).toContainText(name);\n }\n\n async clickTrashButton() {\n await this.trashBtn.click();\n }\n\n async clickConfirmTrashButton() {\n await this.confirmTrashBtn.click();\n }\n\n async restoreMediaItem(name: string) {\n await this.clickActionsMenuForName(name);\n await this.restoreThreeDotsBtn.click();\n await this.page.waitForTimeout(1000);\n await this.restoreBtn.click();\n }\n\n async deleteMediaItem(name: string) {\n await this.clickActionsMenuForName(name);\n await this.clickDeleteButton();\n await this.clickConfirmToDeleteButton();\n }\n\n async clickCreateMediaWithType(mediaTypeName: string) {\n await this.mediaSectionCreateBtn.click({force: true});\n await this.clickMediaTypeName(mediaTypeName);\n }\n\n async clickMediaTypeName(mediaTypeName: string) {\n await this.documentTypeNode.filter({hasText: mediaTypeName}).click();\n }\n\n async clickEmptyRecycleBinButton() {\n await this.emptyRecycleBinThreeDotsBtn.click({force: true});\n }\n\n async clickConfirmEmptyRecycleBinButton() {\n await this.confirmEmptyRecycleBinBtn.click();\n }\n\n async clickCreateModalButton() {\n await this.actionModalCreateBtn.click();\n }\n\n async clickMediaCaretButtonForName(name: string) {\n await this.page.locator('umb-media-tree-item [label=\"' + name + '\"]').locator('#caret-button').click();\n }\n\n async reloadRecycleBin(containsMediaItems = true) {\n // We need to wait to be sure that the item is visible after reload\n await this.page.waitForTimeout(500);\n await this.page.reload();\n\n await expect(this.recycleBinMenuItem).toBeVisible();\n\n await this.clickActionsMenuForName('Recycle Bin');\n await this.clickReloadButton();\n await expect(this.recycleBinMenuItem).toBeVisible();\n\n // If the Recycle Bin does not contain any media items, the caret button should not be visible. and we should not try to click it\n if (!containsMediaItems) {\n await expect(this.recycleBinMenuItemCaretBtn).not.toBeVisible();\n return;\n }\n\n await expect(this.recycleBinMenuItemCaretBtn).toBeVisible();\n const isCaretButtonOpen = await this.recycleBinMenuItem.getAttribute('show-children');\n\n if (isCaretButtonOpen === null) {\n // We need to wait before clicking the caret button. Because the reload might not have happened yet. \n await this.clickCaretButtonForName('Recycle Bin');\n }\n }\n\n async clickRecycleBinButton() {\n await this.recycleBinBtn.click();\n }\n\n async isMediaItemVisibleInRecycleBin(mediaItem: string, isVisible: boolean = true) {\n await this.reloadRecycleBin(isVisible);\n return expect(this.page.locator('[label=\"Recycle Bin\"] [label=\"' + mediaItem + '\"]')).toBeVisible({visible: isVisible});\n }\n}"]}
|
|
@@ -14,6 +14,10 @@ export declare class TemporaryFileApiHelper {
|
|
|
14
14
|
mediaTypeId: any;
|
|
15
15
|
temporaryFileId: any;
|
|
16
16
|
}>;
|
|
17
|
+
createDefaultTemporaryArticleFile(): Promise<{
|
|
18
|
+
mediaTypeId: any;
|
|
19
|
+
temporaryFileId: any;
|
|
20
|
+
}>;
|
|
17
21
|
createTemporaryFile(fileName: string, mediaTypeName: string, mimeType: string): Promise<{
|
|
18
22
|
mediaTypeId: any;
|
|
19
23
|
temporaryFileId: any;
|
|
@@ -26,6 +26,9 @@ class TemporaryFileApiHelper {
|
|
|
26
26
|
async createDefaultTemporaryImageFile() {
|
|
27
27
|
return this.createTemporaryFile('Umbraco.png', 'Image', 'image/png');
|
|
28
28
|
}
|
|
29
|
+
async createDefaultTemporaryArticleFile() {
|
|
30
|
+
return this.createTemporaryFile('Article.pdf', 'Article', 'application/pdf');
|
|
31
|
+
}
|
|
29
32
|
async createTemporaryFile(fileName, mediaTypeName, mimeType) {
|
|
30
33
|
const mediaType = await this.api.mediaType.getByName(mediaTypeName);
|
|
31
34
|
const crypto = require('crypto');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TemporaryFileApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/TemporaryFileApiHelper.ts"],"names":[],"mappings":";;;AAEA,MAAa,sBAAsB;IACjC,GAAG,CAAY;IAEf,YAAY,GAAe;QACzB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,EAAU;QACxB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,4CAA4C,GAAG,EAAE,CAAC,CAAC;QAC1G,OAAO,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,IAAY,EAAE,QAAQ,EAAE,QAAQ;QACvD,OAAO,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,2CAA2C,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;IACjI,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,4CAA4C,GAAG,EAAE,CAAC,CAAC;QAC1G,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,4CAA4C,GAAG,EAAE,CAAC,CAAC;IACrG,CAAC;IAED,KAAK,CAAC,0BAA0B;QAC9B,OAAO,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,+BAA+B;QACnC,OAAO,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,QAAgB,EAAE,aAAqB,EAAE,QAAgB;QACjF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QACpE,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjC,MAAM,eAAe,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,0BAA0B,GAAG,QAAQ,CAAC;QACvD,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAEjE,OAAO,EAAC,WAAW,EAAE,SAAS,CAAC,EAAE,EAAE,eAAe,EAAE,eAAe,EAAC,CAAC;IACvE,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"TemporaryFileApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/TemporaryFileApiHelper.ts"],"names":[],"mappings":";;;AAEA,MAAa,sBAAsB;IACjC,GAAG,CAAY;IAEf,YAAY,GAAe;QACzB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,EAAU;QACxB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,4CAA4C,GAAG,EAAE,CAAC,CAAC;QAC1G,OAAO,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,IAAY,EAAE,QAAQ,EAAE,QAAQ;QACvD,OAAO,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,2CAA2C,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;IACjI,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,4CAA4C,GAAG,EAAE,CAAC,CAAC;QAC1G,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,4CAA4C,GAAG,EAAE,CAAC,CAAC;IACrG,CAAC;IAED,KAAK,CAAC,0BAA0B;QAC9B,OAAO,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,+BAA+B;QACnC,OAAO,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,iCAAiC;QACrC,OAAO,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC;IAC/E,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,QAAgB,EAAE,aAAqB,EAAE,QAAgB;QACjF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QACpE,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjC,MAAM,eAAe,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,0BAA0B,GAAG,QAAQ,CAAC;QACvD,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAEjE,OAAO,EAAC,WAAW,EAAE,SAAS,CAAC,EAAE,EAAE,eAAe,EAAE,eAAe,EAAC,CAAC;IACvE,CAAC;CACF;AA9CD,wDA8CC","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\n\nexport class TemporaryFileApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async doesExist(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/temporary-file/' + id);\n return response.status() === 200;\n }\n\n async create(id: string, name: string, mimeType, filePath) {\n return this.api.postMultiPartForm(this.api.baseUrl + '/umbraco/management/api/v1/temporary-file', id, name, mimeType, filePath)\n }\n\n async get(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/temporary-file/' + id);\n return await response.json();\n }\n\n async delete(id: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/temporary-file/' + id);\n }\n\n async createDefaultTemporaryFile() {\n return this.createTemporaryFile('File.txt', 'File', 'text/plain');\n }\n\n async createDefaultTemporaryImageFile() {\n return this.createTemporaryFile('Umbraco.png', 'Image', 'image/png');\n }\n\n async createDefaultTemporaryArticleFile() {\n return this.createTemporaryFile('Article.pdf', 'Article', 'application/pdf');\n }\n\n async createTemporaryFile(fileName: string, mediaTypeName: string, mimeType: string) {\n const mediaType = await this.api.mediaType.getByName(mediaTypeName);\n const crypto = require('crypto');\n const temporaryFileId = crypto.randomUUID();\n const filePath = './fixtures/mediaLibrary/' + fileName;\n await this.create(temporaryFileId, fileName, mimeType, filePath);\n\n return {mediaTypeId: mediaType.id, temporaryFileId: temporaryFileId};\n }\n}"]}
|
|
@@ -90,6 +90,7 @@ export declare class UiBaseLocators {
|
|
|
90
90
|
readonly allowedChildNodesModal: Locator;
|
|
91
91
|
readonly configureAsACollectionBtn: Locator;
|
|
92
92
|
readonly errorNotification: Locator;
|
|
93
|
+
readonly confirmRenameFolderBtn: Locator;
|
|
93
94
|
readonly successNotification: Locator;
|
|
94
95
|
readonly leftArrowBtn: Locator;
|
|
95
96
|
readonly clickToUploadBtn: Locator;
|
|
@@ -100,6 +101,9 @@ export declare class UiBaseLocators {
|
|
|
100
101
|
readonly mediaCardItems: Locator;
|
|
101
102
|
readonly enterPropertyEditorDescriptionTxt: Locator;
|
|
102
103
|
readonly breadcrumbsTemplateModal: Locator;
|
|
104
|
+
readonly containerChooseBtn: Locator;
|
|
105
|
+
readonly documentTypeNode: Locator;
|
|
106
|
+
readonly groupLabel: Locator;
|
|
103
107
|
constructor(page: Page);
|
|
104
108
|
clickActionsMenuForName(name: string): Promise<void>;
|
|
105
109
|
clickCaretButtonForName(name: string): Promise<void>;
|
|
@@ -108,9 +112,11 @@ export declare class UiBaseLocators {
|
|
|
108
112
|
clickReloadButton(): Promise<void>;
|
|
109
113
|
clickSaveButton(): Promise<void>;
|
|
110
114
|
clickChooseButton(): Promise<void>;
|
|
115
|
+
clickChooseContainerButton(): Promise<void>;
|
|
111
116
|
clickFilterChooseButton(): Promise<void>;
|
|
112
117
|
clickRenameFolderThreeDotsButton(): Promise<void>;
|
|
113
118
|
clickRenameFolderButton(): Promise<void>;
|
|
119
|
+
clickConfirmRenameFolderButton(): Promise<void>;
|
|
114
120
|
clickUpdateFolderButton(): Promise<void>;
|
|
115
121
|
clickUpdateButton(): Promise<void>;
|
|
116
122
|
clickSubmitButton(): Promise<void>;
|
|
@@ -190,6 +196,7 @@ export declare class UiBaseLocators {
|
|
|
190
196
|
clickAddGroupButton(): Promise<void>;
|
|
191
197
|
clickChooseModalButton(): Promise<void>;
|
|
192
198
|
enterGroupName(groupName: string, index?: number): Promise<void>;
|
|
199
|
+
isGroupVisible(groupName: string, isVisible?: boolean): Promise<void>;
|
|
193
200
|
doesGroupHaveValue(value: string): Promise<void>;
|
|
194
201
|
rename(newName: string): Promise<void>;
|
|
195
202
|
isSuccessButtonWithTextVisible(text: string): Promise<void>;
|
|
@@ -94,6 +94,7 @@ class UiBaseLocators {
|
|
|
94
94
|
allowedChildNodesModal;
|
|
95
95
|
configureAsACollectionBtn;
|
|
96
96
|
errorNotification;
|
|
97
|
+
confirmRenameFolderBtn;
|
|
97
98
|
successNotification;
|
|
98
99
|
leftArrowBtn;
|
|
99
100
|
clickToUploadBtn;
|
|
@@ -104,6 +105,9 @@ class UiBaseLocators {
|
|
|
104
105
|
mediaCardItems;
|
|
105
106
|
enterPropertyEditorDescriptionTxt;
|
|
106
107
|
breadcrumbsTemplateModal;
|
|
108
|
+
containerChooseBtn;
|
|
109
|
+
documentTypeNode;
|
|
110
|
+
groupLabel;
|
|
107
111
|
constructor(page) {
|
|
108
112
|
this.page = page;
|
|
109
113
|
this.saveBtn = page.getByLabel('Save', { exact: true });
|
|
@@ -133,6 +137,7 @@ class UiBaseLocators {
|
|
|
133
137
|
this.queryBuilderShowCode = page.locator('umb-code-block');
|
|
134
138
|
this.createThreeDotsBtn = page.getByText('Create...', { exact: true });
|
|
135
139
|
this.chooseBtn = page.getByLabel('Choose', { exact: true });
|
|
140
|
+
this.containerChooseBtn = page.locator('#container').getByLabel('Choose');
|
|
136
141
|
this.newFolderThreeDotsBtn = page.getByLabel('New Folder...');
|
|
137
142
|
this.renameThreeDotsBtn = page.getByLabel('Rename...', { exact: true });
|
|
138
143
|
this.newNameTxt = page.getByRole('textbox', { name: 'Enter new name...' });
|
|
@@ -141,9 +146,10 @@ class UiBaseLocators {
|
|
|
141
146
|
this.successState = page.locator('[state="success"]');
|
|
142
147
|
this.chooseModalBtn = page.locator('umb-tree-picker-modal').getByLabel('Choose');
|
|
143
148
|
this.addBtn = page.getByLabel('Add', { exact: true });
|
|
144
|
-
this.renameFolderThreeDotsBtn = page.getByLabel('Rename
|
|
149
|
+
this.renameFolderThreeDotsBtn = page.getByLabel('Rename folder...');
|
|
145
150
|
this.renameFolderBtn = page.getByLabel('Rename folder');
|
|
146
|
-
this.
|
|
151
|
+
this.confirmRenameFolderBtn = page.locator('#confirm').getByLabel('Rename folder');
|
|
152
|
+
this.updateFolderBtn = page.getByLabel('Update folder');
|
|
147
153
|
this.filterChooseBtn = page.locator('button').filter({ hasText: 'Choose' });
|
|
148
154
|
this.updateBtn = page.getByLabel('Update');
|
|
149
155
|
this.changeBtn = page.getByLabel('Change');
|
|
@@ -176,7 +182,7 @@ class UiBaseLocators {
|
|
|
176
182
|
this.enableBtn = page.getByLabel('Enable');
|
|
177
183
|
this.confirmEnableBtn = page.locator('#confirm').getByLabel('Enable');
|
|
178
184
|
this.iconBtn = page.getByLabel('icon');
|
|
179
|
-
this.aliasLockBtn = page.locator('#name #
|
|
185
|
+
this.aliasLockBtn = page.locator('#name #lock');
|
|
180
186
|
this.aliasNameTxt = page.locator('#name').getByLabel('alias');
|
|
181
187
|
this.deleteFolderThreeDotsBtn = page.locator('#action-modal').getByLabel('Delete Folder...');
|
|
182
188
|
this.createLink = page.getByRole('link', { name: 'Create' });
|
|
@@ -199,12 +205,14 @@ class UiBaseLocators {
|
|
|
199
205
|
this.errorNotification = page.locator('uui-toast-notification >> [color="danger"]');
|
|
200
206
|
this.successNotification = page.locator('uui-toast-notification >> [color="positive"]');
|
|
201
207
|
this.leftArrowBtn = page.locator('[name="icon-arrow-left"] svg');
|
|
202
|
-
this.clickToUploadBtn = page.locator('uui-file-dropzone');
|
|
208
|
+
this.clickToUploadBtn = page.locator('uui-file-dropzone').filter({ hasText: 'Click to upload' });
|
|
203
209
|
this.backOfficeHeader = page.locator('umb-backoffice-header');
|
|
204
210
|
this.failedStateButton = page.locator('uui-button[state="failed"]');
|
|
205
211
|
this.mediaCardItems = page.locator('uui-card-media');
|
|
206
212
|
this.enterPropertyEditorDescriptionTxt = this.sidebarModal.getByLabel('Enter a description...');
|
|
207
213
|
this.breadcrumbsTemplateModal = this.sidebarModal.locator('umb-template-workspace-editor uui-breadcrumbs');
|
|
214
|
+
this.documentTypeNode = page.locator('uui-ref-node-document-type');
|
|
215
|
+
this.groupLabel = page.getByLabel('Group', { exact: true });
|
|
208
216
|
}
|
|
209
217
|
async clickActionsMenuForName(name) {
|
|
210
218
|
await this.page.locator('[label="' + name + '"]').click();
|
|
@@ -242,6 +250,9 @@ class UiBaseLocators {
|
|
|
242
250
|
async clickChooseButton() {
|
|
243
251
|
await this.chooseBtn.click();
|
|
244
252
|
}
|
|
253
|
+
async clickChooseContainerButton() {
|
|
254
|
+
await this.containerChooseBtn.click();
|
|
255
|
+
}
|
|
245
256
|
async clickFilterChooseButton() {
|
|
246
257
|
await this.filterChooseBtn.click();
|
|
247
258
|
}
|
|
@@ -251,6 +262,9 @@ class UiBaseLocators {
|
|
|
251
262
|
async clickRenameFolderButton() {
|
|
252
263
|
await this.renameFolderBtn.click();
|
|
253
264
|
}
|
|
265
|
+
async clickConfirmRenameFolderButton() {
|
|
266
|
+
await this.confirmRenameFolderBtn.click();
|
|
267
|
+
}
|
|
254
268
|
async clickUpdateFolderButton() {
|
|
255
269
|
await this.updateFolderBtn.click();
|
|
256
270
|
}
|
|
@@ -308,7 +322,7 @@ class UiBaseLocators {
|
|
|
308
322
|
await this.insertBtn.click();
|
|
309
323
|
}
|
|
310
324
|
async clickDeleteButton() {
|
|
311
|
-
await this.deleteBtn.click();
|
|
325
|
+
await this.deleteBtn.click({ force: true });
|
|
312
326
|
}
|
|
313
327
|
async clickConfirmToDeleteButton() {
|
|
314
328
|
await this.confirmToDeleteBtn.click();
|
|
@@ -374,11 +388,11 @@ class UiBaseLocators {
|
|
|
374
388
|
await this.queryBuilderBtn.click({ force: true });
|
|
375
389
|
// Wait and choose property alias
|
|
376
390
|
await (0, test_1.expect)(this.wherePropertyAliasBtn).toBeVisible();
|
|
377
|
-
await this.wherePropertyAliasBtn.click(
|
|
391
|
+
await this.wherePropertyAliasBtn.click();
|
|
378
392
|
await this.waitAndSelectQueryBuilderDropDownList(propertyAlias);
|
|
379
393
|
// Wait and choose operator
|
|
380
394
|
await (0, test_1.expect)(this.whereOperatorBtn).toBeVisible();
|
|
381
|
-
await this.whereOperatorBtn.click(
|
|
395
|
+
await this.whereOperatorBtn.click();
|
|
382
396
|
await this.waitAndSelectQueryBuilderDropDownList(operator);
|
|
383
397
|
// Wait and choose constrain value and press Enter
|
|
384
398
|
await (0, test_1.expect)(this.whereConstrainValueTxt).toBeVisible();
|
|
@@ -524,6 +538,8 @@ class UiBaseLocators {
|
|
|
524
538
|
await this.addTabBtn.click();
|
|
525
539
|
}
|
|
526
540
|
async enterTabName(tabName) {
|
|
541
|
+
await (0, test_1.expect)(this.unnamedTxt).toBeVisible();
|
|
542
|
+
await this.unnamedTxt.clear();
|
|
527
543
|
await this.unnamedTxt.fill(tabName);
|
|
528
544
|
}
|
|
529
545
|
async searchForTypeToFilterValue(searchValue) {
|
|
@@ -532,7 +548,7 @@ class UiBaseLocators {
|
|
|
532
548
|
}
|
|
533
549
|
async addPropertyEditor(propertyEditorName, index = 0) {
|
|
534
550
|
await (0, test_1.expect)(this.addPropertyBtn.nth(index)).toBeVisible();
|
|
535
|
-
await this.addPropertyBtn.nth(index).click(
|
|
551
|
+
await this.addPropertyBtn.nth(index).click();
|
|
536
552
|
await this.enterAPropertyName(propertyEditorName);
|
|
537
553
|
await (0, test_1.expect)(this.propertyNameTxt).toHaveValue(propertyEditorName);
|
|
538
554
|
await this.clickSelectPropertyEditorButton();
|
|
@@ -558,14 +574,18 @@ class UiBaseLocators {
|
|
|
558
574
|
await this.chooseModalBtn.click();
|
|
559
575
|
}
|
|
560
576
|
async enterGroupName(groupName, index = 0) {
|
|
561
|
-
|
|
577
|
+
await this.page.waitForTimeout(200);
|
|
578
|
+
const groupNameTxt = this.groupLabel.nth(index);
|
|
562
579
|
await (0, test_1.expect)(groupNameTxt).toBeVisible();
|
|
563
580
|
await groupNameTxt.clear();
|
|
564
581
|
await groupNameTxt.fill(groupName);
|
|
565
582
|
}
|
|
583
|
+
async isGroupVisible(groupName, isVisible = true) {
|
|
584
|
+
await (0, test_1.expect)(this.groupLabel.filter({ hasText: groupName })).toBeVisible({ visible: isVisible });
|
|
585
|
+
}
|
|
566
586
|
async doesGroupHaveValue(value) {
|
|
567
|
-
await (0, test_1.expect)(this.
|
|
568
|
-
return await (0, test_1.expect)(this.
|
|
587
|
+
await (0, test_1.expect)(this.groupLabel).toBeVisible();
|
|
588
|
+
return await (0, test_1.expect)(this.groupLabel).toHaveValue(value);
|
|
569
589
|
}
|
|
570
590
|
async rename(newName) {
|
|
571
591
|
await this.clickRenameButton();
|