@umbraco/playwright-testhelpers 2.0.0-beta.7 → 2.0.0-beta.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/lib/helpers/ApiHelpers.js.map +1 -1
  2. package/dist/lib/helpers/ConstantHelper.js.map +1 -1
  3. package/dist/lib/helpers/DataTypeApiHelper.d.ts +2 -2
  4. package/dist/lib/helpers/DataTypeApiHelper.js +3 -3
  5. package/dist/lib/helpers/DataTypeApiHelper.js.map +1 -1
  6. package/dist/lib/helpers/DictionaryApiHelper.d.ts +11 -8
  7. package/dist/lib/helpers/DictionaryApiHelper.js +90 -65
  8. package/dist/lib/helpers/DictionaryApiHelper.js.map +1 -1
  9. package/dist/lib/helpers/DictionaryUiHelper.d.ts +34 -0
  10. package/dist/lib/helpers/DictionaryUiHelper.js +101 -0
  11. package/dist/lib/helpers/DictionaryUiHelper.js.map +1 -0
  12. package/dist/lib/helpers/DocumentApiHelper.js.map +1 -1
  13. package/dist/lib/helpers/LanguageApiHelper.js.map +1 -1
  14. package/dist/lib/helpers/PackageApiHelper.js.map +1 -1
  15. package/dist/lib/helpers/PartialViewApiHelper.d.ts +10 -7
  16. package/dist/lib/helpers/PartialViewApiHelper.js +97 -77
  17. package/dist/lib/helpers/PartialViewApiHelper.js.map +1 -1
  18. package/dist/lib/helpers/PartialViewUiHelper.d.ts +25 -0
  19. package/dist/lib/helpers/PartialViewUiHelper.js +74 -0
  20. package/dist/lib/helpers/PartialViewUiHelper.js.map +1 -0
  21. package/dist/lib/helpers/ScriptApiHelper.js.map +1 -1
  22. package/dist/lib/helpers/ScriptUiHelper.d.ts +22 -0
  23. package/dist/lib/helpers/ScriptUiHelper.js +68 -0
  24. package/dist/lib/helpers/ScriptUiHelper.js.map +1 -0
  25. package/dist/lib/helpers/StylesheetApiHelper.js.map +1 -1
  26. package/dist/lib/helpers/StylesheetUiHelper.d.ts +11 -19
  27. package/dist/lib/helpers/StylesheetUiHelper.js +31 -47
  28. package/dist/lib/helpers/StylesheetUiHelper.js.map +1 -1
  29. package/dist/lib/helpers/TemplateApiHelper.js.map +1 -1
  30. package/dist/lib/helpers/TemplateUiHelper.d.ts +29 -0
  31. package/dist/lib/helpers/TemplateUiHelper.js +87 -0
  32. package/dist/lib/helpers/TemplateUiHelper.js.map +1 -0
  33. package/dist/lib/helpers/UiBaseLocators.d.ts +41 -0
  34. package/dist/lib/helpers/UiBaseLocators.js +117 -0
  35. package/dist/lib/helpers/UiBaseLocators.js.map +1 -0
  36. package/dist/lib/helpers/UiHelpers.d.ts +11 -4
  37. package/dist/lib/helpers/UiHelpers.js +20 -23
  38. package/dist/lib/helpers/UiHelpers.js.map +1 -1
  39. package/dist/lib/helpers/testExtension.js.map +1 -1
  40. package/dist/tsconfig.tsbuildinfo +1 -1
  41. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScriptUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/ScriptUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {Page, Locator} from \"@playwright/test\"\nimport {UiBaseLocators} from \"./UiBaseLocators\";\nimport {ConstantHelper} from \"./ConstantHelper\";\n\nexport class ScriptUiHelper {\n private readonly page: Page;\n private readonly uiBaseLocators: UiBaseLocators;\n private readonly newEmptyScriptBtn: Locator;\n private readonly insertScriptName: Locator;\n private readonly insertFolderName: Locator;\n\n constructor(page: Page) {\n this.page = page;\n this.uiBaseLocators = new UiBaseLocators(this.page);\n this.newEmptyScriptBtn = page.getByLabel('New empty script');\n this.insertScriptName = page.getByLabel('template name');\n this.insertFolderName = page.locator('[headline=\"Create Folder\"] >> input');\n }\n\n async clickActionsMenuForScript(name: string) {\n await this.uiBaseLocators.clickActionsMenuForName(name);\n }\n\n async clickActionsMenuAtRoot() {\n await this.clickActionsMenuForScript(\"Scripts\");\n }\n\n async clickRootFolderCaretButton() {\n await this.uiBaseLocators.clickCaretButtonForName(\"Scripts\");\n }\n\n async clickCaretButtonForName(name: string) {\n await this.uiBaseLocators.clickCaretButtonForName(name);\n }\n\n async clickNewScriptButton() {\n await this.newEmptyScriptBtn.click();\n }\n\n // Will only work for root scripts\n async goToScript(scriptName: string) {\n await this.uiBaseLocators.goToSection(ConstantHelper.sections.settings);\n await this.clickActionsMenuAtRoot();\n await this.page.getByLabel(scriptName).click({force: true});\n }\n\n async clickSaveButton() {\n await this.uiBaseLocators.clickSaveButton();\n }\n\n async createFolder(folderName: string) {\n await this.uiBaseLocators.clickCreateFolderButton();\n await this.insertFolderName.fill(folderName);\n await this.uiBaseLocators.clickConfirmCreateFolderButton();\n }\n\n async enterScriptName(scriptContent: string) {\n await this.insertScriptName.fill(scriptContent);\n }\n\n async enterScriptContent(scriptContent: string) {\n await this.uiBaseLocators.textAreaInputArea.clear();\n await this.uiBaseLocators.textAreaInputArea.fill(scriptContent);\n }\n\n async openScriptAtRoot(scriptName: string) {\n await this.clickRootFolderCaretButton();\n await this.page.getByLabel(scriptName).click({force: true});\n }\n\n async deleteScript() {\n await this.uiBaseLocators.clickDeleteButton();\n await this.uiBaseLocators.clickConfirmToDeleteButton();\n }\n\n async deleteFolder() {\n await this.uiBaseLocators.deleteFolder();\n }\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"StylesheetApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/StylesheetApiHelper.ts"],"names":[],"mappings":";;;AAEA,MAAa,mBAAmB;IAC5B,GAAG,CAAY;IAEf,YAAY,GAAe;QACvB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAY;QAClB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,6CAA6C,GAAG,IAAI,CAAC,CAAC;QAC7G,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEnC,IAAI,IAAI,KAAK,IAAI,EAAE;YACf,OAAO,IAAI,CAAC;SACf;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAY;QACxB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,6CAA6C,GAAG,IAAI,CAAC,CAAC;QAC7G,OAAO,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,OAAe,EAAE,aAAqB,EAAE;QAC/D,MAAM,cAAc,GAAG;YACnB,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,OAAO;YAClB,YAAY,EAAE,UAAU;SAC3B,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,uCAAuC,EAAE,cAAc,CAAC,CAAC;QACjH,6CAA6C;QAC7C,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,UAAU;QACnB,MAAM,cAAc,GAAG;YACnB,MAAM,EAAE,UAAU,CAAC,IAAI;YACvB,SAAS,EAAE,UAAU,CAAC,OAAO;YAC7B,cAAc,EAAE,UAAU,CAAC,IAAI;SAClC,CAAC;QACF,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,uCAAuC,EAAE,cAAc,CAAC,CAAC;IAC1G,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY;QACrB,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,6CAA6C,GAAG,IAAI,CAAC,CAAC;IAC1G,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAY;QAC1B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,4DAA4D,IAAI,oBAAoB,CAAC,CAAC;QAC7I,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC,KAAK,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAAY;QAC5B,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,YAAY;QACd,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,mEAAmE,CAAC,CAAC;IACtH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAY;QACxB,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QACjD,MAAM,cAAc,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC;QAEnD,KAAK,MAAM,UAAU,IAAI,cAAc,CAAC,KAAK,EAAE;YAC3C,IAAI,UAAU,CAAC,IAAI,KAAK,IAAI,EAAE;gBAC1B,IAAI,UAAU,CAAC,QAAQ,EAAE;oBACrB,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;iBAC1C;qBAAM;oBACH,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;iBACpC;aACJ;iBAAM,IAAI,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,WAAW,EAAE;gBACtD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACxE,IAAI,MAAM,EAAE;oBACR,OAAO,MAAM,CAAC;iBACjB;aACJ;SACJ;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,IAAY;QAClC,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QACjD,MAAM,cAAc,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC;QAEnD,KAAK,MAAM,UAAU,IAAI,cAAc,CAAC,KAAK,EAAE;YAC3C,IAAI,UAAU,CAAC,IAAI,KAAK,IAAI,EAAE;gBAC1B,IAAI,UAAU,CAAC,QAAQ,EAAE;oBACrB,OAAO,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;iBACvD;gBACD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aAC7C;iBAAM,IAAI,UAAU,CAAC,WAAW,EAAE;gBAC/B,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aAE3D;SACJ;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,IAAY,EAAE,IAAY,EAAE,QAAiB;QACvE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAE3C,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE;YACvB,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE;gBACrB,IAAI,CAAC,QAAQ,EAAE;oBACX,IAAI,KAAK,CAAC,QAAQ,EAAE;wBAChB,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;qBAC3C;oBACD,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;iBACrC;gBACD,IAAI,KAAK,CAAC,QAAQ,EAAE;oBAChB,OAAO,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;iBAClD;gBACD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAExC;iBAAM,IAAI,KAAK,CAAC,WAAW,EAAE;gBAC1B,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;aACjE;SACJ;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,gBAAgB;QAChD,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE;YAC/B,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;SACzD;QACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAE5D,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE;YACvB,IAAI,KAAK,CAAC,WAAW,EAAE;gBACnB,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;aAC3C;iBAAM,IAAI,KAAK,CAAC,QAAQ,EAAE;gBACvB,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aACvC;iBAAM;gBACH,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aACjC;SACJ;QACD,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC;IAED,SAAS;IACT,KAAK,CAAC,SAAS,CAAC,IAAY;QACxB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,oDAAoD,GAAG,IAAI,CAAC,CAAC;QACpH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEnC,IAAI,IAAI,KAAK,IAAI,EAAE;YACnB,OAAO,IAAI,CAAC;SACX;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,IAAY;QAC9B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,oDAAoD,GAAG,IAAI,CAAC,CAAC;QACpH,OAAO,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAY,EAAE,UAAU,GAAG,EAAE;QAC5C,MAAM,oBAAoB,GAC1B;YACI,MAAM,EAAE,IAAI;YACZ,YAAY,EAAE,UAAU;SAC3B,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,8CAA8C,EAAE,oBAAoB,CAAC,CAAC;QAC9H,iDAAiD;QACjD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAY;QAC3B,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,oDAAoD,GAAG,IAAI,CAAC,CAAC;IACjH,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,IAAY,EAAE,IAAa;QAC/C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,6DAA6D,GAAG,IAAI,CAAC,CAAC;QAC7H,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAExC,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,KAAK,EAAE;YAChC,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;gBACpB,OAAO,IAAI,CAAC;aACf;SACJ;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ;AAvLD,kDAuLC","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?path=' + path);\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async doesExist(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 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 async getChildren(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 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?path=' + path);\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async doesFolderExist(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 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 doesRuleNameExist(path: string, name : string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/rich-text/rules?path=' + path);\n const rulesJson = await response.json();\n\n for (const rule of rulesJson.rules) {\n if (rule.name === name) {\n return true;\n }\n }\n return false; \n }\n}"]}
1
+ {"version":3,"file":"StylesheetApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/StylesheetApiHelper.ts"],"names":[],"mappings":";;;AAEA,MAAa,mBAAmB;IAC9B,GAAG,CAAY;IAEf,YAAY,GAAe;QACzB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAY;QACpB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,6CAA6C,GAAG,IAAI,CAAC,CAAC;QAC7G,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEnC,IAAI,IAAI,KAAK,IAAI,EAAE;YACjB,OAAO,IAAI,CAAC;SACb;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAY;QAC1B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,6CAA6C,GAAG,IAAI,CAAC,CAAC;QAC7G,OAAO,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,OAAe,EAAE,aAAqB,EAAE;QACjE,MAAM,cAAc,GAAG;YACrB,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,OAAO;YAClB,YAAY,EAAE,UAAU;SACzB,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,uCAAuC,EAAE,cAAc,CAAC,CAAC;QACjH,6CAA6C;QAC7C,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,UAAU;QACrB,MAAM,cAAc,GAAG;YACrB,MAAM,EAAE,UAAU,CAAC,IAAI;YACvB,SAAS,EAAE,UAAU,CAAC,OAAO;YAC7B,cAAc,EAAE,UAAU,CAAC,IAAI;SAChC,CAAC;QACF,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,uCAAuC,EAAE,cAAc,CAAC,CAAC;IACxG,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY;QACvB,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,6CAA6C,GAAG,IAAI,CAAC,CAAC;IACxG,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAY;QAC5B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,4DAA4D,IAAI,oBAAoB,CAAC,CAAC;QAC7I,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAAY;QAC9B,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,mEAAmE,CAAC,CAAC;IACpH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAY;QAC1B,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QACjD,MAAM,cAAc,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC;QAEnD,KAAK,MAAM,UAAU,IAAI,cAAc,CAAC,KAAK,EAAE;YAC7C,IAAI,UAAU,CAAC,IAAI,KAAK,IAAI,EAAE;gBAC5B,IAAI,UAAU,CAAC,QAAQ,EAAE;oBACvB,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;iBACxC;qBAAM;oBACL,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;iBAClC;aACF;iBAAM,IAAI,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,WAAW,EAAE;gBACxD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACxE,IAAI,MAAM,EAAE;oBACV,OAAO,MAAM,CAAC;iBACf;aACF;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,IAAY;QACpC,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QACjD,MAAM,cAAc,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC;QAEnD,KAAK,MAAM,UAAU,IAAI,cAAc,CAAC,KAAK,EAAE;YAC7C,IAAI,UAAU,CAAC,IAAI,KAAK,IAAI,EAAE;gBAC5B,IAAI,UAAU,CAAC,QAAQ,EAAE;oBACvB,OAAO,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;iBACrD;gBACD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aAC3C;iBAAM,IAAI,UAAU,CAAC,WAAW,EAAE;gBACjC,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aAEzD;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,IAAY,EAAE,IAAY,EAAE,QAAiB;QACzE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAE3C,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE;YACzB,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE;gBACvB,IAAI,CAAC,QAAQ,EAAE;oBACb,IAAI,KAAK,CAAC,QAAQ,EAAE;wBAClB,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;qBACzC;oBACD,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;iBACnC;gBACD,IAAI,KAAK,CAAC,QAAQ,EAAE;oBAClB,OAAO,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;iBAChD;gBACD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAEtC;iBAAM,IAAI,KAAK,CAAC,WAAW,EAAE;gBAC5B,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;aAC/D;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,gBAAgB;QAClD,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE;YACjC,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;SACvD;QACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAE5D,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE;YACzB,IAAI,KAAK,CAAC,WAAW,EAAE;gBACrB,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;aACzC;iBAAM,IAAI,KAAK,CAAC,QAAQ,EAAE;gBACzB,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aACrC;iBAAM;gBACL,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAC/B;SACF;QACD,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACxD,CAAC;IAED,SAAS;IACT,KAAK,CAAC,SAAS,CAAC,IAAY;QAC1B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,oDAAoD,GAAG,IAAI,CAAC,CAAC;QACpH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEnC,IAAI,IAAI,KAAK,IAAI,EAAE;YACjB,OAAO,IAAI,CAAC;SACb;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,IAAY;QAChC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,oDAAoD,GAAG,IAAI,CAAC,CAAC;QACpH,OAAO,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAY,EAAE,UAAU,GAAG,EAAE;QAC9C,MAAM,oBAAoB,GACxB;YACE,MAAM,EAAE,IAAI;YACZ,YAAY,EAAE,UAAU;SACzB,CAAC;QACJ,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,8CAA8C,EAAE,oBAAoB,CAAC,CAAC;QAC9H,iDAAiD;QACjD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAY;QAC7B,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,oDAAoD,GAAG,IAAI,CAAC,CAAC;IAC/G,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,IAAY,EAAE,IAAY;QAChD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,6DAA6D,GAAG,IAAI,CAAC,CAAC;QAC7H,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAExC,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,KAAK,EAAE;YAClC,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;gBACtB,OAAO,IAAI,CAAC;aACb;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAvLD,kDAuLC","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?path=' + path);\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async doesExist(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 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 async getChildren(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 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?path=' + path);\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async doesFolderExist(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 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 doesRuleNameExist(path: string, name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/rich-text/rules?path=' + path);\n const rulesJson = await response.json();\n\n for (const rule of rulesJson.rules) {\n if (rule.name === name) {\n return true;\n }\n }\n return false;\n }\n}"]}
@@ -1,34 +1,26 @@
1
1
  import { Page } from "@playwright/test";
