@umbraco/playwright-testhelpers 2.0.0-beta.32 → 2.0.0-beta.33
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/DocumentApiHelper.d.ts +15 -0
- package/dist/lib/helpers/DocumentApiHelper.js +143 -1
- package/dist/lib/helpers/DocumentApiHelper.js.map +1 -1
- package/dist/lib/helpers/DocumentTypeApiHelper.js +4 -0
- package/dist/lib/helpers/DocumentTypeApiHelper.js.map +1 -1
- package/dist/lib/helpers/PartialViewUiHelper.d.ts +2 -3
- package/dist/lib/helpers/PartialViewUiHelper.js +5 -9
- package/dist/lib/helpers/PartialViewUiHelper.js.map +1 -1
- package/dist/lib/helpers/ScriptUiHelper.d.ts +3 -2
- package/dist/lib/helpers/ScriptUiHelper.js +10 -8
- package/dist/lib/helpers/ScriptUiHelper.js.map +1 -1
- package/dist/lib/helpers/StylesheetApiHelper.d.ts +0 -1
- package/dist/lib/helpers/StylesheetApiHelper.js +0 -10
- package/dist/lib/helpers/StylesheetApiHelper.js.map +1 -1
- package/dist/lib/helpers/StylesheetUiHelper.d.ts +10 -6
- package/dist/lib/helpers/StylesheetUiHelper.js +34 -22
- package/dist/lib/helpers/StylesheetUiHelper.js.map +1 -1
- package/dist/lib/helpers/TemplateApiHelper.js +1 -1
- package/dist/lib/helpers/TemplateApiHelper.js.map +1 -1
- package/dist/lib/helpers/TemplateUiHelper.d.ts +9 -7
- package/dist/lib/helpers/TemplateUiHelper.js +41 -25
- package/dist/lib/helpers/TemplateUiHelper.js.map +1 -1
- package/dist/lib/helpers/UiBaseLocators.d.ts +21 -5
- package/dist/lib/helpers/UiBaseLocators.js +91 -28
- package/dist/lib/helpers/UiBaseLocators.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -6,29 +6,31 @@ const UiBaseLocators_1 = require("./UiBaseLocators");
|
|
|
6
6
|
class StylesheetUiHelper extends UiBaseLocators_1.UiBaseLocators {
|
|
7
7
|
newStylesheetBtn;
|
|
8
8
|
stylesheetNameTxt;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
addRTEBtn;
|
|
10
|
+
styleNameTxt;
|
|
11
|
+
styleSelectorTxt;
|
|
12
|
+
styleStylesTxt;
|
|
13
13
|
newRichTextEditorStylesheetBtn;
|
|
14
|
+
stylesheetTree;
|
|
14
15
|
constructor(page) {
|
|
15
16
|
super(page);
|
|
16
17
|
this.stylesheetNameTxt = page.getByLabel('stylesheet name');
|
|
17
|
-
this.
|
|
18
|
-
this.
|
|
19
|
-
this.
|
|
20
|
-
this.
|
|
18
|
+
this.addRTEBtn = page.getByLabel('Add rule');
|
|
19
|
+
this.styleNameTxt = page.getByLabel('Rule name');
|
|
20
|
+
this.styleSelectorTxt = page.getByLabel('Rule selector');
|
|
21
|
+
this.styleStylesTxt = page.getByLabel('Rule styles');
|
|
21
22
|
this.newStylesheetBtn = page.getByLabel('New Stylesheet');
|
|
22
23
|
this.newRichTextEditorStylesheetBtn = page.getByLabel('New Rich Text Editor Stylesheet');
|
|
24
|
+
this.stylesheetTree = page.locator('umb-tree[alias="Umb.Tree.Stylesheet"]');
|
|
23
25
|
}
|
|
24
26
|
async clickActionsMenuForStylesheet(name) {
|
|
25
27
|
await this.clickActionsMenuForName(name);
|
|
26
28
|
}
|
|
27
29
|
async clickActionsMenuAtRoot() {
|
|
28
|
-
await this.clickActionsMenuForStylesheet(
|
|
30
|
+
await this.clickActionsMenuForStylesheet('Stylesheets');
|
|
29
31
|
}
|
|
30
32
|
async clickRootFolderCaretButton() {
|
|
31
|
-
await this.clickCaretButtonForName(
|
|
33
|
+
await this.clickCaretButtonForName('Stylesheets');
|
|
32
34
|
}
|
|
33
35
|
async clickNewStylesheetButton() {
|
|
34
36
|
await this.newStylesheetBtn.click();
|
|
@@ -45,23 +47,33 @@ class StylesheetUiHelper extends UiBaseLocators_1.UiBaseLocators {
|
|
|
45
47
|
await this.textAreaInputArea.clear();
|
|
46
48
|
await this.textAreaInputArea.fill(stylesheetContent);
|
|
47
49
|
}
|
|
48
|
-
async
|
|
49
|
-
await this.
|
|
50
|
-
await this.
|
|
51
|
-
await this.ruleNameTxt.fill(ruleName);
|
|
52
|
-
await this.ruleSelectorTxt.clear();
|
|
53
|
-
await this.ruleSelectorTxt.fill(ruleSelector);
|
|
54
|
-
await this.ruleStylesTxt.clear();
|
|
55
|
-
await this.ruleStylesTxt.fill(ruleStyles);
|
|
56
|
-
await this.clickSubmitButton();
|
|
50
|
+
async addRTEStyle(styleName, styleSelector, styleStyles) {
|
|
51
|
+
await this.addRTEBtn.click();
|
|
52
|
+
await this.fillRTEStyleForm(styleName, styleSelector, styleStyles);
|
|
57
53
|
}
|
|
58
54
|
async openStylesheetByNameAtRoot(stylesheetName) {
|
|
59
55
|
await this.clickRootFolderCaretButton();
|
|
60
56
|
await this.page.getByLabel(stylesheetName).click();
|
|
61
57
|
}
|
|
62
|
-
async
|
|
63
|
-
await this.
|
|
64
|
-
await this.
|
|
58
|
+
async editRTEStyle(styleName, newStyleName, newStyleSelector, newStyleStyles) {
|
|
59
|
+
await this.page.locator('umb-stylesheet-rule-ref[name="' + styleName + '"] [label="Edit ' + styleName + '"]').click();
|
|
60
|
+
await this.fillRTEStyleForm(newStyleName, newStyleSelector, newStyleStyles);
|
|
61
|
+
}
|
|
62
|
+
async fillRTEStyleForm(styleName, styleSelector, styleStyles) {
|
|
63
|
+
await (0, test_1.expect)(this.styleNameTxt).toBeVisible();
|
|
64
|
+
await this.styleNameTxt.clear();
|
|
65
|
+
await this.styleNameTxt.fill(styleName);
|
|
66
|
+
await this.styleSelectorTxt.clear();
|
|
67
|
+
await this.styleSelectorTxt.fill(styleSelector);
|
|
68
|
+
await this.styleStylesTxt.clear();
|
|
69
|
+
await this.styleStylesTxt.fill(styleStyles);
|
|
70
|
+
await this.clickSubmitButton();
|
|
71
|
+
}
|
|
72
|
+
async removeRTEStyle(styleName) {
|
|
73
|
+
await this.page.locator('umb-stylesheet-rule-ref[name="' + styleName + '"] [label="Remove ' + styleName + '"]').click();
|
|
74
|
+
}
|
|
75
|
+
async isStylesheetTreeItemVisibile(stylesheetName, isVisible = true) {
|
|
76
|
+
return (0, test_1.expect)(this.stylesheetTree.getByText(stylesheetName)).toBeVisible({ visible: isVisible });
|
|
65
77
|
}
|
|
66
78
|
}
|
|
67
79
|
exports.StylesheetUiHelper = StylesheetUiHelper;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StylesheetUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/StylesheetUiHelper.ts"],"names":[],"mappings":";;;AAAA,2CAAsD;AACtD,qDAAgD;AAEhD,MAAa,kBAAmB,SAAQ,+BAAc;IACnC,gBAAgB,CAAU;IAC1B,iBAAiB,CAAU;IAC3B,
|
|
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\";\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.clickRootFolderCaretButton();\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 isStylesheetTreeItemVisibile(stylesheetName: string, isVisible: boolean = true){\n return expect(this.stylesheetTree.getByText(stylesheetName)).toBeVisible({visible: isVisible});\n }\n}"]}
|
|
@@ -127,7 +127,7 @@ class TemplateApiHelper {
|
|
|
127
127
|
async createDefaultTemplate(name) {
|
|
128
128
|
await this.ensureNameNotExists(name);
|
|
129
129
|
const alias = AliasHelper_1.AliasHelper.toAlias(name);
|
|
130
|
-
return await this.create(name, alias,
|
|
130
|
+
return await this.create(name, alias, '');
|
|
131
131
|
}
|
|
132
132
|
}
|
|
133
133
|
exports.TemplateApiHelper = TemplateApiHelper;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TemplateApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/TemplateApiHelper.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"TemplateApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/TemplateApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\nimport {AliasHelper} from \"./AliasHelper\";\n\nexport class TemplateApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async get(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/template/' + id);\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async doesExist(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/template/' + id);\n return response.status() === 200;\n }\n\n async create(name: string, alias: string, content: string) {\n const templateData = {\n \"name\": name,\n \"alias\": alias,\n \"content\": content\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/template', templateData);\n // Returns the id of the created template\n return response.headers().location.split(\"/\").pop();\n }\n\n async delete(id: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/template/' + id);\n }\n\n async update(id: string, template: object) {\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/template/' + id, template);\n }\n\n async getChildren(id: string) {\n const response = await this.api.get(`${this.api.baseUrl}/umbraco/management/api/v1/tree/template/children?parentId=${id}&skip=0&take=10000`);\n const items = await response.json();\n return items.items;\n }\n\n async getItems(ids: string[]) {\n let idArray = 'id=' + ids[0];\n let i: number;\n\n for (i = 1; i < ids.length; ++i) {\n idArray += '&id=' + ids[i];\n }\n\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/template/item?' + idArray);\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async getAllAtRoot() {\n return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/template/root?skip=0&take=10000');\n }\n\n async doesNameExist(name: string) {\n return await this.getByName(name);\n }\n\n private async recurseDeleteChildren(id: string) {\n const items = await this.getChildren(id);\n\n for (const child of items) {\n if (child.isContainer || child.hasChildren) {\n await this.recurseDeleteChildren(child.id);\n } else {\n await this.delete(child.id);\n }\n }\n return await this.delete(id);\n }\n\n private async recurseChildren(name: string, id: string, toDelete: boolean) {\n const items = await this.getChildren(id);\n\n for (const child of items) {\n if (child.name === name) {\n if (!toDelete) {\n return await this.get(child.id);\n }\n if (child.isContainer || child.hasChildren) {\n return await this.recurseDeleteChildren(child.id);\n } else {\n return await this.delete(child.id);\n }\n } else if (child.isContainer || child.hasChildren) {\n await this.recurseChildren(name, child.id, toDelete);\n }\n }\n return false;\n }\n\n async getByName(name: string) {\n const rootTemplates = await this.getAllAtRoot();\n const jsonTemplates = await rootTemplates.json();\n\n for (const template of jsonTemplates.items) {\n if (template.name === name) {\n return this.get(template.id);\n } else if (template.isContainer || template.hasChildren) {\n const result = await this.recurseChildren(name, template.id, false);\n if (result) {\n return result;\n }\n }\n }\n return false;\n }\n\n async ensureNameNotExists(name: string) {\n const rootTemplates = await this.getAllAtRoot();\n const jsonTemplates = await rootTemplates.json();\n\n for (const template of jsonTemplates.items) {\n if (template.name === name) {\n if (template.isContainer || template.hasChildren) {\n await this.recurseDeleteChildren(template.id);\n }\n await this.delete(template.id);\n } else {\n if (template.isContainer || template.hasChildren) {\n await this.recurseChildren(name, template.id, true);\n }\n }\n }\n }\n\n async createDefaultTemplate(name: string) {\n await this.ensureNameNotExists(name);\n const alias = AliasHelper.toAlias(name);\n return await this.create(name, alias, '');\n }\n}"]}
|
|
@@ -1,21 +1,23 @@
|
|
|
1
1
|
import { Page } from "@playwright/test";
|
|
2
2
|
import { UiBaseLocators } from "./UiBaseLocators";
|
|
3
3
|
export declare class TemplateUiHelper extends UiBaseLocators {
|
|
4
|
-
private readonly
|
|
5
|
-
private readonly insertTemplateName;
|
|
4
|
+
private readonly templateNameTxt;
|
|
6
5
|
private readonly changeMasterTemplateBtn;
|
|
7
6
|
private readonly sectionsBtn;
|
|
7
|
+
private readonly removeMasterTemplateBtn;
|
|
8
|
+
private readonly sectionNameTxt;
|
|
9
|
+
private readonly templateTree;
|
|
8
10
|
constructor(page: Page);
|
|
9
11
|
clickActionsMenuForTemplate(name: string): Promise<void>;
|
|
10
12
|
clickActionsMenuAtRoot(): Promise<void>;
|
|
11
13
|
clickRootFolderCaretButton(): Promise<void>;
|
|
12
|
-
goToTemplate(templateName: string): Promise<void>;
|
|
14
|
+
goToTemplate(templateName: string, childTemplateName?: string): Promise<void>;
|
|
13
15
|
clickSectionsButton(): Promise<void>;
|
|
14
|
-
clickNewTemplateButton(): Promise<void>;
|
|
15
16
|
clickChangeMasterTemplateButton(): Promise<void>;
|
|
16
|
-
enterTemplateName(
|
|
17
|
+
enterTemplateName(templateName: string): Promise<void>;
|
|
17
18
|
enterTemplateContent(templateContent: string): Promise<void>;
|
|
18
|
-
openTemplateAtRoot(templateName: string): Promise<void>;
|
|
19
19
|
isMasterTemplateNameVisible(templateName: string, isVisible?: boolean): Promise<void>;
|
|
20
|
-
|
|
20
|
+
clickRemoveMasterTemplateButton(): Promise<void>;
|
|
21
|
+
insertSection(sectionType: string, sectionName?: string): Promise<void>;
|
|
22
|
+
isTemplateTreeItemVisibile(templateName: string, isVisible?: boolean): Promise<void>;
|
|
21
23
|
}
|
|
@@ -5,61 +5,77 @@ const test_1 = require("@playwright/test");
|
|
|
5
5
|
const UiBaseLocators_1 = require("./UiBaseLocators");
|
|
6
6
|
const ConstantHelper_1 = require("./ConstantHelper");
|
|
7
7
|
class TemplateUiHelper extends UiBaseLocators_1.UiBaseLocators {
|
|
8
|
-
|
|
9
|
-
insertTemplateName;
|
|
8
|
+
templateNameTxt;
|
|
10
9
|
changeMasterTemplateBtn;
|
|
11
10
|
sectionsBtn;
|
|
11
|
+
removeMasterTemplateBtn;
|
|
12
|
+
sectionNameTxt;
|
|
13
|
+
templateTree;
|
|
12
14
|
constructor(page) {
|
|
13
15
|
super(page);
|
|
14
|
-
this.
|
|
15
|
-
this.
|
|
16
|
-
this.changeMasterTemplateBtn = page.getByLabel('Change master template');
|
|
16
|
+
this.templateNameTxt = page.getByLabel('Template', { exact: true });
|
|
17
|
+
this.changeMasterTemplateBtn = page.locator('#master-template-button');
|
|
17
18
|
this.sectionsBtn = page.locator('#sections-button', { hasText: 'Sections' });
|
|
19
|
+
this.removeMasterTemplateBtn = page.locator('[name="icon-delete"] svg');
|
|
20
|
+
this.sectionNameTxt = page.getByLabel('Section Name');
|
|
21
|
+
this.templateTree = page.locator('umb-tree[alias="Umb.Tree.Template"]');
|
|
18
22
|
}
|
|
19
23
|
async clickActionsMenuForTemplate(name) {
|
|
20
24
|
await this.clickActionsMenuForName(name);
|
|
21
25
|
}
|
|
22
26
|
async clickActionsMenuAtRoot() {
|
|
23
|
-
await this.clickActionsMenuForTemplate(
|
|
27
|
+
await this.clickActionsMenuForTemplate('Templates');
|
|
24
28
|
}
|
|
25
29
|
async clickRootFolderCaretButton() {
|
|
26
|
-
await this.clickCaretButtonForName(
|
|
30
|
+
await this.clickCaretButtonForName('Templates');
|
|
27
31
|
}
|
|
28
|
-
|
|
29
|
-
async goToTemplate(templateName) {
|
|
32
|
+
async goToTemplate(templateName, childTemplateName = '') {
|
|
30
33
|
await this.goToSection(ConstantHelper_1.ConstantHelper.sections.settings);
|
|
31
34
|
await this.clickRootFolderCaretButton();
|
|
32
|
-
|
|
35
|
+
if (childTemplateName === '') {
|
|
36
|
+
await this.page.getByLabel(templateName).click();
|
|
37
|
+
await (0, test_1.expect)(this.templateNameTxt).toHaveValue(templateName);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
await this.clickCaretButtonForName(templateName);
|
|
41
|
+
await this.page.getByLabel(childTemplateName).click();
|
|
42
|
+
await (0, test_1.expect)(this.templateNameTxt).toHaveValue(childTemplateName);
|
|
43
|
+
}
|
|
33
44
|
}
|
|
34
45
|
async clickSectionsButton() {
|
|
35
46
|
await (0, test_1.expect)(this.sectionsBtn).toBeVisible();
|
|
36
47
|
await this.sectionsBtn.click();
|
|
37
48
|
}
|
|
38
|
-
async clickNewTemplateButton() {
|
|
39
|
-
await this.newEmptyTemplateBtn.click();
|
|
40
|
-
}
|
|
41
49
|
async clickChangeMasterTemplateButton() {
|
|
42
50
|
await this.changeMasterTemplateBtn.click();
|
|
43
51
|
}
|
|
44
|
-
async enterTemplateName(
|
|
45
|
-
await (0, test_1.expect)(this.
|
|
46
|
-
await this.
|
|
47
|
-
await this.
|
|
52
|
+
async enterTemplateName(templateName) {
|
|
53
|
+
await (0, test_1.expect)(this.templateNameTxt).toBeVisible();
|
|
54
|
+
await this.templateNameTxt.clear();
|
|
55
|
+
await this.templateNameTxt.fill(templateName);
|
|
48
56
|
}
|
|
49
57
|
async enterTemplateContent(templateContent) {
|
|
50
58
|
await this.textAreaInputArea.clear();
|
|
51
59
|
await this.textAreaInputArea.fill(templateContent);
|
|
52
60
|
}
|
|
53
|
-
async openTemplateAtRoot(templateName) {
|
|
54
|
-
await this.clickCaretDictionaryButton();
|
|
55
|
-
await this.page.getByLabel(templateName).click();
|
|
56
|
-
}
|
|
57
61
|
async isMasterTemplateNameVisible(templateName, isVisible = true) {
|
|
58
|
-
|
|
62
|
+
await (0, test_1.expect)(this.page.getByLabel('Master template: ' + templateName)).toBeVisible({ visible: isVisible });
|
|
63
|
+
}
|
|
64
|
+
async clickRemoveMasterTemplateButton() {
|
|
65
|
+
await this.removeMasterTemplateBtn.click();
|
|
66
|
+
}
|
|
67
|
+
async insertSection(sectionType, sectionName = '') {
|
|
68
|
+
await this.clickSectionsButton();
|
|
69
|
+
await (0, test_1.expect)(this.submitBtn).toBeVisible();
|
|
70
|
+
await this.page.locator('[label="' + sectionType + '"]').click();
|
|
71
|
+
if (sectionName !== '') {
|
|
72
|
+
await (0, test_1.expect)(this.sectionNameTxt).toBeVisible();
|
|
73
|
+
await this.sectionNameTxt.fill(sectionName);
|
|
74
|
+
}
|
|
75
|
+
await this.clickSubmitButton();
|
|
59
76
|
}
|
|
60
|
-
async
|
|
61
|
-
|
|
62
|
-
await this.clickConfirmToDeleteButton();
|
|
77
|
+
async isTemplateTreeItemVisibile(templateName, isVisible = true) {
|
|
78
|
+
return (0, test_1.expect)(this.templateTree.getByText(templateName)).toBeVisible({ visible: isVisible });
|
|
63
79
|
}
|
|
64
80
|
}
|
|
65
81
|
exports.TemplateUiHelper = TemplateUiHelper;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TemplateUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/TemplateUiHelper.ts"],"names":[],"mappings":";;;AAAA,2CAAsD;AACtD,qDAAgD;AAChD,qDAAgD;AAEhD,MAAa,gBAAiB,SAAQ,+BAAc;IACjC,
|
|
1
|
+
{"version":3,"file":"TemplateUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/TemplateUiHelper.ts"],"names":[],"mappings":";;;AAAA,2CAAsD;AACtD,qDAAgD;AAChD,qDAAgD;AAEhD,MAAa,gBAAiB,SAAQ,+BAAc;IACjC,eAAe,CAAU;IACzB,uBAAuB,CAAU;IACjC,WAAW,CAAU;IACrB,uBAAuB,CAAU;IACjC,cAAc,CAAU;IACxB,YAAY,CAAU;IAEvC,YAAY,IAAU;QACpB,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;QACvE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAC,OAAO,EAAE,UAAU,EAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;QACxE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QACtD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,2BAA2B,CAAC,IAAY;QAC5C,MAAM,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,sBAAsB;QAC1B,MAAM,IAAI,CAAC,2BAA2B,CAAC,WAAW,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,0BAA0B;QAC9B,MAAM,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,YAAoB,EAAE,oBAA4B,EAAE;QACrE,MAAM,IAAI,CAAC,WAAW,CAAC,+BAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACzD,MAAM,IAAI,CAAC,0BAA0B,EAAE,CAAC;QACxC,IAAI,iBAAiB,KAAK,EAAE,EAAE;YAC5B,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC;YACjD,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;SAC9D;aAAM;YACL,MAAM,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC;YACjD,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,KAAK,EAAE,CAAC;YACtD,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;SACnE;IACH,CAAC;IAED,KAAK,CAAC,mBAAmB;QACvB,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7C,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,+BAA+B;QACnC,MAAM,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,YAAoB;QAC1C,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,eAAe,CAAC,CAAC,WAAW,EAAE,CAAC;QACjD,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QACnC,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,eAAuB;QAChD,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QACrC,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,2BAA2B,CAAC,YAAoB,EAAE,YAAqB,IAAI;QAC/E,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,EAAC,OAAO,EAAE,SAAS,EAAC,CAAC,CAAC;IAC3G,CAAC;IAED,KAAK,CAAC,+BAA+B;QACnC,MAAM,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,WAAmB,EAAE,cAAsB,EAAE;QAC/D,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACjC,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,WAAW,GAAG,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACjE,IAAI,WAAW,KAAK,EAAE,EAAE;YACtB,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC;YAChD,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAC7C;QACD,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,0BAA0B,CAAC,YAAoB,EAAE,YAAqB,IAAI;QAC9E,OAAO,IAAA,aAAM,EAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,EAAC,OAAO,EAAE,SAAS,EAAC,CAAC,CAAC;IAC7F,CAAC;CACF;AArFD,4CAqFC","sourcesContent":["import {Page, Locator, expect} from \"@playwright/test\"\nimport {UiBaseLocators} from \"./UiBaseLocators\";\nimport {ConstantHelper} from \"./ConstantHelper\";\n\nexport class TemplateUiHelper extends UiBaseLocators{\n private readonly templateNameTxt: Locator;\n private readonly changeMasterTemplateBtn: Locator;\n private readonly sectionsBtn: Locator;\n private readonly removeMasterTemplateBtn: Locator;\n private readonly sectionNameTxt: Locator;\n private readonly templateTree: Locator;\n\n constructor(page: Page) {\n super(page);\n this.templateNameTxt = page.getByLabel('Template', { exact: true });\n this.changeMasterTemplateBtn = page.locator('#master-template-button');\n this.sectionsBtn = page.locator('#sections-button', {hasText: 'Sections'});\n this.removeMasterTemplateBtn = page.locator('[name=\"icon-delete\"] svg');\n this.sectionNameTxt = page.getByLabel('Section Name');\n this.templateTree = page.locator('umb-tree[alias=\"Umb.Tree.Template\"]');\n }\n\n async clickActionsMenuForTemplate(name: string) {\n await this.clickActionsMenuForName(name);\n }\n\n async clickActionsMenuAtRoot() {\n await this.clickActionsMenuForTemplate('Templates');\n }\n\n async clickRootFolderCaretButton() {\n await this.clickCaretButtonForName('Templates');\n }\n\n async goToTemplate(templateName: string, childTemplateName: string = '') {\n await this.goToSection(ConstantHelper.sections.settings);\n await this.clickRootFolderCaretButton();\n if (childTemplateName === '') {\n await this.page.getByLabel(templateName).click();\n await expect(this.templateNameTxt).toHaveValue(templateName);\n } else {\n await this.clickCaretButtonForName(templateName);\n await this.page.getByLabel(childTemplateName).click();\n await expect(this.templateNameTxt).toHaveValue(childTemplateName);\n } \n }\n\n async clickSectionsButton() {\n await expect(this.sectionsBtn).toBeVisible();\n await this.sectionsBtn.click();\n }\n\n async clickChangeMasterTemplateButton() {\n await this.changeMasterTemplateBtn.click();\n }\n\n async enterTemplateName(templateName: string) {\n await expect(this.templateNameTxt).toBeVisible();\n await this.templateNameTxt.clear();\n await this.templateNameTxt.fill(templateName);\n }\n\n async enterTemplateContent(templateContent: string) {\n await this.textAreaInputArea.clear();\n await this.textAreaInputArea.fill(templateContent);\n }\n\n async isMasterTemplateNameVisible(templateName: string, isVisible: boolean = true) {\n await expect(this.page.getByLabel('Master template: ' + templateName)).toBeVisible({visible: isVisible});\n }\n\n async clickRemoveMasterTemplateButton() {\n await this.removeMasterTemplateBtn.click();\n }\n\n async insertSection(sectionType: string, sectionName: string = '') {\n await this.clickSectionsButton();\n await expect(this.submitBtn).toBeVisible();\n await this.page.locator('[label=\"' + sectionType + '\"]').click();\n if (sectionName !== '') {\n await expect(this.sectionNameTxt).toBeVisible();\n await this.sectionNameTxt.fill(sectionName);\n }\n await this.clickSubmitButton();\n }\n\n async isTemplateTreeItemVisibile(templateName: string, isVisible: boolean = true){\n return expect(this.templateTree.getByText(templateName)).toBeVisible({visible: isVisible});\n }\n}"]}
|
|
@@ -13,8 +13,7 @@ export declare class UiBaseLocators {
|
|
|
13
13
|
readonly deleteExactBtn: Locator;
|
|
14
14
|
readonly confirmCreateFolderBtn: Locator;
|
|
15
15
|
readonly dictionaryInsertItemBtn: Locator;
|
|
16
|
-
readonly
|
|
17
|
-
readonly insertValueBtn: Locator;
|
|
16
|
+
readonly insertBtn: Locator;
|
|
18
17
|
readonly modalCaretBtn: Locator;
|
|
19
18
|
readonly queryBuilderBtn: Locator;
|
|
20
19
|
readonly queryBuilderOrderedBy: Locator;
|
|
@@ -74,6 +73,17 @@ export declare class UiBaseLocators {
|
|
|
74
73
|
readonly aliasNameTxt: Locator;
|
|
75
74
|
readonly deleteFolderThreeDotsBtn: Locator;
|
|
76
75
|
readonly createLink: Locator;
|
|
76
|
+
readonly insertValueBtn: Locator;
|
|
77
|
+
readonly insertPartialViewBtn: Locator;
|
|
78
|
+
readonly insertDictionaryItemBtn: Locator;
|
|
79
|
+
readonly chooseFieldDropDown: Locator;
|
|
80
|
+
readonly systemFieldsOption: Locator;
|
|
81
|
+
readonly chooseFieldValueDropDown: Locator;
|
|
82
|
+
readonly renameBtn: Locator;
|
|
83
|
+
readonly deleteFolderBtn: Locator;
|
|
84
|
+
readonly returnedItemsCount: Locator;
|
|
85
|
+
readonly chooseRootContentBtn: Locator;
|
|
86
|
+
readonly queryResults: Locator;
|
|
77
87
|
constructor(page: Page);
|
|
78
88
|
clickActionsMenuForName(name: string): Promise<void>;
|
|
79
89
|
clickCaretButtonForName(name: string): Promise<void>;
|
|
@@ -96,8 +106,6 @@ export declare class UiBaseLocators {
|
|
|
96
106
|
clickConfirmButton(): Promise<void>;
|
|
97
107
|
clickBreadcrumbButton(): Promise<void>;
|
|
98
108
|
clickInsertButton(): Promise<void>;
|
|
99
|
-
clickDictionaryInsertItemButton(): Promise<void>;
|
|
100
|
-
clickCaretDictionaryButton(): Promise<void>;
|
|
101
109
|
clickDeleteButton(): Promise<void>;
|
|
102
110
|
clickConfirmToDeleteButton(): Promise<void>;
|
|
103
111
|
clickDeleteFolderButton(): Promise<void>;
|
|
@@ -109,7 +117,7 @@ export declare class UiBaseLocators {
|
|
|
109
117
|
clickConfirmDisableButton(): Promise<void>;
|
|
110
118
|
clickEnableButton(): Promise<void>;
|
|
111
119
|
clickConfirmEnableButton(): Promise<void>;
|
|
112
|
-
|
|
120
|
+
insertDictionaryItem(dictionaryName: string): Promise<void>;
|
|
113
121
|
addQueryBuilderWithOrderByStatement(propertyAlias: string, isAscending: boolean): Promise<void>;
|
|
114
122
|
addQueryBuilderWithWhereStatement(propertyAlias: string, operator: string, constrainValue: string): Promise<void>;
|
|
115
123
|
waitAndSelectQueryBuilderDropDownList(option: string): Promise<void>;
|
|
@@ -161,4 +169,12 @@ export declare class UiBaseLocators {
|
|
|
161
169
|
isSuccessButtonWithTextVisible(text: string): Promise<void>;
|
|
162
170
|
dragAndDrop(dragFromSelector: Locator, dragToSelector: Locator, verticalOffset: number, horizontalOffset: number, steps?: any): Promise<void>;
|
|
163
171
|
clickCreateLink(): Promise<void>;
|
|
172
|
+
insertSystemFieldValue(fieldValue: string): Promise<void>;
|
|
173
|
+
insertPartialView(partialViewName: string): Promise<void>;
|
|
174
|
+
clickRenameButton(): Promise<void>;
|
|
175
|
+
clickDeleteAndConfirmButton(): Promise<void>;
|
|
176
|
+
clickQueryBuilderButton(): Promise<void>;
|
|
177
|
+
chooseRootContentInQueryBuilder(contentName: string): Promise<void>;
|
|
178
|
+
doesReturnedItemsHaveCount(itemCount: number): Promise<void>;
|
|
179
|
+
doesQueryResultHaveContentName(contentName: string): Promise<void>;
|
|
164
180
|
}
|