@umbraco/playwright-testhelpers 2.0.0-beta.9 → 2.0.0-beta.91
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/ApiHelpers.d.ts +53 -4
- package/dist/lib/helpers/ApiHelpers.js +260 -9
- package/dist/lib/helpers/ApiHelpers.js.map +1 -1
- package/dist/lib/helpers/ContentRenderUiHelper.d.ts +8 -0
- package/dist/lib/helpers/ContentRenderUiHelper.js +21 -0
- package/dist/lib/helpers/ContentRenderUiHelper.js.map +1 -0
- package/dist/lib/helpers/ContentUiHelper.d.ts +190 -0
- package/dist/lib/helpers/ContentUiHelper.js +569 -0
- package/dist/lib/helpers/ContentUiHelper.js.map +1 -0
- package/dist/lib/helpers/DataTypeApiHelper.d.ts +96 -14
- package/dist/lib/helpers/DataTypeApiHelper.js +841 -130
- package/dist/lib/helpers/DataTypeApiHelper.js.map +1 -1
- package/dist/lib/helpers/DataTypeUiHelper.d.ts +266 -0
- package/dist/lib/helpers/DataTypeUiHelper.js +850 -0
- package/dist/lib/helpers/DataTypeUiHelper.js.map +1 -0
- package/dist/lib/helpers/DictionaryApiHelper.d.ts +2 -1
- package/dist/lib/helpers/DictionaryApiHelper.js +17 -4
- package/dist/lib/helpers/DictionaryApiHelper.js.map +1 -1
- package/dist/lib/helpers/DictionaryUiHelper.d.ts +7 -9
- package/dist/lib/helpers/DictionaryUiHelper.js +33 -33
- package/dist/lib/helpers/DictionaryUiHelper.js.map +1 -1
- package/dist/lib/helpers/DocumentApiHelper.d.ts +39 -0
- package/dist/lib/helpers/DocumentApiHelper.js +388 -0
- package/dist/lib/helpers/DocumentApiHelper.js.map +1 -1
- package/dist/lib/helpers/DocumentBlueprintApiHelper.d.ts +18 -0
- package/dist/lib/helpers/DocumentBlueprintApiHelper.js +126 -0
- package/dist/lib/helpers/DocumentBlueprintApiHelper.js.map +1 -0
- package/dist/lib/helpers/DocumentBlueprintUiHelper.d.ts +18 -0
- package/dist/lib/helpers/DocumentBlueprintUiHelper.js +54 -0
- package/dist/lib/helpers/DocumentBlueprintUiHelper.js.map +1 -0
- package/dist/lib/helpers/DocumentTypeApiHelper.d.ts +43 -0
- package/dist/lib/helpers/DocumentTypeApiHelper.js +577 -0
- package/dist/lib/helpers/DocumentTypeApiHelper.js.map +1 -0
- package/dist/lib/helpers/DocumentTypeUiHelper.d.ts +35 -0
- package/dist/lib/helpers/DocumentTypeUiHelper.js +98 -0
- package/dist/lib/helpers/DocumentTypeUiHelper.js.map +1 -0
- package/dist/lib/helpers/ExamineManagementUiHelper.d.ts +15 -0
- package/dist/lib/helpers/ExamineManagementUiHelper.js +38 -0
- package/dist/lib/helpers/ExamineManagementUiHelper.js.map +1 -0
- package/dist/lib/helpers/HealthCheckApiHelper.d.ts +13 -0
- package/dist/lib/helpers/HealthCheckApiHelper.js +47 -0
- package/dist/lib/helpers/HealthCheckApiHelper.js.map +1 -0
- package/dist/lib/helpers/HealthCheckUiHelper.d.ts +23 -0
- package/dist/lib/helpers/HealthCheckUiHelper.js +59 -0
- package/dist/lib/helpers/HealthCheckUiHelper.js.map +1 -0
- package/dist/lib/helpers/IndexerApiHelper.d.ts +7 -0
- package/dist/lib/helpers/IndexerApiHelper.js +19 -0
- package/dist/lib/helpers/IndexerApiHelper.js.map +1 -0
- package/dist/lib/helpers/LanguageApiHelper.d.ts +8 -4
- package/dist/lib/helpers/LanguageApiHelper.js +46 -26
- package/dist/lib/helpers/LanguageApiHelper.js.map +1 -1
- package/dist/lib/helpers/LanguageUiHelper.d.ts +23 -0
- package/dist/lib/helpers/LanguageUiHelper.js +68 -0
- package/dist/lib/helpers/LanguageUiHelper.js.map +1 -0
- package/dist/lib/helpers/LogViewerUiHelper.d.ts +37 -0
- package/dist/lib/helpers/LogViewerUiHelper.js +102 -0
- package/dist/lib/helpers/LogViewerUiHelper.js.map +1 -0
- package/dist/lib/helpers/LoginApiHelper.d.ts +17 -0
- package/dist/lib/helpers/LoginApiHelper.js +105 -0
- package/dist/lib/helpers/LoginApiHelper.js.map +1 -0
- package/dist/lib/helpers/LoginUiHelper.d.ts +11 -0
- package/dist/lib/helpers/LoginUiHelper.js +30 -0
- package/dist/lib/helpers/LoginUiHelper.js.map +1 -0
- package/dist/lib/helpers/MediaApiHelper.d.ts +32 -0
- package/dist/lib/helpers/MediaApiHelper.js +245 -0
- package/dist/lib/helpers/MediaApiHelper.js.map +1 -0
- package/dist/lib/helpers/MediaTypeApiHelper.d.ts +32 -0
- package/dist/lib/helpers/MediaTypeApiHelper.js +390 -0
- package/dist/lib/helpers/MediaTypeApiHelper.js.map +1 -0
- package/dist/lib/helpers/MediaTypeUiHelper.d.ts +14 -0
- package/dist/lib/helpers/MediaTypeUiHelper.js +38 -0
- package/dist/lib/helpers/MediaTypeUiHelper.js.map +1 -0
- package/dist/lib/helpers/MediaUiHelper.d.ts +54 -0
- package/dist/lib/helpers/MediaUiHelper.js +158 -0
- package/dist/lib/helpers/MediaUiHelper.js.map +1 -0
- package/dist/lib/helpers/MemberApiHelper.d.ts +16 -0
- package/dist/lib/helpers/MemberApiHelper.js +88 -0
- package/dist/lib/helpers/MemberApiHelper.js.map +1 -0
- package/dist/lib/helpers/MemberGroupApiHelper.d.ts +14 -0
- package/dist/lib/helpers/MemberGroupApiHelper.js +62 -0
- package/dist/lib/helpers/MemberGroupApiHelper.js.map +1 -0
- package/dist/lib/helpers/MemberGroupUiHelper.d.ts +17 -0
- package/dist/lib/helpers/MemberGroupUiHelper.js +48 -0
- package/dist/lib/helpers/MemberGroupUiHelper.js.map +1 -0
- package/dist/lib/helpers/MemberTypeApiHelper.d.ts +17 -0
- package/dist/lib/helpers/MemberTypeApiHelper.js +121 -0
- package/dist/lib/helpers/MemberTypeApiHelper.js.map +1 -0
- package/dist/lib/helpers/MemberTypeUiHelper.d.ts +13 -0
- package/dist/lib/helpers/MemberTypeUiHelper.js +35 -0
- package/dist/lib/helpers/MemberTypeUiHelper.js.map +1 -0
- package/dist/lib/helpers/MemberUiHelper.d.ts +42 -0
- package/dist/lib/helpers/MemberUiHelper.js +120 -0
- package/dist/lib/helpers/MemberUiHelper.js.map +1 -0
- package/dist/lib/helpers/ModelsBuilderApiHelper.d.ts +6 -0
- package/dist/lib/helpers/ModelsBuilderApiHelper.js +15 -0
- package/dist/lib/helpers/ModelsBuilderApiHelper.js.map +1 -0
- package/dist/lib/helpers/ModelsBuilderUiHelper.d.ts +9 -0
- package/dist/lib/helpers/ModelsBuilderUiHelper.js +22 -0
- package/dist/lib/helpers/ModelsBuilderUiHelper.js.map +1 -0
- package/dist/lib/helpers/NotificationConstantHelper.d.ts +30 -0
- package/dist/lib/helpers/NotificationConstantHelper.js +35 -0
- package/dist/lib/helpers/NotificationConstantHelper.js.map +1 -0
- package/dist/lib/helpers/ObjectTypesApiHelper.d.ts +7 -0
- package/dist/lib/helpers/ObjectTypesApiHelper.js +25 -0
- package/dist/lib/helpers/ObjectTypesApiHelper.js.map +1 -0
- package/dist/lib/helpers/PackageApiHelper.d.ts +3 -2
- package/dist/lib/helpers/PackageApiHelper.js +6 -3
- package/dist/lib/helpers/PackageApiHelper.js.map +1 -1
- package/dist/lib/helpers/PackageUiHelper.d.ts +50 -0
- package/dist/lib/helpers/PackageUiHelper.js +140 -0
- package/dist/lib/helpers/PackageUiHelper.js.map +1 -0
- package/dist/lib/helpers/PartialViewApiHelper.d.ts +5 -4
- package/dist/lib/helpers/PartialViewApiHelper.js +36 -30
- package/dist/lib/helpers/PartialViewApiHelper.js.map +1 -1
- package/dist/lib/helpers/PartialViewUiHelper.d.ts +7 -11
- package/dist/lib/helpers/PartialViewUiHelper.js +27 -36
- package/dist/lib/helpers/PartialViewUiHelper.js.map +1 -1
- package/dist/lib/helpers/ProfilingUiHelper.d.ts +11 -0
- package/dist/lib/helpers/ProfilingUiHelper.js +27 -0
- package/dist/lib/helpers/ProfilingUiHelper.js.map +1 -0
- package/dist/lib/helpers/PublishedCacheApiHelper.d.ts +6 -0
- package/dist/lib/helpers/PublishedCacheApiHelper.js +15 -0
- package/dist/lib/helpers/PublishedCacheApiHelper.js.map +1 -0
- package/dist/lib/helpers/PublishedStatusUiHelper.d.ts +19 -0
- package/dist/lib/helpers/PublishedStatusUiHelper.js +47 -0
- package/dist/lib/helpers/PublishedStatusUiHelper.js.map +1 -0
- package/dist/lib/helpers/RedirectManagementApiHelper.d.ts +10 -0
- package/dist/lib/helpers/RedirectManagementApiHelper.js +30 -0
- package/dist/lib/helpers/RedirectManagementApiHelper.js.map +1 -0
- package/dist/lib/helpers/RedirectManagementUiHelper.d.ts +17 -0
- package/dist/lib/helpers/RedirectManagementUiHelper.js +45 -0
- package/dist/lib/helpers/RedirectManagementUiHelper.js.map +1 -0
- package/dist/lib/helpers/RelationTypeApiHelper.d.ts +15 -0
- package/dist/lib/helpers/{RelationType.js → RelationTypeApiHelper.js} +45 -58
- package/dist/lib/helpers/RelationTypeApiHelper.js.map +1 -0
- package/dist/lib/helpers/RelationTypeUiHelper.d.ts +21 -0
- package/dist/lib/helpers/RelationTypeUiHelper.js +55 -0
- package/dist/lib/helpers/RelationTypeUiHelper.js.map +1 -0
- package/dist/lib/helpers/ScriptApiHelper.d.ts +5 -3
- package/dist/lib/helpers/ScriptApiHelper.js +43 -26
- package/dist/lib/helpers/ScriptApiHelper.js.map +1 -1
- package/dist/lib/helpers/ScriptUiHelper.d.ts +8 -12
- package/dist/lib/helpers/ScriptUiHelper.js +31 -40
- package/dist/lib/helpers/ScriptUiHelper.js.map +1 -1
- package/dist/lib/helpers/StylesheetApiHelper.d.ts +6 -4
- package/dist/lib/helpers/StylesheetApiHelper.js +48 -41
- package/dist/lib/helpers/StylesheetApiHelper.js.map +1 -1
- package/dist/lib/helpers/StylesheetUiHelper.d.ts +17 -15
- package/dist/lib/helpers/StylesheetUiHelper.js +60 -47
- package/dist/lib/helpers/StylesheetUiHelper.js.map +1 -1
- package/dist/lib/helpers/TelemetryDataUiHelper.d.ts +10 -0
- package/dist/lib/helpers/TelemetryDataUiHelper.js +25 -0
- package/dist/lib/helpers/TelemetryDataUiHelper.js.map +1 -0
- package/dist/lib/helpers/TemplateApiHelper.d.ts +5 -0
- package/dist/lib/helpers/TemplateApiHelper.js +68 -0
- package/dist/lib/helpers/TemplateApiHelper.js.map +1 -1
- package/dist/lib/helpers/TemplateUiHelper.d.ts +14 -18
- package/dist/lib/helpers/TemplateUiHelper.js +65 -59
- package/dist/lib/helpers/TemplateUiHelper.js.map +1 -1
- package/dist/lib/helpers/TemporaryFileApiHelper.d.ts +17 -1
- package/dist/lib/helpers/TemporaryFileApiHelper.js +23 -10
- package/dist/lib/helpers/TemporaryFileApiHelper.js.map +1 -1
- package/dist/lib/helpers/UiBaseLocators.d.ts +217 -10
- package/dist/lib/helpers/UiBaseLocators.js +718 -40
- package/dist/lib/helpers/UiBaseLocators.js.map +1 -1
- package/dist/lib/helpers/UiHelpers.d.ts +51 -7
- package/dist/lib/helpers/UiHelpers.js +78 -21
- package/dist/lib/helpers/UiHelpers.js.map +1 -1
- package/dist/lib/helpers/UserApiHelper.d.ts +28 -11
- package/dist/lib/helpers/UserApiHelper.js +123 -21
- package/dist/lib/helpers/UserApiHelper.js.map +1 -1
- package/dist/lib/helpers/UserGroupApiHelper.d.ts +8 -3
- package/dist/lib/helpers/UserGroupApiHelper.js +52 -19
- package/dist/lib/helpers/UserGroupApiHelper.js.map +1 -1
- package/dist/lib/helpers/UserGroupUiHelper.d.ts +20 -0
- package/dist/lib/helpers/UserGroupUiHelper.js +56 -0
- package/dist/lib/helpers/UserGroupUiHelper.js.map +1 -0
- package/dist/lib/helpers/UserUiHelper.d.ts +73 -0
- package/dist/lib/helpers/UserUiHelper.js +199 -0
- package/dist/lib/helpers/UserUiHelper.js.map +1 -0
- package/dist/lib/helpers/WelcomeDashboardUiHelper.d.ts +9 -0
- package/dist/lib/helpers/WelcomeDashboardUiHelper.js +22 -0
- package/dist/lib/helpers/WelcomeDashboardUiHelper.js.map +1 -0
- package/dist/lib/helpers/index.d.ts +1 -0
- package/dist/lib/helpers/index.js +3 -1
- package/dist/lib/helpers/index.js.map +1 -1
- package/dist/lib/helpers/testExtension.js +5 -0
- package/dist/lib/helpers/testExtension.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/umbraco.config.js +1 -1
- package/dist/umbraco.config.js.map +1 -1
- package/package.json +9 -11
- package/dist/lib/helpers/RelationType.d.ts +0 -15
- package/dist/lib/helpers/RelationType.js.map +0 -1
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PackageUiHelper = void 0;
|
|
4
|
+
const test_1 = require("@playwright/test");
|
|
5
|
+
const UiBaseLocators_1 = require("./UiBaseLocators");
|
|
6
|
+
const umbraco_config_1 = require("../../umbraco.config");
|
|
7
|
+
class PackageUiHelper extends UiBaseLocators_1.UiBaseLocators {
|
|
8
|
+
createdTabBtn;
|
|
9
|
+
marketPlaceIFrame;
|
|
10
|
+
installedTabBtn;
|
|
11
|
+
packagesTabBtn;
|
|
12
|
+
createPackageBtn;
|
|
13
|
+
packageNameTxt;
|
|
14
|
+
saveChangesToPackageBtn;
|
|
15
|
+
addContentToPackageBtn;
|
|
16
|
+
addMediaToPackageBtn;
|
|
17
|
+
addDocumentTypeToPackageBtn;
|
|
18
|
+
addMediaTypeToPackageBtn;
|
|
19
|
+
addLanguageToPackageBtn;
|
|
20
|
+
addDictionaryToPackageBtn;
|
|
21
|
+
addDataTypesToPackageBtn;
|
|
22
|
+
addTemplatesToPackagesBtn;
|
|
23
|
+
addPartialViewToPackageBtn;
|
|
24
|
+
addScriptToPackageBtn;
|
|
25
|
+
addStylesheetToPackageBtn;
|
|
26
|
+
downloadPackageBtn;
|
|
27
|
+
propertyLayout;
|
|
28
|
+
umbracoBackofficePackage;
|
|
29
|
+
constructor(page) {
|
|
30
|
+
super(page);
|
|
31
|
+
// Packages
|
|
32
|
+
this.packagesTabBtn = page.locator('#views').getByRole("tab", { name: 'Packages' });
|
|
33
|
+
this.marketPlaceIFrame = page.frameLocator('iframe[title="Umbraco Marketplace"]').locator('umb-market-app');
|
|
34
|
+
// Installed
|
|
35
|
+
this.installedTabBtn = page.getByRole("tab", { name: 'Installed' });
|
|
36
|
+
// Created
|
|
37
|
+
this.propertyLayout = page.locator('umb-property-layout');
|
|
38
|
+
this.createdTabBtn = page.getByRole("tab", { name: 'Created' });
|
|
39
|
+
this.createPackageBtn = page.getByLabel("Create package");
|
|
40
|
+
this.packageNameTxt = page.getByLabel('Name of the package');
|
|
41
|
+
this.saveChangesToPackageBtn = page.getByLabel('Save changes to package');
|
|
42
|
+
this.addContentToPackageBtn = page.locator('umb-input-document').getByLabel('Choose');
|
|
43
|
+
this.addMediaToPackageBtn = page.locator('umb-input-media').getByLabel('Choose');
|
|
44
|
+
this.addDocumentTypeToPackageBtn = this.propertyLayout.filter({ hasText: 'Document Types' }).getByLabel('Choose');
|
|
45
|
+
this.addMediaTypeToPackageBtn = this.propertyLayout.filter({ hasText: 'Media Types' }).getByLabel('Choose');
|
|
46
|
+
this.addLanguageToPackageBtn = this.propertyLayout.filter({ hasText: 'Languages' }).getByLabel('Choose');
|
|
47
|
+
this.addDictionaryToPackageBtn = this.propertyLayout.filter({ hasText: 'Dictionary' }).getByLabel('Choose');
|
|
48
|
+
this.addDataTypesToPackageBtn = this.propertyLayout.filter({ hasText: 'Data Types' }).getByLabel('Choose');
|
|
49
|
+
this.addTemplatesToPackagesBtn = this.propertyLayout.filter({ hasText: 'Templates' }).getByLabel('Choose');
|
|
50
|
+
this.addPartialViewToPackageBtn = this.propertyLayout.filter({ hasText: 'Partial Views' }).getByLabel('Choose');
|
|
51
|
+
this.addScriptToPackageBtn = this.propertyLayout.filter({ hasText: 'Scripts' }).getByLabel('Choose');
|
|
52
|
+
this.addStylesheetToPackageBtn = this.propertyLayout.filter({ hasText: 'Stylesheets' }).getByLabel('Choose');
|
|
53
|
+
this.downloadPackageBtn = page.getByLabel('Download');
|
|
54
|
+
this.umbracoBackofficePackage = page.locator('uui-ref-node-package', { hasText: '@umbraco-cms/backoffice' });
|
|
55
|
+
}
|
|
56
|
+
async isUmbracoBackofficePackageVisible(isVisible = true) {
|
|
57
|
+
return await (0, test_1.expect)(this.umbracoBackofficePackage).toBeVisible({ visible: isVisible });
|
|
58
|
+
}
|
|
59
|
+
async clickCreatedTab() {
|
|
60
|
+
await this.page.waitForTimeout(500);
|
|
61
|
+
await this.createdTabBtn.click({ force: true });
|
|
62
|
+
await this.page.waitForTimeout(500);
|
|
63
|
+
}
|
|
64
|
+
async clickInstalledTab() {
|
|
65
|
+
await this.installedTabBtn.click({ force: true });
|
|
66
|
+
}
|
|
67
|
+
async clickPackagesTab() {
|
|
68
|
+
await this.packagesTabBtn.click({ force: true });
|
|
69
|
+
}
|
|
70
|
+
async clickChooseBtn() {
|
|
71
|
+
await this.chooseModalBtn.click();
|
|
72
|
+
}
|
|
73
|
+
async isMarketPlaceIFrameVisible(isVisible = true) {
|
|
74
|
+
return await (0, test_1.expect)(this.marketPlaceIFrame).toBeVisible({ visible: isVisible });
|
|
75
|
+
}
|
|
76
|
+
async clickCreatePackageButton() {
|
|
77
|
+
await this.createPackageBtn.click();
|
|
78
|
+
}
|
|
79
|
+
async enterPackageName(packageName) {
|
|
80
|
+
await this.packageNameTxt.clear();
|
|
81
|
+
await this.packageNameTxt.fill(packageName);
|
|
82
|
+
await this.page.waitForTimeout(500);
|
|
83
|
+
}
|
|
84
|
+
async isPackageNameVisible(packageName, isVisible = true) {
|
|
85
|
+
return await (0, test_1.expect)(this.page.getByRole('button', { name: packageName })).toBeVisible({ visible: isVisible });
|
|
86
|
+
}
|
|
87
|
+
async clickExistingPackageName(packageName) {
|
|
88
|
+
await this.page.getByRole('button', { name: packageName }).click();
|
|
89
|
+
await this.page.waitForTimeout(500);
|
|
90
|
+
}
|
|
91
|
+
async clickDeleteButtonForPackageName(packageName) {
|
|
92
|
+
await this.page.locator('uui-ref-node-package', { hasText: packageName }).getByLabel('Delete').click({ force: true });
|
|
93
|
+
}
|
|
94
|
+
async clickSaveChangesToPackageButton() {
|
|
95
|
+
await this.saveChangesToPackageBtn.click();
|
|
96
|
+
}
|
|
97
|
+
async clickAddContentToPackageButton() {
|
|
98
|
+
await this.addContentToPackageBtn.click();
|
|
99
|
+
}
|
|
100
|
+
async clickAddMediaToPackageButton() {
|
|
101
|
+
await this.addMediaToPackageBtn.click({ force: true });
|
|
102
|
+
}
|
|
103
|
+
async clickAddDocumentTypeToPackageButton() {
|
|
104
|
+
await this.addDocumentTypeToPackageBtn.click();
|
|
105
|
+
}
|
|
106
|
+
async clickAddMediaTypeToPackageButton() {
|
|
107
|
+
await this.addMediaTypeToPackageBtn.click();
|
|
108
|
+
}
|
|
109
|
+
async clickAddLanguageToPackageButton() {
|
|
110
|
+
await this.addLanguageToPackageBtn.click();
|
|
111
|
+
}
|
|
112
|
+
async clickAddDictionaryToPackageButton() {
|
|
113
|
+
await this.addDictionaryToPackageBtn.click();
|
|
114
|
+
}
|
|
115
|
+
async clickAddDataTypesToPackageButton() {
|
|
116
|
+
await this.addDataTypesToPackageBtn.click();
|
|
117
|
+
}
|
|
118
|
+
async clickAddTemplatesToPackageButton() {
|
|
119
|
+
await this.addTemplatesToPackagesBtn.click();
|
|
120
|
+
}
|
|
121
|
+
async clickAddPartialViewToPackageButton() {
|
|
122
|
+
await this.addPartialViewToPackageBtn.click();
|
|
123
|
+
}
|
|
124
|
+
async clickAddScriptToPackageButton() {
|
|
125
|
+
await this.addScriptToPackageBtn.click();
|
|
126
|
+
}
|
|
127
|
+
async clickAddStylesheetToPackageButton() {
|
|
128
|
+
await this.addStylesheetToPackageBtn.click();
|
|
129
|
+
}
|
|
130
|
+
// Downloads the package and converts it to a string
|
|
131
|
+
async downloadPackage(packageId) {
|
|
132
|
+
const responsePromise = this.page.waitForResponse(umbraco_config_1.umbracoConfig.environment.baseUrl + '/umbraco/management/api/v1/package/created/' + packageId + '/download');
|
|
133
|
+
await this.downloadPackageBtn.click();
|
|
134
|
+
const response = await responsePromise;
|
|
135
|
+
const body = await response.body();
|
|
136
|
+
return body.toString().trim();
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
exports.PackageUiHelper = PackageUiHelper;
|
|
140
|
+
//# sourceMappingURL=PackageUiHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PackageUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/PackageUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {expect, Locator, Page,} from \"@playwright/test\"\nimport {UiBaseLocators} from \"./UiBaseLocators\";\nimport {umbracoConfig} from \"../../umbraco.config\";\n\nexport class PackageUiHelper extends UiBaseLocators {\n private readonly createdTabBtn: Locator;\n private readonly marketPlaceIFrame: Locator;\n private readonly installedTabBtn: Locator;\n private readonly packagesTabBtn: Locator;\n private readonly createPackageBtn: Locator;\n private readonly packageNameTxt: Locator;\n private readonly saveChangesToPackageBtn: Locator;\n private readonly addContentToPackageBtn: Locator;\n private readonly addMediaToPackageBtn: Locator;\n private readonly addDocumentTypeToPackageBtn: Locator;\n private readonly addMediaTypeToPackageBtn: Locator;\n private readonly addLanguageToPackageBtn: Locator;\n private readonly addDictionaryToPackageBtn: Locator;\n private readonly addDataTypesToPackageBtn: Locator;\n private readonly addTemplatesToPackagesBtn: Locator;\n private readonly addPartialViewToPackageBtn: Locator;\n private readonly addScriptToPackageBtn: Locator;\n private readonly addStylesheetToPackageBtn: Locator;\n private readonly downloadPackageBtn: Locator;\n private readonly propertyLayout: Locator;\n private readonly umbracoBackofficePackage: Locator;\n\n constructor(page: Page) {\n super(page);\n // Packages\n this.packagesTabBtn = page.locator('#views').getByRole(\"tab\", {name: 'Packages'});\n this.marketPlaceIFrame = page.frameLocator('iframe[title=\"Umbraco Marketplace\"]').locator('umb-market-app');\n // Installed\n this.installedTabBtn = page.getByRole(\"tab\", {name: 'Installed'});\n // Created\n this.propertyLayout = page.locator('umb-property-layout');\n this.createdTabBtn = page.getByRole(\"tab\", {name: 'Created'});\n this.createPackageBtn = page.getByLabel(\"Create package\");\n this.packageNameTxt = page.getByLabel('Name of the package');\n this.saveChangesToPackageBtn = page.getByLabel('Save changes to package');\n this.addContentToPackageBtn = page.locator('umb-input-document').getByLabel('Choose');\n this.addMediaToPackageBtn = page.locator('umb-input-media').getByLabel('Choose');\n this.addDocumentTypeToPackageBtn = this.propertyLayout.filter({hasText: 'Document Types'}).getByLabel('Choose');\n this.addMediaTypeToPackageBtn = this.propertyLayout.filter({hasText: 'Media Types'}).getByLabel('Choose');\n this.addLanguageToPackageBtn = this.propertyLayout.filter({hasText: 'Languages'}).getByLabel('Choose');\n this.addDictionaryToPackageBtn = this.propertyLayout.filter({hasText: 'Dictionary'}).getByLabel('Choose');\n this.addDataTypesToPackageBtn = this.propertyLayout.filter({hasText: 'Data Types'}).getByLabel('Choose');\n this.addTemplatesToPackagesBtn = this.propertyLayout.filter({hasText: 'Templates'}).getByLabel('Choose');\n this.addPartialViewToPackageBtn = this.propertyLayout.filter({hasText: 'Partial Views'}).getByLabel('Choose');\n this.addScriptToPackageBtn = this.propertyLayout.filter({hasText: 'Scripts'}).getByLabel('Choose');\n this.addStylesheetToPackageBtn = this.propertyLayout.filter({hasText: 'Stylesheets'}).getByLabel('Choose');\n this.downloadPackageBtn = page.getByLabel('Download');\n this.umbracoBackofficePackage = page.locator('uui-ref-node-package', {hasText: '@umbraco-cms/backoffice'});\n }\n\n async isUmbracoBackofficePackageVisible(isVisible = true) {\n return await expect(this.umbracoBackofficePackage).toBeVisible({visible: isVisible});\n }\n\n async clickCreatedTab() {\n await this.page.waitForTimeout(500);\n await this.createdTabBtn.click({force: true});\n await this.page.waitForTimeout(500);\n }\n\n async clickInstalledTab() {\n await this.installedTabBtn.click({force: true});\n }\n\n async clickPackagesTab() {\n await this.packagesTabBtn.click({force: true});\n }\n\n async clickChooseBtn() {\n await this.chooseModalBtn.click();\n }\n\n async isMarketPlaceIFrameVisible(isVisible = true) {\n return await expect(this.marketPlaceIFrame).toBeVisible({visible: isVisible});\n }\n\n async clickCreatePackageButton() {\n await this.createPackageBtn.click();\n }\n\n async enterPackageName(packageName: string) {\n await this.packageNameTxt.clear();\n await this.packageNameTxt.fill(packageName);\n await this.page.waitForTimeout(500);\n }\n\n async isPackageNameVisible(packageName: string, isVisible = true) {\n return await expect(this.page.getByRole('button', {name: packageName})).toBeVisible({visible: isVisible});\n }\n\n async clickExistingPackageName(packageName: string) {\n await this.page.getByRole('button', {name: packageName}).click();\n await this.page.waitForTimeout(500);\n }\n\n async clickDeleteButtonForPackageName(packageName: string) {\n await this.page.locator('uui-ref-node-package', {hasText: packageName}).getByLabel('Delete').click({force: true});\n }\n\n async clickSaveChangesToPackageButton() {\n await this.saveChangesToPackageBtn.click();\n }\n\n async clickAddContentToPackageButton() {\n await this.addContentToPackageBtn.click();\n }\n\n async clickAddMediaToPackageButton() {\n await this.addMediaToPackageBtn.click({force: true});\n }\n\n async clickAddDocumentTypeToPackageButton() {\n await this.addDocumentTypeToPackageBtn.click();\n }\n\n async clickAddMediaTypeToPackageButton() {\n await this.addMediaTypeToPackageBtn.click();\n }\n\n async clickAddLanguageToPackageButton() {\n await this.addLanguageToPackageBtn.click();\n }\n\n async clickAddDictionaryToPackageButton() {\n await this.addDictionaryToPackageBtn.click();\n }\n\n async clickAddDataTypesToPackageButton() {\n await this.addDataTypesToPackageBtn.click();\n }\n\n async clickAddTemplatesToPackageButton() {\n await this.addTemplatesToPackagesBtn.click();\n }\n\n async clickAddPartialViewToPackageButton() {\n await this.addPartialViewToPackageBtn.click();\n }\n\n async clickAddScriptToPackageButton() {\n await this.addScriptToPackageBtn.click();\n }\n\n async clickAddStylesheetToPackageButton() {\n await this.addStylesheetToPackageBtn.click();\n }\n\n // Downloads the package and converts it to a string\n async downloadPackage(packageId: string) {\n const responsePromise = this.page.waitForResponse(umbracoConfig.environment.baseUrl + '/umbraco/management/api/v1/package/created/' + packageId + '/download');\n await this.downloadPackageBtn.click();\n const response = await responsePromise;\n const body = await response.body();\n return body.toString().trim();\n }\n}"]}
|
|
@@ -4,8 +4,9 @@ export declare class PartialViewApiHelper {
|
|
|
4
4
|
constructor(api: ApiHelpers);
|
|
5
5
|
get(path: string): Promise<any>;
|
|
6
6
|
doesExist(path: string): Promise<boolean>;
|
|
7
|
-
create(name: string, content: string, parentPath?: string): Promise<string
|
|
8
|
-
|
|
7
|
+
create(name: string, content: string, parentPath?: string): Promise<string>;
|
|
8
|
+
updateContent(path: string, content: string): Promise<import("playwright-core").APIResponse>;
|
|
9
|
+
updateName(path: string, name: string): Promise<string>;
|
|
9
10
|
delete(path: string): Promise<import("playwright-core").APIResponse>;
|
|
10
11
|
doesNameExist(name: string): Promise<any>;
|
|
11
12
|
getChildren(path: string): Promise<any>;
|
|
@@ -16,7 +17,7 @@ export declare class PartialViewApiHelper {
|
|
|
16
17
|
private recurseDeleteChildren;
|
|
17
18
|
getFolder(path: string): Promise<any>;
|
|
18
19
|
doesFolderExist(path: string): Promise<boolean>;
|
|
19
|
-
createFolder(name: string, parentPath?: string): Promise<
|
|
20
|
+
createFolder(name: string, parentPath?: string): Promise<string>;
|
|
20
21
|
deleteFolder(path: string): Promise<import("playwright-core").APIResponse>;
|
|
21
|
-
|
|
22
|
+
createDefaultPartialView(name: string): Promise<string>;
|
|
22
23
|
}
|
|
@@ -7,39 +7,48 @@ class PartialViewApiHelper {
|
|
|
7
7
|
this.api = api;
|
|
8
8
|
}
|
|
9
9
|
async get(path) {
|
|
10
|
-
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/partial-view
|
|
10
|
+
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/' + encodeURIComponent(path));
|
|
11
11
|
return await response.json();
|
|
12
12
|
}
|
|
13
13
|
async doesExist(path) {
|
|
14
|
-
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/partial-view
|
|
14
|
+
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/' + encodeURIComponent(path));
|
|
15
15
|
return response.status() === 200;
|
|
16
16
|
}
|
|
17
|
-
async create(name, content, parentPath
|
|
17
|
+
async create(name, content, parentPath) {
|
|
18
|
+
const parentValue = parentPath ? { 'path': parentPath } : null;
|
|
18
19
|
const partialViewData = {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
'name': name,
|
|
21
|
+
'parent': parentValue,
|
|
22
|
+
'content': content
|
|
22
23
|
};
|
|
23
24
|
const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/partial-view', partialViewData);
|
|
24
25
|
// Returns the path of the created partialView
|
|
25
|
-
|
|
26
|
+
const partialViewPath = response.headers().location.split("/").pop();
|
|
27
|
+
return decodeURIComponent(partialViewPath);
|
|
26
28
|
}
|
|
27
|
-
async
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
async updateContent(path, content) {
|
|
30
|
+
const contentData = {
|
|
31
|
+
'content': content
|
|
32
|
+
};
|
|
33
|
+
return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/' + encodeURIComponent(path), contentData);
|
|
34
|
+
}
|
|
35
|
+
async updateName(path, name) {
|
|
36
|
+
const renameData = {
|
|
37
|
+
'name': name
|
|
32
38
|
};
|
|
33
|
-
|
|
39
|
+
const response = await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/' + encodeURIComponent(path) + '/rename', renameData);
|
|
40
|
+
// Returns the path of the renamed partialView
|
|
41
|
+
const partialViewPath = response.headers().location.split("/").pop();
|
|
42
|
+
return decodeURIComponent(partialViewPath);
|
|
34
43
|
}
|
|
35
44
|
async delete(path) {
|
|
36
|
-
return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/partial-view
|
|
45
|
+
return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/' + encodeURIComponent(path));
|
|
37
46
|
}
|
|
38
47
|
async doesNameExist(name) {
|
|
39
48
|
return await this.getByName(name);
|
|
40
49
|
}
|
|
41
50
|
async getChildren(path) {
|
|
42
|
-
const response = await this.api.get(`${this.api.baseUrl}/umbraco/management/api/v1/tree/partial-view/children?
|
|
51
|
+
const response = await this.api.get(`${this.api.baseUrl}/umbraco/management/api/v1/tree/partial-view/children?parentPath=${path}&skip=0&take=10000`);
|
|
43
52
|
const items = await response.json();
|
|
44
53
|
return items.items;
|
|
45
54
|
}
|
|
@@ -124,33 +133,30 @@ class PartialViewApiHelper {
|
|
|
124
133
|
}
|
|
125
134
|
// Folder
|
|
126
135
|
async getFolder(path) {
|
|
127
|
-
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/folder
|
|
136
|
+
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/folder/' + encodeURIComponent(path));
|
|
128
137
|
return await response.json();
|
|
129
138
|
}
|
|
130
139
|
async doesFolderExist(path) {
|
|
131
|
-
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/folder
|
|
140
|
+
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/folder/' + encodeURIComponent(path));
|
|
132
141
|
return response.status() === 200;
|
|
133
142
|
}
|
|
134
|
-
async createFolder(name, parentPath
|
|
143
|
+
async createFolder(name, parentPath) {
|
|
144
|
+
const parentValue = parentPath ? { 'path': parentPath } : null;
|
|
135
145
|
const partialViewFolderData = {
|
|
136
146
|
"name": name,
|
|
137
|
-
"
|
|
147
|
+
"parent": parentValue
|
|
138
148
|
};
|
|
139
149
|
const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/folder', partialViewFolderData);
|
|
140
|
-
// Returns the
|
|
141
|
-
const
|
|
142
|
-
return
|
|
150
|
+
// Returns the path of the created folder
|
|
151
|
+
const folderPath = response.headers().location.split("/").pop();
|
|
152
|
+
return decodeURIComponent(folderPath);
|
|
143
153
|
}
|
|
144
154
|
async deleteFolder(path) {
|
|
145
|
-
return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/folder
|
|
155
|
+
return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/folder/' + encodeURIComponent(path));
|
|
146
156
|
}
|
|
147
|
-
async
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
if (json !== null) {
|
|
151
|
-
return json;
|
|
152
|
-
}
|
|
153
|
-
return null;
|
|
157
|
+
async createDefaultPartialView(name) {
|
|
158
|
+
await this.ensureNameNotExists(name);
|
|
159
|
+
return await this.create(name, "<h1>Test</h1>");
|
|
154
160
|
}
|
|
155
161
|
}
|
|
156
162
|
exports.PartialViewApiHelper = PartialViewApiHelper;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PartialViewApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/PartialViewApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\n\nexport class PartialViewApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async get(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/partial-view?path=' + path);\n return await response.json();\n }\n\n async doesExist(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/partial-view?path=' + path);\n return response.status() === 200;\n }\n\n async create(name: string, content: string, parentPath: string = \"\") {\n const partialViewData = {\n \"name\": name,\n \"content\": content,\n \"parentPath\": parentPath\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/partial-view', partialViewData);\n // Returns the path of the created partialView\n return response.headers().location.split(\"=\").pop();\n }\n\n async update(partialView) {\n const partialViewData = {\n \"name\": partialView.name,\n \"content\": partialView.content,\n \"existingPath\": partialView.path\n };\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/partial-view', partialViewData);\n }\n\n async delete(path: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/partial-view?path=' + path);\n }\n\n async doesNameExist(name: string) {\n return await this.getByName(name);\n }\n\n async getChildren(path: string) {\n const response = await this.api.get(`${this.api.baseUrl}/umbraco/management/api/v1/tree/partial-view/children?path=${path}&skip=0&take=10000`);\n const items = await response.json();\n return items.items;\n }\n\n async getAllAtRoot() {\n return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/partial-view/root?skip=0&take=10000');\n }\n\n async getByName(name: string) {\n const rootPartialView = await this.getAllAtRoot();\n const jsonPartialView = await rootPartialView.json();\n\n for (const partialView of jsonPartialView.items) {\n if (partialView.name === name) {\n if (partialView.isFolder) {\n return this.getFolder(partialView.path);\n } else {\n return this.get(partialView.path);\n }\n } else if (partialView.isFolder && partialView.hasChildren) {\n const result = await this.recurseChildren(name, partialView.path, false);\n if (result) {\n return result;\n }\n }\n }\n return false;\n }\n\n async ensureNameNotExists(name: string) {\n const rootPartialView = await this.getAllAtRoot();\n const jsonPartialView = await rootPartialView.json();\n\n for (const partialView of jsonPartialView.items) {\n if (partialView.name === name) {\n if (partialView.isFolder) {\n return await this.recurseDeleteChildren(partialView);\n }\n return await this.delete(partialView.path);\n } else if (partialView.hasChildren) {\n await this.recurseChildren(name, partialView.path, true);\n }\n }\n return null;\n }\n\n private async recurseChildren(name: string, path: string, toDelete: boolean) {\n const items = await this.getChildren(path);\n\n for (const child of items) {\n if (child.name === name) {\n if (!toDelete) {\n if (child.isFolder) {\n return await this.getFolder(child.path);\n }\n return await this.get(child.path);\n }\n if (child.isFolder) {\n return await this.recurseDeleteChildren(child);\n }\n return await this.delete(child.path);\n } else if (child.hasChildren) {\n return await this.recurseChildren(name, child.path, toDelete);\n }\n }\n return false;\n }\n\n private async recurseDeleteChildren(partialViewFolder) {\n if (!partialViewFolder.hasChildren) {\n return await this.deleteFolder(partialViewFolder.path);\n }\n const items = await this.getChildren(partialViewFolder.path);\n\n for (const child of items) {\n if (child.hasChildren) {\n await this.recurseDeleteChildren(child);\n } else if (child.isFolder) {\n await this.deleteFolder(child.path);\n } else {\n await this.delete(child.path);\n }\n }\n return await this.deleteFolder(partialViewFolder.path);\n }\n\n // Folder\n async getFolder(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/folder?path=' + path);\n return await response.json();\n }\n\n async doesFolderExist(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/folder?path=' + path);\n return response.status() === 200;\n }\n\n async createFolder(name: string, parentPath = \"\") {\n const partialViewFolderData =\n {\n \"name\": name,\n \"parentPath\": parentPath\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/folder', partialViewFolderData);\n // Returns the id of the created partialViewFolder\n const json = await response.json();\n return json.path;\n }\n\n async deleteFolder(path: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/folder?path=' + path);\n }\n\n async getFolderChildren(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/partial-view/children?path=' + path + '&skip=0&take=10000');\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n}"]}
|
|
1
|
+
{"version":3,"file":"PartialViewApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/PartialViewApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\n\nexport class PartialViewApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async get(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/' + encodeURIComponent(path));\n return await response.json();\n }\n\n async doesExist(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/' + encodeURIComponent(path));\n return response.status() === 200;\n }\n\n async create(name: string, content: string, parentPath?: string) {\n const parentValue = parentPath ? {'path': parentPath} : null;\n const partialViewData = {\n 'name': name,\n 'parent': parentValue,\n 'content': content\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/partial-view', partialViewData);\n // Returns the path of the created partialView\n const partialViewPath = response.headers().location.split(\"/\").pop() as string;\n return decodeURIComponent(partialViewPath);\n }\n\n async updateContent(path: string, content: string) {\n const contentData = {\n 'content': content\n }\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/'+ encodeURIComponent(path), contentData);\n }\n\n async updateName(path: string, name: string) {\n const renameData = {\n 'name': name\n }\n const response = await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/'+ encodeURIComponent(path) + '/rename', renameData);\n // Returns the path of the renamed partialView\n const partialViewPath = response.headers().location.split(\"/\").pop() as string;\n return decodeURIComponent(partialViewPath);\n }\n\n async delete(path: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/' + encodeURIComponent(path));\n }\n\n async doesNameExist(name: string) {\n return await this.getByName(name);\n }\n\n async getChildren(path: string) {\n const response = await this.api.get(`${this.api.baseUrl}/umbraco/management/api/v1/tree/partial-view/children?parentPath=${path}&skip=0&take=10000`);\n const items = await response.json();\n return items.items;\n }\n\n async getAllAtRoot() {\n return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/partial-view/root?skip=0&take=10000');\n }\n\n async getByName(name: string) {\n const rootPartialView = await this.getAllAtRoot();\n const jsonPartialView = await rootPartialView.json();\n\n for (const partialView of jsonPartialView.items) {\n if (partialView.name === name) {\n if (partialView.isFolder) {\n return this.getFolder(partialView.path);\n } else {\n return this.get(partialView.path);\n }\n } else if (partialView.isFolder && partialView.hasChildren) {\n const result = await this.recurseChildren(name, partialView.path, false);\n if (result) {\n return result;\n }\n }\n }\n return false;\n }\n\n async ensureNameNotExists(name: string) {\n const rootPartialView = await this.getAllAtRoot();\n const jsonPartialView = await rootPartialView.json();\n\n for (const partialView of jsonPartialView.items) {\n if (partialView.name === name) {\n if (partialView.isFolder) {\n return await this.recurseDeleteChildren(partialView);\n }\n return await this.delete(partialView.path);\n } else if (partialView.hasChildren) {\n await this.recurseChildren(name, partialView.path, true);\n }\n }\n return null;\n }\n\n private async recurseChildren(name: string, path: string, toDelete: boolean) {\n const items = await this.getChildren(path);\n\n for (const child of items) {\n if (child.name === name) {\n if (!toDelete) {\n if (child.isFolder) {\n return await this.getFolder(child.path);\n }\n return await this.get(child.path);\n }\n if (child.isFolder) {\n return await this.recurseDeleteChildren(child);\n }\n return await this.delete(child.path);\n } else if (child.hasChildren) {\n return await this.recurseChildren(name, child.path, toDelete);\n }\n }\n return false;\n }\n\n private async recurseDeleteChildren(partialViewFolder) {\n if (!partialViewFolder.hasChildren) {\n return await this.deleteFolder(partialViewFolder.path);\n }\n const items = await this.getChildren(partialViewFolder.path);\n\n for (const child of items) {\n if (child.hasChildren) {\n await this.recurseDeleteChildren(child);\n } else if (child.isFolder) {\n await this.deleteFolder(child.path);\n } else {\n await this.delete(child.path);\n }\n }\n return await this.deleteFolder(partialViewFolder.path);\n }\n\n // Folder\n async getFolder(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/folder/' + encodeURIComponent(path));\n return await response.json();\n }\n\n async doesFolderExist(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/folder/' + encodeURIComponent(path));\n return response.status() === 200;\n }\n\n async createFolder(name: string, parentPath?: string) {\n const parentValue = parentPath ? {'path': parentPath} : null;\n const partialViewFolderData =\n {\n \"name\": name,\n \"parent\": parentValue\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/folder', partialViewFolderData);\n // Returns the path of the created folder\n const folderPath = response.headers().location.split(\"/\").pop() as string;\n return decodeURIComponent(folderPath);\n }\n\n async deleteFolder(path: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/folder/' + encodeURIComponent(path));\n }\n\n async createDefaultPartialView(name: string) {\n await this.ensureNameNotExists(name);\n return await this.create(name, \"<h1>Test</h1>\");\n }\n}"]}
|
|
@@ -1,25 +1,21 @@
|
|
|
1
1
|
import { Page } from "@playwright/test";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
private readonly uiBaseLocators;
|
|
2
|
+
import { UiBaseLocators } from "./UiBaseLocators";
|
|
3
|
+
export declare class PartialViewUiHelper extends UiBaseLocators {
|
|
5
4
|
private readonly newEmptyPartialViewBtn;
|
|
6
5
|
private readonly newPartialViewFromSnippetBtn;
|
|
7
6
|
private readonly partialViewNameTxt;
|
|
7
|
+
private readonly partialViewTree;
|
|
8
|
+
private readonly partialViewUiLoader;
|
|
8
9
|
constructor(page: Page);
|
|
9
10
|
clickActionsMenuForPartialView(name: string): Promise<void>;
|
|
10
11
|
clickActionsMenuAtRoot(): Promise<void>;
|
|
11
12
|
clickRootFolderCaretButton(): Promise<void>;
|
|
12
|
-
clickCaretButtonForName(name: string): Promise<void>;
|
|
13
13
|
clickNewEmptyPartialViewButton(): Promise<void>;
|
|
14
14
|
clickNewPartialViewFromSnippetButton(): Promise<void>;
|
|
15
|
-
clickSaveButton(): Promise<void>;
|
|
16
|
-
clickBreadcrumbButton(): Promise<void>;
|
|
17
|
-
createFolder(folderName: string): Promise<void>;
|
|
18
15
|
enterPartialViewName(partialViewName: string): Promise<void>;
|
|
19
16
|
enterPartialViewContent(partialViewContent: string): Promise<void>;
|
|
20
17
|
openPartialViewAtRoot(partialViewName: string): Promise<void>;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
insertDictionaryByName(dictionaryName: string): Promise<void>;
|
|
18
|
+
reloadPartialViewTree(): Promise<void>;
|
|
19
|
+
waitUntilPartialViewLoaderIsNoLongerVisible(): Promise<void>;
|
|
20
|
+
isPartialViewRootTreeItemVisible(partialView: string, isVisible?: boolean, toReload?: boolean): Promise<void>;
|
|
25
21
|
}
|
|
@@ -1,31 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PartialViewUiHelper = void 0;
|
|
4
|
+
const test_1 = require("@playwright/test");
|
|
4
5
|
const UiBaseLocators_1 = require("./UiBaseLocators");
|
|
5
|
-
class PartialViewUiHelper {
|
|
6
|
-
page;
|
|
7
|
-
uiBaseLocators;
|
|
6
|
+
class PartialViewUiHelper extends UiBaseLocators_1.UiBaseLocators {
|
|
8
7
|
newEmptyPartialViewBtn;
|
|
9
8
|
newPartialViewFromSnippetBtn;
|
|
10
9
|
partialViewNameTxt;
|
|
10
|
+
partialViewTree;
|
|
11
|
+
partialViewUiLoader;
|
|
11
12
|
constructor(page) {
|
|
12
|
-
|
|
13
|
-
this.uiBaseLocators = new UiBaseLocators_1.UiBaseLocators(this.page);
|
|
13
|
+
super(page);
|
|
14
14
|
this.newEmptyPartialViewBtn = page.getByLabel('New empty partial view');
|
|
15
15
|
this.newPartialViewFromSnippetBtn = page.getByLabel('New partial view from snippet...');
|
|
16
|
-
this.partialViewNameTxt = page.getByLabel('
|
|
16
|
+
this.partialViewNameTxt = page.getByLabel('Enter a name...');
|
|
17
|
+
this.partialViewTree = page.locator('umb-tree[alias="Umb.Tree.PartialView"]');
|
|
18
|
+
this.partialViewUiLoader = page.locator('uui-loader');
|
|
17
19
|
}
|
|
18
20
|
async clickActionsMenuForPartialView(name) {
|
|
19
|
-
await this.
|
|
21
|
+
await this.clickActionsMenuForName(name);
|
|
20
22
|
}
|
|
21
23
|
async clickActionsMenuAtRoot() {
|
|
22
|
-
await this.clickActionsMenuForPartialView(
|
|
24
|
+
await this.clickActionsMenuForPartialView('Partial Views');
|
|
23
25
|
}
|
|
24
26
|
async clickRootFolderCaretButton() {
|
|
25
|
-
await this.
|
|
26
|
-
}
|
|
27
|
-
async clickCaretButtonForName(name) {
|
|
28
|
-
await this.uiBaseLocators.clickCaretButtonForName(name);
|
|
27
|
+
await this.clickCaretButtonForName('Partial Views');
|
|
29
28
|
}
|
|
30
29
|
async clickNewEmptyPartialViewButton() {
|
|
31
30
|
await this.newEmptyPartialViewBtn.click();
|
|
@@ -33,41 +32,33 @@ class PartialViewUiHelper {
|
|
|
33
32
|
async clickNewPartialViewFromSnippetButton() {
|
|
34
33
|
await this.newPartialViewFromSnippetBtn.click();
|
|
35
34
|
}
|
|
36
|
-
async clickSaveButton() {
|
|
37
|
-
await this.uiBaseLocators.clickSaveButton();
|
|
38
|
-
}
|
|
39
|
-
async clickBreadcrumbButton() {
|
|
40
|
-
await this.uiBaseLocators.clickBreadcrumbButton();
|
|
41
|
-
}
|
|
42
|
-
async createFolder(folderName) {
|
|
43
|
-
await this.uiBaseLocators.clickCreateFolderButton();
|
|
44
|
-
await this.uiBaseLocators.folderNameTxt.fill(folderName);
|
|
45
|
-
await this.uiBaseLocators.clickConfirmCreateFolderButton();
|
|
46
|
-
}
|
|
47
35
|
async enterPartialViewName(partialViewName) {
|
|
36
|
+
await (0, test_1.expect)(this.partialViewNameTxt).toBeVisible();
|
|
37
|
+
await this.partialViewNameTxt.click();
|
|
48
38
|
await this.partialViewNameTxt.clear();
|
|
49
39
|
await this.partialViewNameTxt.fill(partialViewName);
|
|
50
40
|
}
|
|
51
41
|
async enterPartialViewContent(partialViewContent) {
|
|
52
|
-
await this.
|
|
53
|
-
await this.
|
|
42
|
+
await this.waitUntilPartialViewLoaderIsNoLongerVisible();
|
|
43
|
+
await this.textAreaInputArea.clear();
|
|
44
|
+
await this.textAreaInputArea.fill(partialViewContent);
|
|
54
45
|
}
|
|
55
46
|
async openPartialViewAtRoot(partialViewName) {
|
|
56
|
-
await this.
|
|
47
|
+
await this.reloadPartialViewTree();
|
|
57
48
|
await this.page.getByLabel(partialViewName).click();
|
|
49
|
+
await (0, test_1.expect)(this.partialViewNameTxt).toBeVisible();
|
|
58
50
|
}
|
|
59
|
-
async
|
|
60
|
-
await this.
|
|
61
|
-
await this.uiBaseLocators.clickConfirmToDeleteButton();
|
|
62
|
-
}
|
|
63
|
-
async deleteFolder() {
|
|
64
|
-
await this.uiBaseLocators.deleteFolder();
|
|
51
|
+
async reloadPartialViewTree() {
|
|
52
|
+
await this.reloadTree('Partial Views');
|
|
65
53
|
}
|
|
66
|
-
async
|
|
67
|
-
await this.
|
|
54
|
+
async waitUntilPartialViewLoaderIsNoLongerVisible() {
|
|
55
|
+
await (0, test_1.expect)(this.partialViewUiLoader).toBeVisible({ visible: false });
|
|
68
56
|
}
|
|
69
|
-
async
|
|
70
|
-
|
|
57
|
+
async isPartialViewRootTreeItemVisible(partialView, isVisible = true, toReload = true) {
|
|
58
|
+
if (toReload) {
|
|
59
|
+
await this.reloadPartialViewTree();
|
|
60
|
+
}
|
|
61
|
+
return (0, test_1.expect)(this.partialViewTree.getByText(partialView, { exact: true })).toBeVisible({ visible: isVisible });
|
|
71
62
|
}
|
|
72
63
|
}
|
|
73
64
|
exports.PartialViewUiHelper = PartialViewUiHelper;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PartialViewUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/PartialViewUiHelper.ts"],"names":[],"mappings":";;;
|
|
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 partialViewNameTxt: Locator;\n private readonly partialViewTree: Locator;\n private readonly partialViewUiLoader: 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.partialViewNameTxt = page.getByLabel('Enter a name...');\n this.partialViewTree = page.locator('umb-tree[alias=\"Umb.Tree.PartialView\"]');\n this.partialViewUiLoader = page.locator('uui-loader');\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.clickCaretButtonForName('Partial Views');\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.partialViewNameTxt).toBeVisible();\n await this.partialViewNameTxt.click();\n await this.partialViewNameTxt.clear();\n await this.partialViewNameTxt.fill(partialViewName);\n }\n\n async enterPartialViewContent(partialViewContent: string) {\n await this.waitUntilPartialViewLoaderIsNoLongerVisible();\n await this.textAreaInputArea.clear();\n await this.textAreaInputArea.fill(partialViewContent);\n }\n\n async openPartialViewAtRoot(partialViewName: string) {\n await this.reloadPartialViewTree();\n await this.page.getByLabel(partialViewName).click();\n await expect(this.partialViewNameTxt).toBeVisible();\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}"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Page } from "@playwright/test";
|
|
2
|
+
import { UiBaseLocators } from "./UiBaseLocators";
|
|
3
|
+
export declare class ProfilingUiHelper extends UiBaseLocators {
|
|
4
|
+
private readonly profilingTab;
|
|
5
|
+
private readonly activateProfilerByDefaultSlider;
|
|
6
|
+
private readonly activateProfilerByDefaultCheckbox;
|
|
7
|
+
constructor(page: Page);
|
|
8
|
+
clickProfilingTab(): Promise<void>;
|
|
9
|
+
clickActivateProfilerByDefaultSlider(): Promise<void>;
|
|
10
|
+
isActivateProfilerByDefaultSliderChecked(isChecked: boolean): Promise<void>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ProfilingUiHelper = void 0;
|
|
4
|
+
const test_1 = require("@playwright/test");
|
|
5
|
+
const UiBaseLocators_1 = require("./UiBaseLocators");
|
|
6
|
+
class ProfilingUiHelper extends UiBaseLocators_1.UiBaseLocators {
|
|
7
|
+
profilingTab;
|
|
8
|
+
activateProfilerByDefaultSlider;
|
|
9
|
+
activateProfilerByDefaultCheckbox;
|
|
10
|
+
constructor(page) {
|
|
11
|
+
super(page);
|
|
12
|
+
this.profilingTab = page.getByRole('tab', { name: 'Profiling' });
|
|
13
|
+
this.activateProfilerByDefaultSlider = page.locator("[label='Activate the profiler by default'] #slider");
|
|
14
|
+
this.activateProfilerByDefaultCheckbox = page.getByLabel('Activate the profiler by default');
|
|
15
|
+
}
|
|
16
|
+
async clickProfilingTab() {
|
|
17
|
+
await this.profilingTab.click();
|
|
18
|
+
}
|
|
19
|
+
async clickActivateProfilerByDefaultSlider() {
|
|
20
|
+
await this.activateProfilerByDefaultSlider.click();
|
|
21
|
+
}
|
|
22
|
+
async isActivateProfilerByDefaultSliderChecked(isChecked) {
|
|
23
|
+
return (0, test_1.expect)(this.activateProfilerByDefaultCheckbox).toBeChecked({ checked: isChecked });
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.ProfilingUiHelper = ProfilingUiHelper;
|
|
27
|
+
//# sourceMappingURL=ProfilingUiHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProfilingUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/ProfilingUiHelper.ts"],"names":[],"mappings":";;;AAAA,2CAAuD;AACvD,qDAAgD;AAEhD,MAAa,iBAAkB,SAAQ,+BAAc;IAClC,YAAY,CAAU;IACtB,+BAA+B,CAAU;IACzC,iCAAiC,CAAU;IAE5D,YAAY,IAAU;QACpB,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,EAAC,IAAI,EAAE,WAAW,EAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,+BAA+B,GAAG,IAAI,CAAC,OAAO,CAAC,oDAAoD,CAAC,CAAC;QAC1G,IAAI,CAAC,iCAAiC,GAAG,IAAI,CAAC,UAAU,CAAC,kCAAkC,CAAC,CAAC;IAC/F,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,oCAAoC;QACxC,MAAM,IAAI,CAAC,+BAA+B,CAAC,KAAK,EAAE,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,wCAAwC,CAAC,SAAkB;QAC/D,OAAO,IAAA,aAAM,EAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC,WAAW,CAAC,EAAC,OAAO,EAAE,SAAS,EAAC,CAAC,CAAC;IAC1F,CAAC;CACF;AAvBD,8CAuBC","sourcesContent":["import {Page, Locator, expect} from \"@playwright/test\";\nimport {UiBaseLocators} from \"./UiBaseLocators\";\n\nexport class ProfilingUiHelper extends UiBaseLocators {\n private readonly profilingTab: Locator;\n private readonly activateProfilerByDefaultSlider: Locator;\n private readonly activateProfilerByDefaultCheckbox: Locator;\n\n constructor(page: Page) {\n super(page);\n this.profilingTab = page.getByRole('tab', {name: 'Profiling'});\n this.activateProfilerByDefaultSlider = page.locator(\"[label='Activate the profiler by default'] #slider\");\n this.activateProfilerByDefaultCheckbox = page.getByLabel('Activate the profiler by default');\n }\n\n async clickProfilingTab() {\n await this.profilingTab.click();\n }\n\n async clickActivateProfilerByDefaultSlider() {\n await this.activateProfilerByDefaultSlider.click();\n }\n\n async isActivateProfilerByDefaultSliderChecked(isChecked: boolean) {\n return expect(this.activateProfilerByDefaultCheckbox).toBeChecked({checked: isChecked});\n }\n}\n"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PublishedCacheApiHelper = void 0;
|
|
4
|
+
class PublishedCacheApiHelper {
|
|
5
|
+
api;
|
|
6
|
+
constructor(api) {
|
|
7
|
+
this.api = api;
|
|
8
|
+
}
|
|
9
|
+
async getStatus() {
|
|
10
|
+
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/published-cache/status');
|
|
11
|
+
return await response.json();
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.PublishedCacheApiHelper = PublishedCacheApiHelper;
|
|
15
|
+
//# sourceMappingURL=PublishedCacheApiHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PublishedCacheApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/PublishedCacheApiHelper.ts"],"names":[],"mappings":";;;AAEA,MAAa,uBAAuB;IAClC,GAAG,CAAY;IAEf,YAAY,GAAe;QACzB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,SAAS;QACb,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,mDAAmD,CAAC,CAAC;QAC5G,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;CACF;AAXD,0DAWC","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\n\nexport class PublishedCacheApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async getStatus() {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/published-cache/status');\n return await response.json(); \n }\n}"]}
|