2
2
  export declare class StylesheetUiHelper {
3
3
  private readonly page;
4
- private readonly newStylesheetFileBtn;
5
- private readonly newRTEStylesheetFileBtn;
6
- private readonly createFolderBtn;
7
- private readonly saveBtn;
8
- private readonly submitBtn;
4
+ private readonly uiBaseLocators;
5
+ private readonly newStylesheetBtn;
6
+ private readonly newRTEStylesheetBtn;
9
7
  private readonly stylesheetNameTxt;
10
8
  private readonly addRuleBtn;
11
9
  private readonly ruleNameTxt;
12
10
  private readonly ruleSelectorTxt;
13
11
  private readonly ruleStylesTxt;
14
- private readonly folderNameTxt;
15
- private readonly caretBtn;
16
- private readonly deleteBtn;
17
- private readonly confirmToDeleteBtn;
18
- private readonly removeFolderBtn;
19
- private readonly confirmCreateFolderBtn;
20
12
  constructor(page: Page);
21
- openActionsMenuForName(name: string): Promise<void>;
22
- openActionsMenuAtRoot(): Promise<void>;
13
+ clickActionsMenuForStylesheet(name: string): Promise<void>;
14
+ clickActionsMenuAtRoot(): Promise<void>;
23
15
  clickRootFolderCaretButton(): Promise<void>;
24
16
  clickCaretButtonForName(name: string): Promise<void>;
25
- clickNewStylesheetFileButton(): Promise<void>;
26
- clickNewRTEStylesheetFileButton(): Promise<void>;
17
+ clickNewStylesheetButton(): Promise<void>;
18
+ clickNewRTEStylesheetButton(): Promise<void>;
27
19
  clickSaveButton(): Promise<void>;
28
- createNewFolder(folderName: string): Promise<void>;
20
+ createFolder(folderName: string): Promise<void>;
29
21
  enterStylesheetName(stylesheetName: string): Promise<void>;
30
22
  addNewRule(ruleName: string, ruleSelector: string, ruleStyles: string): Promise<void>;
31
- openStylesheetFileByNameAtRoot(stylesheetFileName: string): Promise<void>;
32
- deleteStylesheetFile(): Promise<void>;
33
- removeFolder(): Promise<void>;
23
+ openStylesheetByNameAtRoot(stylesheetName: string): Promise<void>;
24
+ deleteStylesheet(): Promise<void>;
25
+ deleteFolder(): Promise<void>;
34
26
  }
