@umbraco/playwright-testhelpers 2.0.0-beta.4 → 2.0.0-beta.41
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 +34 -4
- package/dist/lib/helpers/ApiHelpers.js +125 -4
- package/dist/lib/helpers/ApiHelpers.js.map +1 -1
- package/dist/lib/helpers/ConstantHelper.js +1 -1
- package/dist/lib/helpers/ConstantHelper.js.map +1 -1
- package/dist/lib/helpers/DataTypeApiHelper.d.ts +14 -14
- package/dist/lib/helpers/DataTypeApiHelper.js +114 -133
- package/dist/lib/helpers/DataTypeApiHelper.js.map +1 -1
- package/dist/lib/helpers/DataTypeUiHelper.d.ts +159 -0
- package/dist/lib/helpers/DataTypeUiHelper.js +509 -0
- package/dist/lib/helpers/DataTypeUiHelper.js.map +1 -0
- package/dist/lib/helpers/DictionaryApiHelper.d.ts +12 -8
- package/dist/lib/helpers/DictionaryApiHelper.js +104 -66
- package/dist/lib/helpers/DictionaryApiHelper.js.map +1 -1
- package/dist/lib/helpers/DictionaryUiHelper.d.ts +31 -0
- package/dist/lib/helpers/DictionaryUiHelper.js +92 -0
- package/dist/lib/helpers/DictionaryUiHelper.js.map +1 -0
- package/dist/lib/helpers/DocumentApiHelper.d.ts +17 -0
- package/dist/lib/helpers/DocumentApiHelper.js +159 -0
- package/dist/lib/helpers/DocumentApiHelper.js.map +1 -1
- package/dist/lib/helpers/DocumentTypeApiHelper.d.ts +25 -0
- package/dist/lib/helpers/DocumentTypeApiHelper.js +227 -0
- package/dist/lib/helpers/DocumentTypeApiHelper.js.map +1 -0
- package/dist/lib/helpers/DocumentTypeUiHelper.d.ts +23 -0
- package/dist/lib/helpers/DocumentTypeUiHelper.js +62 -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 +22 -0
- package/dist/lib/helpers/LanguageUiHelper.js +62 -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/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 +22 -0
- package/dist/lib/helpers/MediaApiHelper.js +168 -0
- package/dist/lib/helpers/MediaApiHelper.js.map +1 -0
- package/dist/lib/helpers/MediaTypeApiHelper.d.ts +22 -0
- package/dist/lib/helpers/MediaTypeApiHelper.js +194 -0
- package/dist/lib/helpers/MediaTypeApiHelper.js.map +1 -0
- package/dist/lib/helpers/MediaTypeUiHelper.d.ts +15 -0
- package/dist/lib/helpers/MediaTypeUiHelper.js +39 -0
- package/dist/lib/helpers/MediaTypeUiHelper.js.map +1 -0
- package/dist/lib/helpers/MediaUiHelper.d.ts +40 -0
- package/dist/lib/helpers/MediaUiHelper.js +128 -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 +63 -0
- package/dist/lib/helpers/MemberGroupApiHelper.js.map +1 -0
- package/dist/lib/helpers/MemberGroupUiHelper.d.ts +16 -0
- package/dist/lib/helpers/MemberGroupUiHelper.js +42 -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 +40 -0
- package/dist/lib/helpers/MemberUiHelper.js +114 -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/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 +49 -0
- package/dist/lib/helpers/PackageUiHelper.js +134 -0
- package/dist/lib/helpers/PackageUiHelper.js.map +1 -0
- package/dist/lib/helpers/PartialViewApiHelper.d.ts +14 -10
- package/dist/lib/helpers/PartialViewApiHelper.js +124 -98
- package/dist/lib/helpers/PartialViewApiHelper.js.map +1 -1
- package/dist/lib/helpers/PartialViewUiHelper.d.ts +19 -0
- package/dist/lib/helpers/PartialViewUiHelper.js +57 -0
- package/dist/lib/helpers/PartialViewUiHelper.js.map +1 -0
- 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/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 +15 -10
- package/dist/lib/helpers/ScriptApiHelper.js +144 -97
- package/dist/lib/helpers/ScriptApiHelper.js.map +1 -1
- package/dist/lib/helpers/ScriptUiHelper.d.ts +18 -0
- package/dist/lib/helpers/ScriptUiHelper.js +57 -0
- package/dist/lib/helpers/ScriptUiHelper.js.map +1 -0
- package/dist/lib/helpers/StylesheetApiHelper.d.ts +14 -10
- package/dist/lib/helpers/StylesheetApiHelper.js +131 -105
- package/dist/lib/helpers/StylesheetApiHelper.js.map +1 -1
- package/dist/lib/helpers/StylesheetUiHelper.d.ts +28 -0
- package/dist/lib/helpers/StylesheetUiHelper.js +90 -0
- package/dist/lib/helpers/StylesheetUiHelper.js.map +1 -0
- 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 +7 -5
- package/dist/lib/helpers/TemplateApiHelper.js +75 -51
- package/dist/lib/helpers/TemplateApiHelper.js.map +1 -1
- package/dist/lib/helpers/TemplateUiHelper.d.ts +25 -0
- package/dist/lib/helpers/TemplateUiHelper.js +89 -0
- package/dist/lib/helpers/TemplateUiHelper.js.map +1 -0
- package/dist/lib/helpers/TemporaryFileApiHelper.d.ts +1 -1
- package/dist/lib/helpers/TemporaryFileApiHelper.js +6 -10
- package/dist/lib/helpers/TemporaryFileApiHelper.js.map +1 -1
- package/dist/lib/helpers/UiBaseLocators.d.ts +183 -0
- package/dist/lib/helpers/UiBaseLocators.js +575 -0
- package/dist/lib/helpers/UiBaseLocators.js.map +1 -0
- package/dist/lib/helpers/UiHelpers.d.ts +56 -6
- package/dist/lib/helpers/UiHelpers.js +87 -20
- package/dist/lib/helpers/UiHelpers.js.map +1 -1
- package/dist/lib/helpers/UserApiHelper.d.ts +7 -3
- package/dist/lib/helpers/UserApiHelper.js +35 -13
- package/dist/lib/helpers/UserApiHelper.js.map +1 -1
- package/dist/lib/helpers/UserGroupApiHelper.d.ts +5 -3
- package/dist/lib/helpers/UserGroupApiHelper.js +20 -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 +41 -0
- package/dist/lib/helpers/UserUiHelper.js +116 -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/testExtension.js +2 -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 +10 -8
- package/dist/lib/helpers/RelationType.d.ts +0 -15
- package/dist/lib/helpers/RelationType.js.map +0 -1
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ScriptUiHelper = void 0;
|
|
4
|
+
const test_1 = require("@playwright/test");
|
|
5
|
+
const UiBaseLocators_1 = require("./UiBaseLocators");
|
|
6
|
+
const ConstantHelper_1 = require("./ConstantHelper");
|
|
7
|
+
class ScriptUiHelper extends UiBaseLocators_1.UiBaseLocators {
|
|
8
|
+
scriptNameTxt;
|
|
9
|
+
newJavascriptFileBtn;
|
|
10
|
+
scriptTree;
|
|
11
|
+
constructor(page) {
|
|
12
|
+
super(page);
|
|
13
|
+
this.scriptNameTxt = page.getByLabel('Script name');
|
|
14
|
+
this.newJavascriptFileBtn = page.getByLabel('New Javascript file');
|
|
15
|
+
this.scriptTree = page.locator('umb-tree[alias="Umb.Tree.Script"]');
|
|
16
|
+
}
|
|
17
|
+
async clickActionsMenuForScript(name) {
|
|
18
|
+
await this.clickActionsMenuForName(name);
|
|
19
|
+
}
|
|
20
|
+
async clickActionsMenuAtRoot() {
|
|
21
|
+
await this.clickActionsMenuForScript('Scripts');
|
|
22
|
+
}
|
|
23
|
+
async clickRootFolderCaretButton() {
|
|
24
|
+
await this.clickCaretButtonForName('Scripts');
|
|
25
|
+
}
|
|
26
|
+
async clickNewJavascriptFileButton() {
|
|
27
|
+
await this.newJavascriptFileBtn.click();
|
|
28
|
+
}
|
|
29
|
+
// Will only work for root scripts
|
|
30
|
+
async goToScript(scriptName) {
|
|
31
|
+
await this.goToSection(ConstantHelper_1.ConstantHelper.sections.settings);
|
|
32
|
+
await this.reloadScriptTree();
|
|
33
|
+
await this.page.getByLabel(scriptName).click({ force: true });
|
|
34
|
+
}
|
|
35
|
+
async enterScriptName(scriptContent) {
|
|
36
|
+
await (0, test_1.expect)(this.scriptNameTxt).toBeVisible();
|
|
37
|
+
await this.scriptNameTxt.fill(scriptContent);
|
|
38
|
+
}
|
|
39
|
+
async enterScriptContent(scriptContent) {
|
|
40
|
+
await (0, test_1.expect)(this.textAreaInputArea).toBeVisible();
|
|
41
|
+
await this.textAreaInputArea.clear();
|
|
42
|
+
await this.textAreaInputArea.fill(scriptContent);
|
|
43
|
+
}
|
|
44
|
+
async openScriptAtRoot(scriptName) {
|
|
45
|
+
await this.reloadScriptTree();
|
|
46
|
+
await this.page.getByLabel(scriptName, { exact: true }).click({ force: true });
|
|
47
|
+
}
|
|
48
|
+
async reloadScriptTree() {
|
|
49
|
+
await this.reloadTree('Scripts');
|
|
50
|
+
}
|
|
51
|
+
async isScriptRootTreeItemVisible(scriptName, isVisible = true) {
|
|
52
|
+
await this.reloadScriptTree();
|
|
53
|
+
return (0, test_1.expect)(this.scriptTree.getByText(scriptName, { exact: true })).toBeVisible({ visible: isVisible });
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
exports.ScriptUiHelper = ScriptUiHelper;
|
|
57
|
+
//# sourceMappingURL=ScriptUiHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScriptUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/ScriptUiHelper.ts"],"names":[],"mappings":";;;AAAA,2CAAsD;AACtD,qDAAgD;AAChD,qDAAgD;AAEhD,MAAa,cAAe,SAAQ,+BAAc;IAC/B,aAAa,CAAU;IACvB,oBAAoB,CAAU;IAC9B,UAAU,CAAU;IAErC,YAAY,IAAU;QACpB,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QACpD,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;QACnE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,yBAAyB,CAAC,IAAY;QAC1C,MAAM,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,sBAAsB;QAC1B,MAAM,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,0BAA0B;QAC9B,MAAM,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,4BAA4B;QAChC,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;IAC1C,CAAC;IAED,kCAAkC;IAClC,KAAK,CAAC,UAAU,CAAC,UAAkB;QACjC,MAAM,IAAI,CAAC,WAAW,CAAC,+BAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACzD,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9B,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,aAAqB;QACzC,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;QAC/C,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,aAAqB;QAC5C,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,WAAW,EAAE,CAAC;QACnD,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QACrC,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,UAAkB;QACvC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9B,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC,KAAK,CAAC,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,2BAA2B,CAAC,UAAkB,EAAE,YAAqB,IAAI;QAC7E,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9B,OAAO,IAAA,aAAM,EAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,EAAE,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAC,OAAO,EAAE,SAAS,EAAC,CAAC,CAAC;IACxG,CAAC;CACF;AA3DD,wCA2DC","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 scriptNameTxt: Locator;\n private readonly newJavascriptFileBtn: Locator;\n private readonly scriptTree: Locator;\n\n constructor(page: Page) {\n super(page);\n this.scriptNameTxt = page.getByLabel('Script name');\n this.newJavascriptFileBtn = page.getByLabel('New Javascript file');\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 clickActionsMenuAtRoot() {\n await this.clickActionsMenuForScript('Scripts');\n }\n\n async clickRootFolderCaretButton() {\n await this.clickCaretButtonForName('Scripts');\n }\n\n async clickNewJavascriptFileButton() {\n await this.newJavascriptFileBtn.click();\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).click({force: true});\n }\n\n async enterScriptName(scriptContent: string) {\n await expect(this.scriptNameTxt).toBeVisible();\n await this.scriptNameTxt.fill(scriptContent);\n }\n\n async enterScriptContent(scriptContent: string) {\n await expect(this.textAreaInputArea).toBeVisible();\n await this.textAreaInputArea.clear();\n await this.textAreaInputArea.fill(scriptContent);\n }\n\n async openScriptAtRoot(scriptName: string) {\n await this.reloadScriptTree();\n await this.page.getByLabel(scriptName, {exact: true}).click({force: true});\n }\n\n async reloadScriptTree() {\n await this.reloadTree('Scripts');\n }\n\n async isScriptRootTreeItemVisible(scriptName: string, isVisible: boolean = true){\n await this.reloadScriptTree();\n return expect(this.scriptTree.getByText(scriptName, {exact: true})).toBeVisible({visible: isVisible});\n }\n}"]}
|
|
@@ -2,18 +2,22 @@ import { ApiHelpers } from "./ApiHelpers";
|
|
|
2
2
|
export declare class StylesheetApiHelper {
|
|
3
3
|
api: ApiHelpers;
|
|
4
4
|
constructor(api: ApiHelpers);
|
|
5
|
-
ensureNameNotExistsAtRoot(name: string): Promise<void | import("playwright-core").APIResponse | null>;
|
|
6
|
-
nameExistsAtRoot(name: string): Promise<boolean>;
|
|
7
|
-
exists(path: string): Promise<boolean>;
|
|
8
5
|
get(path: string): Promise<any>;
|
|
9
|
-
|
|
10
|
-
create(name: string, content: string, parentPath?: string): Promise<string
|
|
11
|
-
|
|
6
|
+
doesExist(path: string): Promise<boolean>;
|
|
7
|
+
create(name: string, content: string, parentPath?: string): Promise<string>;
|
|
8
|
+
updateName(path: string, newName: string): Promise<string | undefined>;
|
|
9
|
+
updateContent(path: string, newContent: string): Promise<import("playwright-core").APIResponse>;
|
|
12
10
|
delete(path: string): Promise<import("playwright-core").APIResponse>;
|
|
11
|
+
getChildren(path: string): Promise<any>;
|
|
12
|
+
doesNameExist(name: string): Promise<any>;
|
|
13
|
+
getAllAtRoot(): Promise<import("playwright-core").APIResponse>;
|
|
14
|
+
getByName(name: string): Promise<any>;
|
|
15
|
+
ensureNameNotExists(name: string): Promise<import("playwright-core").APIResponse | null>;
|
|
16
|
+
private recurseChildren;
|
|
17
|
+
private recurseDeleteChildren;
|
|
13
18
|
getFolder(path: string): Promise<any>;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
createFolder(name: string, parentPath?: string): Promise<any>;
|
|
19
|
+
doesFolderExist(path: string): Promise<boolean>;
|
|
20
|
+
createFolder(name: string, parentPath?: string): Promise<string | undefined>;
|
|
17
21
|
deleteFolder(path: string): Promise<import("playwright-core").APIResponse>;
|
|
18
|
-
|
|
22
|
+
createDefaultStylesheet(name: string): Promise<string>;
|
|
19
23
|
}
|
|
@@ -6,139 +6,165 @@ class StylesheetApiHelper {
|
|
|
6
6
|
constructor(api) {
|
|
7
7
|
this.api = api;
|
|
8
8
|
}
|
|
9
|
-
async
|
|
10
|
-
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
9
|
+
async get(path) {
|
|
10
|
+
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/' + encodeURIComponent(path));
|
|
11
|
+
return await response.json();
|
|
12
|
+
}
|
|
13
|
+
async doesExist(path) {
|
|
14
|
+
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/' + encodeURIComponent(path));
|
|
15
|
+
return response.status() === 200;
|
|
16
|
+
}
|
|
17
|
+
async create(name, content, parentPath = "/") {
|
|
18
|
+
const stylesheetData = {
|
|
19
|
+
"name": name,
|
|
20
|
+
"parent": {
|
|
21
|
+
"path": parentPath
|
|
22
|
+
},
|
|
23
|
+
"content": content
|
|
24
|
+
};
|
|
25
|
+
const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet', stylesheetData);
|
|
26
|
+
// Returns the path of the created stylesheet
|
|
27
|
+
const path = response.headers().location.split("/v1/stylesheet/").pop();
|
|
28
|
+
return decodeURIComponent(path);
|
|
29
|
+
}
|
|
30
|
+
async updateName(path, newName) {
|
|
31
|
+
const stylesheetData = {
|
|
32
|
+
"name": newName
|
|
33
|
+
};
|
|
34
|
+
const response = await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/' + encodeURIComponent(path) + '/rename', stylesheetData);
|
|
35
|
+
// Returns the path of the created Stylesheet
|
|
36
|
+
const newPath = response.headers().location.split("/v1/stylesheet/").pop();
|
|
37
|
+
if (newPath !== undefined) {
|
|
38
|
+
return decodeURIComponent(newPath);
|
|
39
|
+
}
|
|
40
|
+
return undefined;
|
|
41
|
+
}
|
|
42
|
+
async updateContent(path, newContent) {
|
|
43
|
+
const stylesheetData = {
|
|
44
|
+
"content": newContent
|
|
45
|
+
};
|
|
46
|
+
return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/' + encodeURIComponent(path), stylesheetData);
|
|
47
|
+
}
|
|
48
|
+
async delete(path) {
|
|
49
|
+
return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/' + encodeURIComponent(path));
|
|
50
|
+
}
|
|
51
|
+
async getChildren(path) {
|
|
52
|
+
const response = await this.api.get(`${this.api.baseUrl}/umbraco/management/api/v1/tree/stylesheet/children?parentPath=${path}&skip=0&take=10000`);
|
|
53
|
+
const items = await response.json();
|
|
54
|
+
return items.items;
|
|
55
|
+
}
|
|
56
|
+
async doesNameExist(name) {
|
|
57
|
+
return await this.getByName(name);
|
|
58
|
+
}
|
|
59
|
+
async getAllAtRoot() {
|
|
60
|
+
return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/stylesheet/root?skip=0&take=10000');
|
|
61
|
+
}
|
|
62
|
+
async getByName(name) {
|
|
63
|
+
const rootStylesheet = await this.getAllAtRoot();
|
|
64
|
+
const jsonStylesheet = await rootStylesheet.json();
|
|
65
|
+
for (const stylesheet of jsonStylesheet.items) {
|
|
66
|
+
if (stylesheet.name === name) {
|
|
67
|
+
if (stylesheet.isFolder) {
|
|
68
|
+
return this.getFolder(stylesheet.path);
|
|
16
69
|
}
|
|
17
70
|
else {
|
|
18
|
-
|
|
19
|
-
return await this.recurseFolderChildren(sb.path);
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder?path=' + sb.path);
|
|
23
|
-
}
|
|
71
|
+
return this.get(stylesheet.path);
|
|
24
72
|
}
|
|
25
73
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
const json = await response.json();
|
|
32
|
-
for (const sb of json.items) {
|
|
33
|
-
if (sb.name === name) {
|
|
34
|
-
return true;
|
|
74
|
+
else if (stylesheet.isFolder && stylesheet.hasChildren) {
|
|
75
|
+
const result = await this.recurseChildren(name, stylesheet.path, false);
|
|
76
|
+
if (result) {
|
|
77
|
+
return result;
|
|
78
|
+
}
|
|
35
79
|
}
|
|
36
80
|
}
|
|
37
81
|
return false;
|
|
38
82
|
}
|
|
39
|
-
async
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
83
|
+
async ensureNameNotExists(name) {
|
|
84
|
+
const rootStylesheet = await this.getAllAtRoot();
|
|
85
|
+
const jsonStylesheet = await rootStylesheet.json();
|
|
86
|
+
for (const stylesheet of jsonStylesheet.items) {
|
|
87
|
+
if (stylesheet.name === name) {
|
|
88
|
+
if (stylesheet.isFolder) {
|
|
89
|
+
return await this.recurseDeleteChildren(stylesheet);
|
|
90
|
+
}
|
|
91
|
+
return await this.delete(stylesheet.path);
|
|
92
|
+
}
|
|
93
|
+
else if (stylesheet.hasChildren) {
|
|
94
|
+
await this.recurseChildren(name, stylesheet.path, true);
|
|
95
|
+
}
|
|
48
96
|
}
|
|
49
97
|
return null;
|
|
50
98
|
}
|
|
51
|
-
async
|
|
52
|
-
const
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
99
|
+
async recurseChildren(name, path, toDelete) {
|
|
100
|
+
const items = await this.getChildren(path);
|
|
101
|
+
for (const child of items) {
|
|
102
|
+
if (child.name === name) {
|
|
103
|
+
if (!toDelete) {
|
|
104
|
+
if (child.isFolder) {
|
|
105
|
+
return await this.getFolder(child.path);
|
|
106
|
+
}
|
|
107
|
+
return await this.get(child.path);
|
|
59
108
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
return await stylesheetFolder.json();
|
|
109
|
+
if (child.isFolder) {
|
|
110
|
+
return await this.recurseDeleteChildren(child);
|
|
63
111
|
}
|
|
112
|
+
return await this.delete(child.path);
|
|
113
|
+
}
|
|
114
|
+
else if (child.hasChildren) {
|
|
115
|
+
return await this.recurseChildren(name, child.path, toDelete);
|
|
64
116
|
}
|
|
65
117
|
}
|
|
66
|
-
return
|
|
67
|
-
}
|
|
68
|
-
async create(name, content, parentPath = "") {
|
|
69
|
-
const stylesheetData = {
|
|
70
|
-
"name": name,
|
|
71
|
-
"content": content,
|
|
72
|
-
"parentPath": parentPath
|
|
73
|
-
};
|
|
74
|
-
const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet', stylesheetData);
|
|
75
|
-
// Returns the path of the created stylesheet
|
|
76
|
-
return response.headers().location.split("=").pop();
|
|
77
|
-
}
|
|
78
|
-
async update(stylesheet) {
|
|
79
|
-
const stylesheetData = {
|
|
80
|
-
"name": stylesheet.name,
|
|
81
|
-
"content": stylesheet.content,
|
|
82
|
-
"existingPath": stylesheet.path
|
|
83
|
-
};
|
|
84
|
-
return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet', stylesheetData);
|
|
118
|
+
return false;
|
|
85
119
|
}
|
|
86
|
-
async
|
|
87
|
-
|
|
120
|
+
async recurseDeleteChildren(stylesheetFolder) {
|
|
121
|
+
if (!stylesheetFolder.hasChildren) {
|
|
122
|
+
return await this.deleteFolder(stylesheetFolder.path);
|
|
123
|
+
}
|
|
124
|
+
const items = await this.getChildren(stylesheetFolder.path);
|
|
125
|
+
for (const child of items) {
|
|
126
|
+
if (child.hasChildren) {
|
|
127
|
+
await this.recurseDeleteChildren(child);
|
|
128
|
+
}
|
|
129
|
+
else if (child.isFolder) {
|
|
130
|
+
await this.deleteFolder(child.path);
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
await this.delete(child.path);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
return await this.deleteFolder(stylesheetFolder.path);
|
|
88
137
|
}
|
|
89
138
|
// Folder
|
|
90
139
|
async getFolder(path) {
|
|
91
|
-
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder
|
|
92
|
-
|
|
93
|
-
if (json !== null) {
|
|
94
|
-
return json;
|
|
95
|
-
}
|
|
96
|
-
return null;
|
|
140
|
+
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder/' + encodeURIComponent(path));
|
|
141
|
+
return await response.json();
|
|
97
142
|
}
|
|
98
|
-
async
|
|
99
|
-
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder
|
|
143
|
+
async doesFolderExist(path) {
|
|
144
|
+
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder/' + encodeURIComponent(path));
|
|
100
145
|
return response.status() === 200;
|
|
101
146
|
}
|
|
102
|
-
async
|
|
103
|
-
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/stylesheet/children?path=' + path + '&skip=0&take=10000');
|
|
104
|
-
const json = await response.json();
|
|
105
|
-
if (json !== null) {
|
|
106
|
-
return json;
|
|
107
|
-
}
|
|
108
|
-
return null;
|
|
109
|
-
}
|
|
110
|
-
async createFolder(name, parentPath = "") {
|
|
147
|
+
async createFolder(name, parentPath = "/") {
|
|
111
148
|
const stylesheetFolderData = {
|
|
112
149
|
"name": name,
|
|
113
|
-
"
|
|
150
|
+
"parent": {
|
|
151
|
+
"path": parentPath
|
|
152
|
+
}
|
|
114
153
|
};
|
|
115
154
|
const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder', stylesheetFolderData);
|
|
116
|
-
// Returns the
|
|
117
|
-
const
|
|
118
|
-
|
|
155
|
+
// Returns the path of the created Stylesheet folder
|
|
156
|
+
const path = response.headers().location.split("/v1/stylesheet/folder/").pop();
|
|
157
|
+
if (path !== undefined) {
|
|
158
|
+
return decodeURIComponent(path);
|
|
159
|
+
}
|
|
160
|
+
return undefined;
|
|
119
161
|
}
|
|
120
162
|
async deleteFolder(path) {
|
|
121
|
-
return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder
|
|
122
|
-
}
|
|
123
|
-
async
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
for (const child of itemsJson.items) {
|
|
127
|
-
if (child.path !== null) {
|
|
128
|
-
if (child.isFolder == true) {
|
|
129
|
-
if (child.hasChildren == true) {
|
|
130
|
-
await this.recurseFolderChildren(child.path);
|
|
131
|
-
}
|
|
132
|
-
else {
|
|
133
|
-
await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder?path=' + child.path);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
else {
|
|
137
|
-
await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/?path=' + child.path);
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder?path=' + path);
|
|
163
|
+
return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder/' + encodeURIComponent(path));
|
|
164
|
+
}
|
|
165
|
+
async createDefaultStylesheet(name) {
|
|
166
|
+
await this.ensureNameNotExists(name);
|
|
167
|
+
return await this.create(name, "/*\n");
|
|
142
168
|
}
|
|
143
169
|
}
|
|
144
170
|
exports.StylesheetApiHelper = StylesheetApiHelper;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StylesheetApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/StylesheetApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\n\nexport class StylesheetApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async ensureNameNotExistsAtRoot(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/stylesheet/root?skip=0&take=10000');\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.isFolder == false) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet?path=' + sb.path);\n } else {\n if (sb.hasChildren == true) {\n return await this.recurseFolderChildren(sb.path);\n } else {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder?path=' + sb.path);\n }\n }\n }\n }\n return null;\n }\n\n async nameExistsAtRoot(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/stylesheet/root?skip=0&take=10000');\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n return true;\n }\n }\n return false;\n }\n\n async exists(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet?path=' + path);\n return response.status() === 200;\n }\n\n async get(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet?path=' + path);\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async getByNameAtRoot(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/stylesheet/root?skip=0&take=10000');\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.isFolder === false) {\n const stylesheet = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet?path=' + sb.path);\n return await stylesheet.json();\n } else {\n const stylesheetFolder = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder?path=' + sb.path);\n return await stylesheetFolder.json();\n }\n }\n }\n return null;\n }\n\n async create(name: string, content: string, parentPath: string = \"\") {\n const stylesheetData = {\n \"name\": name,\n \"content\": content,\n \"parentPath\": parentPath\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet', stylesheetData);\n // Returns the path of the created stylesheet\n return response.headers().location.split(\"=\").pop();\n }\n\n async update(stylesheet) {\n const stylesheetData = {\n \"name\": stylesheet.name,\n \"content\": stylesheet.content,\n \"existingPath\": stylesheet.path\n };\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet', stylesheetData);\n }\n\n async delete(path: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet?path=' + path);\n }\n\n // Folder\n async getFolder(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder?path=' + path);\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async folderExists(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder?path=' + path);\n return response.status() === 200;\n }\n\n\n async getFolderChildren(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/stylesheet/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\n async createFolder(name: string, parentPath = \"\") {\n const stylesheetFolderData =\n {\n \"name\": name,\n \"parentPath\": parentPath\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder', stylesheetFolderData);\n // Returns the id of the created stylesheetFolder\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/stylesheet/folder?path=' + path);\n }\n\n async recurseFolderChildren(path: string) {\n const parentStylesheet = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/stylesheet/children?path=' + path + '&skip=0&take=10000');\n const itemsJson = await parentStylesheet.json();\n\n for (const child of itemsJson.items) {\n if (child.path !== null) {\n if (child.isFolder == true) {\n if (child.hasChildren == true) {\n await this.recurseFolderChildren(child.path);\n } else {\n await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder?path=' + child.path);\n }\n } else {\n await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/?path=' + child.path);\n }\n }\n }\n await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder?path=' + path);\n }\n}"]}
|
|
1
|
+
{"version":3,"file":"StylesheetApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/StylesheetApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\n\nexport class StylesheetApiHelper {\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/stylesheet/' + 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/stylesheet/' + encodeURIComponent(path));\n return response.status() === 200;\n }\n\n async create(name: string, content: string, parentPath: string = \"/\") {\n const stylesheetData = {\n \"name\": name,\n \"parent\": {\n \"path\": parentPath\n },\n \"content\": content\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet', stylesheetData);\n // Returns the path of the created stylesheet\n const path = response.headers().location.split(\"/v1/stylesheet/\").pop() as string;\n return decodeURIComponent(path);\n }\n\n async updateName(path: string, newName: string) {\n const stylesheetData = {\n \"name\": newName\n };\n const response = await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/' + encodeURIComponent(path) + '/rename', stylesheetData);\n // Returns the path of the created Stylesheet\n const newPath = response.headers().location.split(\"/v1/stylesheet/\").pop();\n if (newPath !== undefined) {\n return decodeURIComponent(newPath);\n }\n return undefined;\n }\n\n async updateContent(path: string, newContent: string) {\n const stylesheetData = {\n \"content\": newContent\n };\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/' + encodeURIComponent(path), stylesheetData);\n }\n\n async delete(path: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/' + encodeURIComponent(path));\n }\n\n async getChildren(path: string) {\n const response = await this.api.get(`${this.api.baseUrl}/umbraco/management/api/v1/tree/stylesheet/children?parentPath=${path}&skip=0&take=10000`);\n const items = await response.json();\n return items.items;\n }\n\n async doesNameExist(name: string) {\n return await this.getByName(name);\n }\n\n async getAllAtRoot() {\n return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/stylesheet/root?skip=0&take=10000');\n }\n\n async getByName(name: string) {\n const rootStylesheet = await this.getAllAtRoot();\n const jsonStylesheet = await rootStylesheet.json();\n\n for (const stylesheet of jsonStylesheet.items) {\n if (stylesheet.name === name) {\n if (stylesheet.isFolder) {\n return this.getFolder(stylesheet.path);\n } else {\n return this.get(stylesheet.path);\n }\n } else if (stylesheet.isFolder && stylesheet.hasChildren) {\n const result = await this.recurseChildren(name, stylesheet.path, false);\n if (result) {\n return result;\n }\n }\n }\n return false;\n }\n\n async ensureNameNotExists(name: string) {\n const rootStylesheet = await this.getAllAtRoot();\n const jsonStylesheet = await rootStylesheet.json();\n\n for (const stylesheet of jsonStylesheet.items) {\n if (stylesheet.name === name) {\n if (stylesheet.isFolder) {\n return await this.recurseDeleteChildren(stylesheet);\n }\n return await this.delete(stylesheet.path);\n } else if (stylesheet.hasChildren) {\n await this.recurseChildren(name, stylesheet.path, true);\n\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\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(stylesheetFolder) {\n if (!stylesheetFolder.hasChildren) {\n return await this.deleteFolder(stylesheetFolder.path);\n }\n const items = await this.getChildren(stylesheetFolder.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(stylesheetFolder.path);\n }\n\n // Folder\n async getFolder(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/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/stylesheet/folder/' + encodeURIComponent(path));\n return response.status() === 200;\n }\n\n async createFolder(name: string, parentPath = \"/\") {\n const stylesheetFolderData =\n {\n \"name\": name,\n \"parent\":\n {\n \"path\": parentPath\n }\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder', stylesheetFolderData);\n // Returns the path of the created Stylesheet folder\n const path = response.headers().location.split(\"/v1/stylesheet/folder/\").pop();\n\n if (path !== undefined) {\n return decodeURIComponent(path);\n }\n return undefined;\n }\n\n async deleteFolder(path: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder/' + encodeURIComponent(path));\n }\n\n async createDefaultStylesheet(name: string) {\n await this.ensureNameNotExists(name);\n return await this.create(name, \"/*\\n\");\n }\n}"]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Page } from "@playwright/test";
|
|
2
|
+
import { UiBaseLocators } from "./UiBaseLocators";
|
|
3
|
+
export declare class StylesheetUiHelper extends UiBaseLocators {
|
|
4
|
+
private readonly newStylesheetBtn;
|
|
5
|
+
private readonly stylesheetNameTxt;
|
|
6
|
+
private readonly addRTEBtn;
|
|
7
|
+
private readonly styleNameTxt;
|
|
8
|
+
private readonly styleSelectorTxt;
|
|
9
|
+
private readonly styleStylesTxt;
|
|
10
|
+
private readonly newRichTextEditorStylesheetBtn;
|
|
11
|
+
private readonly stylesheetTree;
|
|
12
|
+
constructor(page: Page);
|
|
13
|
+
clickActionsMenuForStylesheet(name: string): Promise<void>;
|
|
14
|
+
clickActionsMenuAtRoot(): Promise<void>;
|
|
15
|
+
clickRootFolderCaretButton(): Promise<void>;
|
|
16
|
+
clickNewStylesheetButton(): Promise<void>;
|
|
17
|
+
clickNewRichTextEditorStylesheetButton(): Promise<void>;
|
|
18
|
+
enterStylesheetName(stylesheetName: string): Promise<void>;
|
|
19
|
+
enterStylesheetContent(stylesheetContent: string): Promise<void>;
|
|
20
|
+
addRTEStyle(styleName: string, styleSelector: string, styleStyles: string): Promise<void>;
|
|
21
|
+
openStylesheetByNameAtRoot(stylesheetName: string): Promise<void>;
|
|
22
|
+
editRTEStyle(styleName: string, newStyleName: string, newStyleSelector: string, newStyleStyles: string): Promise<void>;
|
|
23
|
+
fillRTEStyleForm(styleName: string, styleSelector: string, styleStyles: string): Promise<void>;
|
|
24
|
+
removeRTEStyle(styleName: string): Promise<void>;
|
|
25
|
+
reloadStylesheetTree(): Promise<void>;
|
|
26
|
+
isStylesheetRootTreeItemVisible(stylesheetName: string, isVisible?: boolean): Promise<void>;
|
|
27
|
+
goToStylesheet(stylesheetName: string): Promise<void>;
|
|
28
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StylesheetUiHelper = void 0;
|
|
4
|
+
const test_1 = require("@playwright/test");
|
|
5
|
+
const UiBaseLocators_1 = require("./UiBaseLocators");
|
|
6
|
+
const ConstantHelper_1 = require("./ConstantHelper");
|
|
7
|
+
class StylesheetUiHelper extends UiBaseLocators_1.UiBaseLocators {
|
|
8
|
+
newStylesheetBtn;
|
|
9
|
+
stylesheetNameTxt;
|
|
10
|
+
addRTEBtn;
|
|
11
|
+
styleNameTxt;
|
|
12
|
+
styleSelectorTxt;
|
|
13
|
+
styleStylesTxt;
|
|
14
|
+
newRichTextEditorStylesheetBtn;
|
|
15
|
+
stylesheetTree;
|
|
16
|
+
constructor(page) {
|
|
17
|
+
super(page);
|
|
18
|
+
this.stylesheetNameTxt = page.getByLabel('stylesheet name');
|
|
19
|
+
this.addRTEBtn = page.getByLabel('Add rule');
|
|
20
|
+
this.styleNameTxt = page.getByLabel('Rule name');
|
|
21
|
+
this.styleSelectorTxt = page.getByLabel('Rule selector');
|
|
22
|
+
this.styleStylesTxt = page.getByLabel('Rule styles');
|
|
23
|
+
this.newStylesheetBtn = page.getByLabel('New Stylesheet');
|
|
24
|
+
this.newRichTextEditorStylesheetBtn = page.getByLabel('New Rich Text Editor Stylesheet');
|
|
25
|
+
this.stylesheetTree = page.locator('umb-tree[alias="Umb.Tree.Stylesheet"]');
|
|
26
|
+
}
|
|
27
|
+
async clickActionsMenuForStylesheet(name) {
|
|
28
|
+
await this.clickActionsMenuForName(name);
|
|
29
|
+
}
|
|
30
|
+
async clickActionsMenuAtRoot() {
|
|
31
|
+
await this.clickActionsMenuForStylesheet('Stylesheets');
|
|
32
|
+
}
|
|
33
|
+
async clickRootFolderCaretButton() {
|
|
34
|
+
await this.clickCaretButtonForName('Stylesheets');
|
|
35
|
+
}
|
|
36
|
+
async clickNewStylesheetButton() {
|
|
37
|
+
await this.newStylesheetBtn.click();
|
|
38
|
+
}
|
|
39
|
+
async clickNewRichTextEditorStylesheetButton() {
|
|
40
|
+
await this.newRichTextEditorStylesheetBtn.click();
|
|
41
|
+
}
|
|
42
|
+
async enterStylesheetName(stylesheetName) {
|
|
43
|
+
await (0, test_1.expect)(this.stylesheetNameTxt).toBeVisible();
|
|
44
|
+
await this.stylesheetNameTxt.clear();
|
|
45
|
+
await this.stylesheetNameTxt.fill(stylesheetName);
|
|
46
|
+
}
|
|
47
|
+
async enterStylesheetContent(stylesheetContent) {
|
|
48
|
+
await this.textAreaInputArea.clear();
|
|
49
|
+
await this.textAreaInputArea.fill(stylesheetContent);
|
|
50
|
+
}
|
|
51
|
+
async addRTEStyle(styleName, styleSelector, styleStyles) {
|
|
52
|
+
await this.addRTEBtn.click();
|
|
53
|
+
await this.fillRTEStyleForm(styleName, styleSelector, styleStyles);
|
|
54
|
+
}
|
|
55
|
+
async openStylesheetByNameAtRoot(stylesheetName) {
|
|
56
|
+
await this.reloadStylesheetTree();
|
|
57
|
+
await this.page.getByLabel(stylesheetName).click();
|
|
58
|
+
}
|
|
59
|
+
async editRTEStyle(styleName, newStyleName, newStyleSelector, newStyleStyles) {
|
|
60
|
+
await this.page.locator('umb-stylesheet-rule-ref[name="' + styleName + '"] [label="Edit ' + styleName + '"]').click();
|
|
61
|
+
await this.fillRTEStyleForm(newStyleName, newStyleSelector, newStyleStyles);
|
|
62
|
+
}
|
|
63
|
+
async fillRTEStyleForm(styleName, styleSelector, styleStyles) {
|
|
64
|
+
await (0, test_1.expect)(this.styleNameTxt).toBeVisible();
|
|
65
|
+
await this.styleNameTxt.clear();
|
|
66
|
+
await this.styleNameTxt.fill(styleName);
|
|
67
|
+
await this.styleSelectorTxt.clear();
|
|
68
|
+
await this.styleSelectorTxt.fill(styleSelector);
|
|
69
|
+
await this.styleStylesTxt.clear();
|
|
70
|
+
await this.styleStylesTxt.fill(styleStyles);
|
|
71
|
+
await this.clickSubmitButton();
|
|
72
|
+
}
|
|
73
|
+
async removeRTEStyle(styleName) {
|
|
74
|
+
await this.page.locator('umb-stylesheet-rule-ref[name="' + styleName + '"] [label="Remove ' + styleName + '"]').click();
|
|
75
|
+
}
|
|
76
|
+
async reloadStylesheetTree() {
|
|
77
|
+
await this.reloadTree('Stylesheets');
|
|
78
|
+
}
|
|
79
|
+
async isStylesheetRootTreeItemVisible(stylesheetName, isVisible = true) {
|
|
80
|
+
await this.reloadStylesheetTree();
|
|
81
|
+
return (0, test_1.expect)(this.stylesheetTree.getByText(stylesheetName, { exact: true })).toBeVisible({ visible: isVisible });
|
|
82
|
+
}
|
|
83
|
+
async goToStylesheet(stylesheetName) {
|
|
84
|
+
await this.goToSection(ConstantHelper_1.ConstantHelper.sections.settings);
|
|
85
|
+
await this.reloadStylesheetTree();
|
|
86
|
+
await this.page.getByLabel(stylesheetName).click({ force: true });
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
exports.StylesheetUiHelper = StylesheetUiHelper;
|
|
90
|
+
//# sourceMappingURL=StylesheetUiHelper.js.map
|
|
@@ -0,0 +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 addRTEBtn: Locator;\n private readonly styleNameTxt: Locator;\n private readonly styleSelectorTxt: Locator;\n private readonly styleStylesTxt: Locator;\n private readonly newRichTextEditorStylesheetBtn: Locator;\n private readonly stylesheetTree: Locator;\n\n constructor(page: Page) {\n super(page);\n this.stylesheetNameTxt = page.getByLabel('stylesheet name');\n this.addRTEBtn = page.getByLabel('Add rule');\n this.styleNameTxt = page.getByLabel('Rule name');\n this.styleSelectorTxt = page.getByLabel('Rule selector');\n this.styleStylesTxt = page.getByLabel('Rule styles');\n this.newStylesheetBtn = page.getByLabel('New Stylesheet');\n this.newRichTextEditorStylesheetBtn = page.getByLabel('New Rich Text Editor 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 clickActionsMenuAtRoot() {\n await this.clickActionsMenuForStylesheet('Stylesheets');\n }\n\n async clickRootFolderCaretButton() {\n await this.clickCaretButtonForName('Stylesheets');\n }\n\n async clickNewStylesheetButton() {\n await this.newStylesheetBtn.click();\n }\n \n async clickNewRichTextEditorStylesheetButton() {\n await this.newRichTextEditorStylesheetBtn.click();\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.textAreaInputArea.clear();\n await this.textAreaInputArea.fill(stylesheetContent);\n }\n\n async addRTEStyle(styleName: string, styleSelector: string, styleStyles: string) {\n await this.addRTEBtn.click();\n await this.fillRTEStyleForm(styleName, styleSelector, styleStyles);\n }\n\n async openStylesheetByNameAtRoot(stylesheetName: string) {\n await this.reloadStylesheetTree();\n await this.page.getByLabel(stylesheetName).click();\n }\n\n async editRTEStyle(styleName: string, newStyleName: string, newStyleSelector: string, newStyleStyles: string) {\n await this.page.locator('umb-stylesheet-rule-ref[name=\"' + styleName + '\"] [label=\"Edit ' + styleName + '\"]').click();\n await this.fillRTEStyleForm(newStyleName, newStyleSelector, newStyleStyles);\n }\n\n async fillRTEStyleForm(styleName: string, styleSelector: string, styleStyles: string) {\n await expect(this.styleNameTxt).toBeVisible();\n await this.styleNameTxt.clear();\n await this.styleNameTxt.fill(styleName);\n await this.styleSelectorTxt.clear();\n await this.styleSelectorTxt.fill(styleSelector);\n await this.styleStylesTxt.clear();\n await this.styleStylesTxt.fill(styleStyles);\n await this.clickSubmitButton();\n }\n\n async removeRTEStyle(styleName: string) {\n await this.page.locator('umb-stylesheet-rule-ref[name=\"' + styleName + '\"] [label=\"Remove ' + styleName + '\"]').click();\n }\n\n async reloadStylesheetTree() {\n await this.reloadTree('Stylesheets');\n }\n\n async isStylesheetRootTreeItemVisible(stylesheetName: string, isVisible: boolean = true){\n await this.reloadStylesheetTree();\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).click({force: true});\n }\n}"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Page } from "@playwright/test";
|
|
2
|
+
import { UiBaseLocators } from "./UiBaseLocators";
|
|
3
|
+
export declare class TelemetryDataUiHelper extends UiBaseLocators {
|
|
4
|
+
private readonly telemetryDataTab;
|
|
5
|
+
private readonly telemetryDataLevelSlider;
|
|
6
|
+
constructor(page: Page);
|
|
7
|
+
clickTelemetryDataTab(): Promise<void>;
|
|
8
|
+
changeTelemetryDataLevelValue(value: string): Promise<void>;
|
|
9
|
+
doesTelemetryDataLevelHaveValue(value: string): Promise<void>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TelemetryDataUiHelper = void 0;
|
|
4
|
+
const test_1 = require("@playwright/test");
|
|
5
|
+
const UiBaseLocators_1 = require("./UiBaseLocators");
|
|
6
|
+
class TelemetryDataUiHelper extends UiBaseLocators_1.UiBaseLocators {
|
|
7
|
+
telemetryDataTab;
|
|
8
|
+
telemetryDataLevelSlider;
|
|
9
|
+
constructor(page) {
|
|
10
|
+
super(page);
|
|
11
|
+
this.telemetryDataTab = page.getByRole('tab', { name: 'Telemetry Data' });
|
|
12
|
+
this.telemetryDataLevelSlider = page.locator('[name="telemetryLevel"] >> input[id=input]');
|
|
13
|
+
}
|
|
14
|
+
async clickTelemetryDataTab() {
|
|
15
|
+
await this.telemetryDataTab.click();
|
|
16
|
+
}
|
|
17
|
+
async changeTelemetryDataLevelValue(value) {
|
|
18
|
+
await this.telemetryDataLevelSlider.fill(value);
|
|
19
|
+
}
|
|
20
|
+
async doesTelemetryDataLevelHaveValue(value) {
|
|
21
|
+
return await (0, test_1.expect)(this.telemetryDataLevelSlider).toHaveValue(value);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.TelemetryDataUiHelper = TelemetryDataUiHelper;
|
|
25
|
+
//# sourceMappingURL=TelemetryDataUiHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TelemetryDataUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/TelemetryDataUiHelper.ts"],"names":[],"mappings":";;;AAAA,2CAAuD;AACvD,qDAAgD;AAEhD,MAAa,qBAAsB,SAAQ,+BAAc;IACtC,gBAAgB,CAAU;IAC1B,wBAAwB,CAAU;IAEnD,YAAY,IAAU;QACpB,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,EAAC,IAAI,EAAE,gBAAgB,EAAC,CAAC,CAAC;QACxE,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC;IAC7F,CAAC;IAED,KAAK,CAAC,qBAAqB;QACzB,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,6BAA6B,CAAC,KAAa;QAC/C,MAAM,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,+BAA+B,CAAC,KAAa;QACjD,OAAO,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACxE,CAAC;CACF;AArBD,sDAqBC","sourcesContent":["import {Page, Locator, expect} from \"@playwright/test\";\nimport {UiBaseLocators} from \"./UiBaseLocators\";\n\nexport class TelemetryDataUiHelper extends UiBaseLocators {\n private readonly telemetryDataTab: Locator;\n private readonly telemetryDataLevelSlider: Locator;\n\n constructor(page: Page) {\n super(page);\n this.telemetryDataTab = page.getByRole('tab', {name: 'Telemetry Data'});\n this.telemetryDataLevelSlider = page.locator('[name=\"telemetryLevel\"] >> input[id=input]');\n }\n\n async clickTelemetryDataTab() {\n await this.telemetryDataTab.click();\n }\n\n async changeTelemetryDataLevelValue(value: string) {\n await this.telemetryDataLevelSlider.fill(value);\n }\n\n async doesTelemetryDataLevelHaveValue(value: string) {\n return await expect(this.telemetryDataLevelSlider).toHaveValue(value);\n }\n}\n"]}
|