@@ -1,68 +1,53 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.StylesheetUiHelper = void 0;
4
+ const UiBaseLocators_1 = require("./UiBaseLocators");
4
5
  class StylesheetUiHelper {
5
6
  page;
6
- newStylesheetFileBtn;
7
- newRTEStylesheetFileBtn;
8
- createFolderBtn;
9
- saveBtn;
10
- submitBtn;
7
+ uiBaseLocators;
8
+ newStylesheetBtn;
9
+ newRTEStylesheetBtn;
11
10
  stylesheetNameTxt;
12
11
  addRuleBtn;
13
12
  ruleNameTxt;
14
13
  ruleSelectorTxt;
15
14
  ruleStylesTxt;
16
- folderNameTxt;
17
- caretBtn;
18
- deleteBtn;
19
- confirmToDeleteBtn;
20
- removeFolderBtn;
21
- confirmCreateFolderBtn;
22
15
  constructor(page) {
23
16
  this.page = page;
24
- this.newStylesheetFileBtn = page.getByLabel('New stylesheet file');
25
- this.newRTEStylesheetFileBtn = page.getByLabel('New Rich Text Editor style sheet file');
26
- this.createFolderBtn = page.getByLabel('Create folder');
27
- this.saveBtn = page.getByLabel('Save');
28
- this.submitBtn = page.getByLabel('Submit');
17
+ this.uiBaseLocators = new UiBaseLocators_1.UiBaseLocators(this.page);
18
+ this.newStylesheetBtn = page.getByLabel('New stylesheet file');
19
+ this.newRTEStylesheetBtn = page.getByLabel('New Rich Text Editor style sheet file');
29
20
  this.stylesheetNameTxt = page.getByLabel('stylesheet name');
30
21
  this.addRuleBtn = page.getByLabel('Add rule');
31
22
  this.ruleNameTxt = page.getByLabel('Rule name');
32
23
  this.ruleSelectorTxt = page.getByLabel('Rule selector');
33
24
  this.ruleStylesTxt = page.getByLabel('Rule styles');
34
- this.folderNameTxt = page.getByRole('textbox', { name: 'Enter folder name...' });
35
- this.caretBtn = page.locator('umb-tree-item').filter({ hasText: 'Stylesheets' }).locator('#caret-button');
36
- this.deleteBtn = page.getByRole('button', { name: 'Delete' });
37
- this.confirmToDeleteBtn = page.locator('#confirm').getByLabel('Delete');
38
- this.removeFolderBtn = page.getByLabel('Remove folder');
39
- this.confirmCreateFolderBtn = page.locator('#confirm').getByLabel('Create folder');
40
25
  }
41
- async openActionsMenuForName(name) {
42
- await this.page.locator('umb-tree-item').locator('[label="' + name + '"] >> [label="Open actions menu"]').click();
26
+ async clickActionsMenuForStylesheet(name) {
27
+ await this.uiBaseLocators.clickActionsMenuForName(name);
43
28
  }
44
- async openActionsMenuAtRoot() {
45
- await this.openActionsMenuForName("Stylesheets");
29
+ async clickActionsMenuAtRoot() {
30
+ await this.clickActionsMenuForStylesheet("Stylesheets");
46
31
  }
47
32
  async clickRootFolderCaretButton() {
48
- await this.caretBtn.click();
33
+ await this.uiBaseLocators.clickCaretButtonForName("Stylesheets");
49
34
  }
50
35
  async clickCaretButtonForName(name) {
51
- await this.page.locator('umb-tree-item >> [label="' + name + '"]').locator('#caret-button').click();
36
+ await this.uiBaseLocators.clickCaretButtonForName(name);
52
37
  }
53
- async clickNewStylesheetFileButton() {
54
- await this.newStylesheetFileBtn.click();
38
+ async clickNewStylesheetButton() {
39
+ await this.newStylesheetBtn.click();
55
40
  }
56
- async clickNewRTEStylesheetFileButton() {
57
- await this.newRTEStylesheetFileBtn.click();
41
+ async clickNewRTEStylesheetButton() {
42
+ await this.newRTEStylesheetBtn.click();
58
43
  }
59
44
  async clickSaveButton() {
60
- await this.saveBtn.click();
45
+ await this.uiBaseLocators.clickSaveButton();
61
46
  }
62
- async createNewFolder(folderName) {
63
- await this.createFolderBtn.click();
64
- await this.folderNameTxt.fill(folderName);
65
- await this.confirmCreateFolderBtn.click();
47
+ async createFolder(folderName) {
48
+ await this.uiBaseLocators.clickCreateFolderButton();
49
+ await this.uiBaseLocators.folderNameTxt.fill(folderName);
50
+ await this.uiBaseLocators.clickConfirmCreateFolderButton();
66
51
  }
67
52
  async enterStylesheetName(stylesheetName) {
68
53
  await this.stylesheetNameTxt.clear();
@@ -76,19 +61,18 @@ class StylesheetUiHelper {
76
61
  await this.ruleSelectorTxt.fill(ruleSelector);
77
62
  await this.ruleStylesTxt.clear();
78
63
  await this.ruleStylesTxt.fill(ruleStyles);
79
- await this.submitBtn.click();
64
+ await this.uiBaseLocators.clickSubmitButton();
80
65
  }
81
- async openStylesheetFileByNameAtRoot(stylesheetFileName) {
82
- await this.caretBtn.click();
83
- await this.page.getByLabel(stylesheetFileName).click();
66
+ async openStylesheetByNameAtRoot(stylesheetName) {
67
+ await this.clickRootFolderCaretButton();
68
+ await this.page.getByLabel(stylesheetName).click();
84
69
  }
85
- async deleteStylesheetFile() {
86
- await this.deleteBtn.click();
87
- await this.confirmToDeleteBtn.click();
70
+ async deleteStylesheet() {
71
+ await this.uiBaseLocators.clickDeleteButton();
72
+ await this.uiBaseLocators.clickConfirmToDeleteButton();
88
73
  }
89
- async removeFolder() {
90
- await this.removeFolderBtn.click();
91
- await this.confirmToDeleteBtn.click();
74
+ async deleteFolder() {
75
+ await this.uiBaseLocators.deleteFolder();
92
76
  }
93
77
  }
94
78
  exports.StylesheetUiHelper = StylesheetUiHelper;
@@ -1 +1 @@
1
- {"version":3,"file":"StylesheetUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/StylesheetUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {Page, Locator} from \"@playwright/test\"\n\nexport class StylesheetUiHelper {\n\n private readonly page: Page;\n private readonly newStylesheetFileBtn: Locator;\n private readonly newRTEStylesheetFileBtn: Locator;\n private readonly createFolderBtn: Locator;\n private readonly saveBtn: Locator;\n private readonly submitBtn: Locator;\n private readonly stylesheetNameTxt: Locator;\n private readonly addRuleBtn: Locator;\n private readonly ruleNameTxt: Locator;\n private readonly ruleSelectorTxt: Locator;\n private readonly ruleStylesTxt: Locator;\n private readonly folderNameTxt: Locator;\n private readonly caretBtn: Locator;\n private readonly deleteBtn: Locator;\n private readonly confirmToDeleteBtn: Locator;\n private readonly removeFolderBtn: Locator;\n private readonly confirmCreateFolderBtn: Locator;\n\n\n constructor(page: Page) {\n this.page = page;\n this.newStylesheetFileBtn = page.getByLabel('New stylesheet file');\n this.newRTEStylesheetFileBtn = page.getByLabel('New Rich Text Editor style sheet file');\n this.createFolderBtn = page.getByLabel('Create folder');\n this.saveBtn = page.getByLabel('Save');\n this.submitBtn = page.getByLabel('Submit');\n this.stylesheetNameTxt = page.getByLabel('stylesheet name');\n this.addRuleBtn = page.getByLabel('Add rule');\n this.ruleNameTxt = page.getByLabel('Rule name');\n this.ruleSelectorTxt = page.getByLabel('Rule selector');\n this.ruleStylesTxt = page.getByLabel('Rule styles');\n this.folderNameTxt = page.getByRole('textbox', { name: 'Enter folder name...' });\n this.caretBtn = page.locator('umb-tree-item').filter({ hasText: 'Stylesheets' }).locator('#caret-button');\n this.deleteBtn = page.getByRole('button', { name: 'Delete' });\n this.confirmToDeleteBtn = page.locator('#confirm').getByLabel('Delete');\n this.removeFolderBtn = page.getByLabel('Remove folder');\n this.confirmCreateFolderBtn = page.locator('#confirm').getByLabel('Create folder');\n }\n\n async openActionsMenuForName(name : string) {\n await this.page.locator('umb-tree-item').locator('[label=\"' + name + '\"] >> [label=\"Open actions menu\"]').click();\n }\n\n async openActionsMenuAtRoot() {\n await this.openActionsMenuForName(\"Stylesheets\");\n }\n\n async clickRootFolderCaretButton() {\n await this.caretBtn.click();\n }\n\n async clickCaretButtonForName(name: string) {\n await this.page.locator('umb-tree-item >> [label=\"' + name + '\"]').locator('#caret-button').click();\n }\n\n async clickNewStylesheetFileButton() {\n await this.newStylesheetFileBtn.click();\n }\n\n async clickNewRTEStylesheetFileButton() {\n await this.newRTEStylesheetFileBtn.click();\n }\n\n async clickSaveButton() {\n await this.saveBtn.click();\n }\n\n async createNewFolder(folderName : string) {\n await this.createFolderBtn.click();\n await this.folderNameTxt.fill(folderName);\n await this.confirmCreateFolderBtn.click();\n }\n\n async enterStylesheetName(stylesheetName : string) {\n await this.stylesheetNameTxt.clear();\n await this.stylesheetNameTxt.fill(stylesheetName);\n }\n\n async addNewRule(ruleName : string, ruleSelector: string, ruleStyles: string) {\n await this.addRuleBtn.click();\n await this.ruleNameTxt.clear();\n await this.ruleNameTxt.fill(ruleName);\n await this.ruleSelectorTxt.clear();\n await this.ruleSelectorTxt.fill(ruleSelector);\n await this.ruleStylesTxt.clear();\n await this.ruleStylesTxt.fill(ruleStyles);\n await this.submitBtn.click();\n }\n\n async openStylesheetFileByNameAtRoot(stylesheetFileName : string) {\n await this.caretBtn.click();\n await this.page.getByLabel(stylesheetFileName).click();\n }\n\n async deleteStylesheetFile() {\n await this.deleteBtn.click();\n await this.confirmToDeleteBtn.click();\n }\n\n async removeFolder() {\n await this.removeFolderBtn.click();\n await this.confirmToDeleteBtn.click();\n }\n}"]}
1
+ {"version":3,"file":"StylesheetUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/StylesheetUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {Page, Locator} from \"@playwright/test\"\nimport {UiBaseLocators} from \"./UiBaseLocators\";\n\nexport class StylesheetUiHelper {\n private readonly page: Page;\n private readonly uiBaseLocators: UiBaseLocators;\n private readonly newStylesheetBtn: Locator;\n private readonly newRTEStylesheetBtn: Locator;\n private readonly stylesheetNameTxt: Locator;\n private readonly addRuleBtn: Locator;\n private readonly ruleNameTxt: Locator;\n private readonly ruleSelectorTxt: Locator;\n private readonly ruleStylesTxt: Locator;\n\n constructor(page: Page) {\n this.page = page;\n this.uiBaseLocators = new UiBaseLocators(this.page);\n this.newStylesheetBtn = page.getByLabel('New stylesheet file');\n this.newRTEStylesheetBtn = page.getByLabel('New Rich Text Editor style sheet file');\n this.stylesheetNameTxt = page.getByLabel('stylesheet name');\n this.addRuleBtn = page.getByLabel('Add rule');\n this.ruleNameTxt = page.getByLabel('Rule name');\n this.ruleSelectorTxt = page.getByLabel('Rule selector');\n this.ruleStylesTxt = page.getByLabel('Rule styles');\n }\n\n async clickActionsMenuForStylesheet(name: string) {\n await this.uiBaseLocators.clickActionsMenuForName(name);\n }\n\n async clickActionsMenuAtRoot() {\n await this.clickActionsMenuForStylesheet(\"Stylesheets\");\n }\n\n async clickRootFolderCaretButton() {\n await this.uiBaseLocators.clickCaretButtonForName(\"Stylesheets\");\n }\n\n async clickCaretButtonForName(name: string) {\n await this.uiBaseLocators.clickCaretButtonForName(name);\n }\n\n async clickNewStylesheetButton() {\n await this.newStylesheetBtn.click();\n }\n\n async clickNewRTEStylesheetButton() {\n await this.newRTEStylesheetBtn.click();\n }\n\n async clickSaveButton() {\n await this.uiBaseLocators.clickSaveButton();\n }\n\n async createFolder(folderName: string) {\n await this.uiBaseLocators.clickCreateFolderButton();\n await this.uiBaseLocators.folderNameTxt.fill(folderName);\n await this.uiBaseLocators.clickConfirmCreateFolderButton();\n }\n\n async enterStylesheetName(stylesheetName: string) {\n await this.stylesheetNameTxt.clear();\n await this.stylesheetNameTxt.fill(stylesheetName);\n }\n\n async addNewRule(ruleName: string, ruleSelector: string, ruleStyles: string) {\n await this.addRuleBtn.click();\n await this.ruleNameTxt.clear();\n await this.ruleNameTxt.fill(ruleName);\n await this.ruleSelectorTxt.clear();\n await this.ruleSelectorTxt.fill(ruleSelector);\n await this.ruleStylesTxt.clear();\n await this.ruleStylesTxt.fill(ruleStyles);\n await this.uiBaseLocators.clickSubmitButton();\n }\n\n async openStylesheetByNameAtRoot(stylesheetName: string) {\n await this.clickRootFolderCaretButton();\n await this.page.getByLabel(stylesheetName).click();\n }\n\n async deleteStylesheet() {\n await this.uiBaseLocators.clickDeleteButton();\n await this.uiBaseLocators.clickConfirmToDeleteButton();\n }\n\n async deleteFolder() {\n await this.uiBaseLocators.deleteFolder();\n }\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"TemplateApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/TemplateApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\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}"]}
1
+ {"version":3,"file":"TemplateApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/TemplateApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\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}"]}
@@ -0,0 +1,29 @@
1
+ import { Page } from "@playwright/test";
2
+ export declare class TemplateUiHelper {
3
+ private readonly page;
4
+ private readonly uiBaseLocators;
5
+ private readonly newEmptyTemplateBtn;
6
+ private readonly insertTemplateName;
7
+ private readonly insertFolderName;
8
+ private readonly changeMasterTemplateBtn;
9
+ private readonly sectionsBtn;
10
+ constructor(page: Page);
11
+ clickActionsMenuForTemplate(name: string): Promise<void>;
12
+ clickActionsMenuAtRoot(): Promise<void>;
13
+ clickRootFolderCaretButton(): Promise<void>;
14
+ clickCaretButtonForName(name: string): Promise<void>;
15
+ goToTemplate(templateName: string): Promise<void>;
16
+ insertDictionaryByName(dictionaryName: string): Promise<void>;
17
+ clickSubmitButton(): Promise<void>;
18
+ clickSectionsButton(): Promise<void>;
19
+ clickNewTemplateButton(): Promise<void>;
20
+ clickChangeMasterTemplateButton(): Promise<void>;
21
+ addQueryBuilderWithCreateDateOption(): Promise<void>;
22
+ clickSaveButton(): Promise<void>;
23
+ createFolder(folderName: string): Promise<void>;
24
+ enterTemplateName(templateContent: string): Promise<void>;
25
+ enterTemplateContent(templateContent: string): Promise<void>;
26
+ openTemplateAtRoot(templateName: string): Promise<void>;
27
+ deleteTemplate(): Promise<void>;
28
+ deleteFolder(): Promise<void>;
29
+ }
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TemplateUiHelper = void 0;
4
+ const UiBaseLocators_1 = require("./UiBaseLocators");
5
+ const ConstantHelper_1 = require("./ConstantHelper");
6
+ class TemplateUiHelper {
7
+ page;
8
+ uiBaseLocators;
9
+ newEmptyTemplateBtn;
10
+ insertTemplateName;
11
+ insertFolderName;
12
+ changeMasterTemplateBtn;
13
+ sectionsBtn;
14
+ constructor(page) {
15
+ this.page = page;
16
+ this.uiBaseLocators = new UiBaseLocators_1.UiBaseLocators(this.page);
17
+ this.newEmptyTemplateBtn = page.getByLabel('Create');
18
+ this.insertTemplateName = page.getByLabel('template name');
19
+ this.insertFolderName = page.locator('[headline="Create Folder"] >> input');
20
+ this.changeMasterTemplateBtn = page.getByLabel('Change master template');
21
+ this.sectionsBtn = page.locator('#sections-button', { hasText: 'Sections' });
22
+ }
23
+ async clickActionsMenuForTemplate(name) {
24
+ await this.uiBaseLocators.clickActionsMenuForName(name);
25
+ }
26
+ async clickActionsMenuAtRoot() {
27
+ await this.clickActionsMenuForTemplate("Templates");
28
+ }
29
+ async clickRootFolderCaretButton() {
30
+ await this.uiBaseLocators.clickCaretButtonForName("Templates");
31
+ }
32
+ async clickCaretButtonForName(name) {
33
+ await this.uiBaseLocators.clickCaretButtonForName(name);
34
+ }
35
+ // Will only work for root templates
36
+ async goToTemplate(templateName) {
37
+ await this.uiBaseLocators.goToSection(ConstantHelper_1.ConstantHelper.sections.settings);
38
+ await this.clickRootFolderCaretButton();
39
+ await this.page.getByLabel(templateName).click({ force: true });
40
+ }
41
+ async insertDictionaryByName(dictionaryName) {
42
+ await this.uiBaseLocators.insertDictionaryByName(dictionaryName);
43
+ }
44
+ async clickSubmitButton() {
45
+ await this.uiBaseLocators.clickSubmitButton();
46
+ }
47
+ async clickSectionsButton() {
48
+ await this.sectionsBtn.click();
49
+ }
50
+ async clickNewTemplateButton() {
51
+ await this.newEmptyTemplateBtn.click();
52
+ }
53
+ async clickChangeMasterTemplateButton() {
54
+ await this.changeMasterTemplateBtn.click();
55
+ }
56
+ async addQueryBuilderWithCreateDateOption() {
57
+ await this.uiBaseLocators.addQueryBuilderWithCreateDateOption();
58
+ }
59
+ async clickSaveButton() {
60
+ await this.uiBaseLocators.clickSaveButton();
61
+ }
62
+ async createFolder(folderName) {
63
+ await this.uiBaseLocators.clickCreateFolderButton();
64
+ await this.insertFolderName.fill(folderName);
65
+ await this.uiBaseLocators.createFolderBtn.click({ force: true });
66
+ }
67
+ async enterTemplateName(templateContent) {
68
+ await this.insertTemplateName.fill(templateContent);
69
+ }
70
+ async enterTemplateContent(templateContent) {
71
+ await this.uiBaseLocators.textAreaInputArea.clear();
72
+ await this.uiBaseLocators.textAreaInputArea.fill(templateContent);
73
+ }
74
+ async openTemplateAtRoot(templateName) {
75
+ await this.uiBaseLocators.clickCaretDictionaryButton();
76
+ await this.page.getByLabel(templateName).click();
77
+ }
78
+ async deleteTemplate() {
79
+ await this.uiBaseLocators.clickDeleteButton();
80
+ await this.uiBaseLocators.clickConfirmToDeleteButton();
81
+ }
82
+ async deleteFolder() {
83
+ await this.uiBaseLocators.deleteFolder();
84
+ }
85
+ }
86
+ exports.TemplateUiHelper = TemplateUiHelper;
87
+ //# sourceMappingURL=TemplateUiHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TemplateUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/TemplateUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {Page, Locator} from \"@playwright/test\"\nimport {UiBaseLocators} from \"./UiBaseLocators\";\nimport {ConstantHelper} from \"./ConstantHelper\";\n\nexport class TemplateUiHelper {\n private readonly page: Page;\n private readonly uiBaseLocators: UiBaseLocators;\n private readonly newEmptyTemplateBtn: Locator;\n private readonly insertTemplateName: Locator;\n private readonly insertFolderName: Locator;\n private readonly changeMasterTemplateBtn: Locator;\n private readonly sectionsBtn: Locator;\n\n constructor(page: Page) {\n this.page = page;\n this.uiBaseLocators = new UiBaseLocators(this.page);\n this.newEmptyTemplateBtn = page.getByLabel('Create');\n this.insertTemplateName = page.getByLabel('template name');\n this.insertFolderName = page.locator('[headline=\"Create Folder\"] >> input');\n this.changeMasterTemplateBtn = page.getByLabel('Change master template');\n this.sectionsBtn = page.locator('#sections-button', {hasText: 'Sections'});\n }\n\n async clickActionsMenuForTemplate(name: string) {\n await this.uiBaseLocators.clickActionsMenuForName(name);\n }\n\n async clickActionsMenuAtRoot() {\n await this.clickActionsMenuForTemplate(\"Templates\");\n }\n\n async clickRootFolderCaretButton() {\n await this.uiBaseLocators.clickCaretButtonForName(\"Templates\");\n }\n\n async clickCaretButtonForName(name: string) {\n await this.uiBaseLocators.clickCaretButtonForName(name);\n }\n\n // Will only work for root templates\n async goToTemplate(templateName: string) {\n await this.uiBaseLocators.goToSection(ConstantHelper.sections.settings);\n await this.clickRootFolderCaretButton();\n await this.page.getByLabel(templateName).click({force: true});\n }\n\n async insertDictionaryByName(dictionaryName: string) {\n await this.uiBaseLocators.insertDictionaryByName(dictionaryName);\n }\n\n async clickSubmitButton() {\n await this.uiBaseLocators.clickSubmitButton()\n }\n\n async clickSectionsButton() {\n await this.sectionsBtn.click();\n }\n\n async clickNewTemplateButton() {\n await this.newEmptyTemplateBtn.click();\n }\n\n async clickChangeMasterTemplateButton() {\n await this.changeMasterTemplateBtn.click();\n }\n\n async addQueryBuilderWithCreateDateOption() {\n await this.uiBaseLocators.addQueryBuilderWithCreateDateOption();\n }\n\n async clickSaveButton() {\n await this.uiBaseLocators.clickSaveButton();\n }\n\n async createFolder(folderName: string) {\n await this.uiBaseLocators.clickCreateFolderButton();\n await this.insertFolderName.fill(folderName);\n await this.uiBaseLocators.createFolderBtn.click({force: true});\n }\n\n async enterTemplateName(templateContent: string) {\n await this.insertTemplateName.fill(templateContent);\n }\n\n async enterTemplateContent(templateContent: string) {\n await this.uiBaseLocators.textAreaInputArea.clear();\n await this.uiBaseLocators.textAreaInputArea.fill(templateContent);\n }\n\n async openTemplateAtRoot(templateName: string) {\n await this.uiBaseLocators.clickCaretDictionaryButton();\n await this.page.getByLabel(templateName).click();\n }\n\n async deleteTemplate() {\n await this.uiBaseLocators.clickDeleteButton();\n await this.uiBaseLocators.clickConfirmToDeleteButton();\n }\n\n async deleteFolder() {\n await this.uiBaseLocators.deleteFolder();\n }\n}"]}
@@ -0,0 +1,41 @@
1
+ import { Locator, Page } from "@playwright/test";
2
+ export declare class UiBaseLocators {
3
+ readonly page: Page;
4
+ readonly saveBtn: Locator;
5
+ readonly submitBtn: Locator;
6
+ readonly createFolderBtn: Locator;
7
+ readonly breadcrumbBtn: Locator;
8
+ readonly deleteBtn: Locator;
9
+ readonly confirmToDeleteBtn: Locator;
10
+ readonly deleteFolderBtn: Locator;
11
+ readonly confirmCreateFolderBtn: Locator;
12
+ readonly insertBtn: Locator;
13
+ readonly dictionaryInsertItemBtn: Locator;
14
+ readonly caretDictionaryBtn: Locator;
15
+ readonly insertValueBtn: Locator;
16
+ readonly modalCaretBtn: Locator;
17
+ readonly queryBuilderBtn: Locator;
18
+ readonly queryBuilderOrderedBy: Locator;
19
+ readonly queryBuilderCreateDate: Locator;
20
+ readonly folderNameTxt: Locator;
21
+ readonly textAreaInputArea: Locator;
22
+ constructor(page: Page);
23
+ clickActionsMenuForName(name: string): Promise<void>;
24
+ clickCaretButtonForName(name: string): Promise<void>;
25
+ clickSaveButton(): Promise<void>;
26
+ clickSubmitButton(): Promise<void>;
27
+ clickCreateFolderButton(): Promise<void>;
28
+ clickBreadcrumbButton(): Promise<void>;
29
+ clickInsertButton(): Promise<void>;
30
+ clickDictionaryInsertItemButton(): Promise<void>;
31
+ clickCaretDictionaryButton(): Promise<void>;
32
+ clickDeleteButton(): Promise<void>;
33
+ clickConfirmToDeleteButton(): Promise<void>;
34
+ clickDeleteFolderButton(): Promise<void>;
35
+ clickConfirmCreateFolderButton(): Promise<void>;
36
+ insertDictionaryByName(dictionaryName: string): Promise<void>;
37
+ addQueryBuilderWithCreateDateOption(): Promise<void>;
38
+ deleteFolder(): Promise<void>;
39
+ isTreeItemVisible(name: string): Promise<void>;
40
+ goToSection(sectionName: string): Promise<void>;
41
+ }
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UiBaseLocators = void 0;
4
+ const test_1 = require("@playwright/test");
5
+ const ConstantHelper_1 = require("./ConstantHelper");
6
+ class UiBaseLocators {
7
+ page;
8
+ saveBtn;
9
+ submitBtn;
10
+ createFolderBtn;
11
+ breadcrumbBtn;
12
+ deleteBtn;
13
+ confirmToDeleteBtn;
14
+ deleteFolderBtn;
15
+ confirmCreateFolderBtn;
16
+ insertBtn;
17
+ dictionaryInsertItemBtn;
18
+ caretDictionaryBtn;
19
+ insertValueBtn;
20
+ modalCaretBtn;
21
+ queryBuilderBtn;
22
+ queryBuilderOrderedBy;
23
+ queryBuilderCreateDate;
24
+ folderNameTxt;
25
+ textAreaInputArea;
26
+ constructor(page) {
27
+ this.page = page;
28
+ this.saveBtn = page.getByLabel('Save');
29
+ this.submitBtn = page.getByLabel('Submit');
30
+ this.deleteFolderBtn = page.getByLabel('Delete');
31
+ this.deleteBtn = page.getByRole('button', { name: 'Delete' });
32
+ this.confirmToDeleteBtn = page.locator('#confirm').getByLabel('Delete');
33
+ this.confirmCreateFolderBtn = page.locator('#confirm').getByLabel('Create folder');
34
+ this.breadcrumbBtn = page.getByLabel('Breadcrumb');
35
+ this.createFolderBtn = page.getByLabel('Create folder');
36
+ this.insertBtn = page.getByLabel('Choose value to insert');
37
+ this.dictionaryInsertItemBtn = page.getByLabel('Insert Dictionary item');
38
+ this.caretDictionaryBtn = page.locator('umb-tree-picker-modal').locator('#caret-button');
39
+ this.insertValueBtn = page.getByLabel('Choose value to insert');
40
+ this.modalCaretBtn = page.locator('umb-tree-picker-modal').locator('#caret-button');
41
+ this.queryBuilderBtn = page.locator('#query-builder-button').getByLabel('Query builder');
42
+ this.queryBuilderOrderedBy = page.locator('#property-alias-dropdown').getByLabel('Property alias');
43
+ this.queryBuilderCreateDate = page.locator('#property-alias-dropdown').getByText('CreateDate');
44
+ this.folderNameTxt = page.getByRole('textbox', { name: 'Enter folder name...' });
45
+ this.textAreaInputArea = page.locator('textarea.inputarea');
46
+ }
47
+ async clickActionsMenuForName(name) {
48
+ await this.page.locator('[label="' + name + '"] >> [label="Open actions menu"]').click({ force: true });
49
+ }
50
+ async clickCaretButtonForName(name) {
51
+ await this.page.locator('div').filter({ hasText: name }).locator('#caret-button').click();
52
+ }
53
+ async clickSaveButton() {
54
+ await this.saveBtn.click();
55
+ }
56
+ async clickSubmitButton() {
57
+ await this.submitBtn.click();
58
+ }
59
+ async clickCreateFolderButton() {
60
+ await this.createFolderBtn.click();
61
+ }
62
+ async clickBreadcrumbButton() {
63
+ await this.breadcrumbBtn.click();
64
+ }
65
+ async clickInsertButton() {
66
+ await this.insertBtn.click();
67
+ }
68
+ async clickDictionaryInsertItemButton() {
69
+ await this.dictionaryInsertItemBtn.click({ force: true });
70
+ }
71
+ async clickCaretDictionaryButton() {
72
+ await this.caretDictionaryBtn.click();
73
+ }
74
+ async clickDeleteButton() {
75
+ await this.deleteBtn.click();
76
+ }
77
+ async clickConfirmToDeleteButton() {
78
+ await this.confirmToDeleteBtn.click();
79
+ }
80
+ async clickDeleteFolderButton() {
81
+ await this.deleteFolderBtn.click();
82
+ }
83
+ async clickConfirmCreateFolderButton() {
84
+ await this.confirmCreateFolderBtn.click();
85
+ }
86
+ async insertDictionaryByName(dictionaryName) {
87
+ await this.insertValueBtn.click();
88
+ await this.clickDictionaryInsertItemButton();
89
+ await this.page.waitForTimeout(1000);
90
+ await this.modalCaretBtn.click({ force: true });
91
+ await this.page.getByLabel(dictionaryName).click();
92
+ await this.submitBtn.click();
93
+ }
94
+ async addQueryBuilderWithCreateDateOption() {
95
+ await this.queryBuilderBtn.click({ force: true });
96
+ await this.page.waitForTimeout(1000);
97
+ await this.queryBuilderOrderedBy.click({ force: true });
98
+ await this.page.waitForTimeout(1000);
99
+ await this.queryBuilderCreateDate.click({ force: true });
100
+ await this.submitBtn.click({ force: true });
101
+ }
102
+ async deleteFolder() {
103
+ await this.clickDeleteFolderButton();
104
+ await this.clickConfirmToDeleteButton();
105
+ }
106
+ async isTreeItemVisible(name) {
107
+ await (0, test_1.expect)(this.page.locator('umb-tree-item').locator('[label="' + name + '"] ')).toBeVisible();
108
+ }
109
+ async goToSection(sectionName) {
110
+ for (let section in ConstantHelper_1.ConstantHelper.sections) {
111
+ await (0, test_1.expect)(this.page.getByRole('tab', { name: section })).toBeVisible();
112
+ }
113
+ await this.page.getByRole('tab', { name: sectionName }).click();
114
+ }
115
+ }
116
+ exports.UiBaseLocators = UiBaseLocators;
117
+ //# sourceMappingURL=UiBaseLocators.js.map