@umbraco/playwright-testhelpers 2.0.0-beta.8 → 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 (39) 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.js.map +1 -1
  16. package/dist/lib/helpers/PartialViewUiHelper.d.ts +9 -25
  17. package/dist/lib/helpers/PartialViewUiHelper.js +36 -77
  18. package/dist/lib/helpers/PartialViewUiHelper.js.map +1 -1
  19. package/dist/lib/helpers/ScriptApiHelper.js.map +1 -1
  20. package/dist/lib/helpers/ScriptUiHelper.d.ts +22 -0
  21. package/dist/lib/helpers/ScriptUiHelper.js +68 -0
  22. package/dist/lib/helpers/ScriptUiHelper.js.map +1 -0
  23. package/dist/lib/helpers/StylesheetApiHelper.js.map +1 -1
  24. package/dist/lib/helpers/StylesheetUiHelper.d.ts +11 -19
  25. package/dist/lib/helpers/StylesheetUiHelper.js +31 -47
  26. package/dist/lib/helpers/StylesheetUiHelper.js.map +1 -1
  27. package/dist/lib/helpers/TemplateApiHelper.js.map +1 -1
  28. package/dist/lib/helpers/TemplateUiHelper.d.ts +29 -0
  29. package/dist/lib/helpers/TemplateUiHelper.js +87 -0
  30. package/dist/lib/helpers/TemplateUiHelper.js.map +1 -0
  31. package/dist/lib/helpers/UiBaseLocators.d.ts +41 -0
  32. package/dist/lib/helpers/UiBaseLocators.js +117 -0
  33. package/dist/lib/helpers/UiBaseLocators.js.map +1 -0
  34. package/dist/lib/helpers/UiHelpers.d.ts +9 -4
  35. package/dist/lib/helpers/UiHelpers.js +17 -23
  36. package/dist/lib/helpers/UiHelpers.js.map +1 -1
  37. package/dist/lib/helpers/testExtension.js.map +1 -1
  38. package/dist/tsconfig.tsbuildinfo +1 -1
  39. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"LanguageApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/LanguageApiHelper.ts"],"names":[],"mappings":";;;AAEA,MAAa,kBAAkB;IAC7B,GAAG,CAAY;IAEf,YAAY,GAAe;QACzB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,SAAS,GAAG,KAAK,EAAE,WAAW,GAAG,KAAK,EAAE,OAAe,EAAE,eAAe,GAAG,OAAO;QAC3G,MAAM,QAAQ,GAAG;YACf,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,SAAS;YACtB,aAAa,EAAE,WAAW;YAC1B,iBAAiB,EAAE,eAAe;YAClC,SAAS,EAAE,OAAO;SACnB,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,qCAAqC,EAAE,QAAQ,CAAC,CAAC;QACzG,yCAAyC;QACzC,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,OAAe;QACvB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,sCAAsC,GAAG,OAAO,CAAC,CAAC;QACzG,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,wDAAwD,CAAC,CAAC;QACjH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEnC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE;YAC3B,IAAI,EAAE,CAAC,IAAI,KAAK,IAAI,EAAE;gBACpB,IAAI,EAAE,CAAC,OAAO,KAAK,IAAI,EAAE;oBACvB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,sCAAsC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;oBAC5G,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;iBAC9B;aACF;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAe;QAC1B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,sCAAsC,GAAG,OAAO,CAAC,CAAC;QACzG,OAAO,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAe,EAAE,QAAgB;QAC5C,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,sCAAsC,GAAG,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC3G,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAe;QAC1B,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,sCAAsC,GAAG,OAAO,CAAC,CAAC;IACpG,CAAC;CACF;AAxDD,gDAwDC","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\n\nexport class LanguagesApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n async create(name: string, isDefault = false, isMandatory = false, isoCode: string, fallbackIsoCode = \"en-US\") {\n const langData = {\n \"name\": name,\n \"isDefault\": isDefault,\n \"isMandatory\": isMandatory,\n \"fallbackIsoCode\": fallbackIsoCode,\n \"isoCode\": isoCode\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/language', langData);\n // Returns the id of the created language\n return response.headers().location.split(\"/\").pop();\n }\n\n async get(isoCode: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/language/' + isoCode);\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async getByName(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/language?skip=0&take=100000');\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.isoCode !== null) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/language/' + sb.isoCode);\n return await response.json();\n }\n }\n }\n return null;\n }\n\n async exists(isoCode: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/language/' + isoCode);\n return response.status() === 200;\n }\n\n async update(isoCode: string, language: object) {\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/language/' + isoCode, language);\n }\n\n async delete(isoCode: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/language/' + isoCode);\n }\n}"]}
1
+ {"version":3,"file":"LanguageApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/LanguageApiHelper.ts"],"names":[],"mappings":";;;AAEA,MAAa,kBAAkB;IAC7B,GAAG,CAAY;IAEf,YAAY,GAAe;QACzB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,SAAS,GAAG,KAAK,EAAE,WAAW,GAAG,KAAK,EAAE,OAAe,EAAE,eAAe,GAAG,OAAO;QAC3G,MAAM,QAAQ,GAAG;YACf,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,SAAS;YACtB,aAAa,EAAE,WAAW;YAC1B,iBAAiB,EAAE,eAAe;YAClC,SAAS,EAAE,OAAO;SACnB,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,qCAAqC,EAAE,QAAQ,CAAC,CAAC;QACzG,yCAAyC;QACzC,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,OAAe;QACvB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,sCAAsC,GAAG,OAAO,CAAC,CAAC;QACzG,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,wDAAwD,CAAC,CAAC;QACjH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEnC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE;YAC3B,IAAI,EAAE,CAAC,IAAI,KAAK,IAAI,EAAE;gBACpB,IAAI,EAAE,CAAC,OAAO,KAAK,IAAI,EAAE;oBACvB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,sCAAsC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;oBAC5G,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;iBAC9B;aACF;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAe;QAC1B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,sCAAsC,GAAG,OAAO,CAAC,CAAC;QACzG,OAAO,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAe,EAAE,QAAgB;QAC5C,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,sCAAsC,GAAG,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC3G,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAe;QAC1B,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,sCAAsC,GAAG,OAAO,CAAC,CAAC;IACpG,CAAC;CACF;AAzDD,gDAyDC","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\n\nexport class LanguagesApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async create(name: string, isDefault = false, isMandatory = false, isoCode: string, fallbackIsoCode = \"en-US\") {\n const langData = {\n \"name\": name,\n \"isDefault\": isDefault,\n \"isMandatory\": isMandatory,\n \"fallbackIsoCode\": fallbackIsoCode,\n \"isoCode\": isoCode\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/language', langData);\n // Returns the id of the created language\n return response.headers().location.split(\"/\").pop();\n }\n\n async get(isoCode: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/language/' + isoCode);\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async getByName(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/language?skip=0&take=100000');\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.isoCode !== null) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/language/' + sb.isoCode);\n return await response.json();\n }\n }\n }\n return null;\n }\n\n async exists(isoCode: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/language/' + isoCode);\n return response.status() === 200;\n }\n\n async update(isoCode: string, language: object) {\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/language/' + isoCode, language);\n }\n\n async delete(isoCode: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/language/' + isoCode);\n }\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"PackageApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/PackageApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\n\nexport class PackageApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async ensureNameNotExists(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/package/created?skip=0&take=10000');\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.id !== null) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/package/created/' + sb.id);\n }\n }\n }\n return null;\n }\n\n async exists(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/package/created/' + id);\n return response.status() === 200;\n }\n\n async nameExists(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/package/created?skip=0&take=10000');\n const json = await response.json();\n\n if (name !== null) {\n for (const sb of json.items) {\n if (sb.name === name) {\n return true;\n }\n }\n }\n return false;\n }\n\n async create(name: string, contentLoadChildNodes = true, mediaLoadChildNodes = true, contentNodeId?: string, mediaIds?: string[], documentTypes?, mediaTypes?, dataTypes?, templates?, partialViews?, stylesheets?, scripts?, languages?, dictionaryItems?) {\n const packageData = {\n \"name\": name,\n \"contentNodeId\": contentNodeId,\n \"contentLoadChildNodes\": contentLoadChildNodes,\n \"mediaIds\": mediaIds,\n \"mediaLoadChildNodes\": mediaLoadChildNodes,\n \"documentTypes\": [\n documentTypes\n ],\n \"mediaTypes\": [\n mediaTypes\n ],\n \"dataTypes\": [\n dataTypes\n ],\n \"templates\": [\n templates\n ],\n \"partialViews\": [\n partialViews\n ],\n \"stylesheets\": [\n stylesheets\n ],\n \"scripts\": [\n scripts\n ],\n \"languages\": [\n languages\n ],\n \"dictionaryItems\": [\n dictionaryItems\n ]\n };\n\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/package/created', packageData);\n // Returns the id of the created package\n return response.headers().location.split(\"/\").pop();\n }\n\n async getByName(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/package/created?skip=0&take=10000');\n const json = await response.json();\n\n if (name !== null) {\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.id !== null) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/package/created/' + sb.id);\n return await response.json();\n }\n }\n }\n }\n return null;\n }\n\n async get(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/package/created/' + id);const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n \n }\n\n async getAll() {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/package/created?skip=0&take=10000');\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async update(id: string, packageData) {\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/package/created/' + id, packageData);\n }\n\n async delete(id: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/package/created/' + id);\n }\n\n async download(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/package/created/' + id + '/download');\n return await response.text();\n }\n}"]}
1
+ {"version":3,"file":"PackageApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/PackageApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\n\nexport class PackageApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async ensureNameNotExists(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/package/created?skip=0&take=10000');\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.id !== null) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/package/created/' + sb.id);\n }\n }\n }\n return null;\n }\n\n async exists(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/package/created/' + id);\n return response.status() === 200;\n }\n\n async nameExists(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/package/created?skip=0&take=10000');\n const json = await response.json();\n\n if (name !== null) {\n for (const sb of json.items) {\n if (sb.name === name) {\n return true;\n }\n }\n }\n return false;\n }\n\n async create(name: string, contentLoadChildNodes = true, mediaLoadChildNodes = true, contentNodeId?: string, mediaIds?: string[], documentTypes?, mediaTypes?, dataTypes?, templates?, partialViews?, stylesheets?, scripts?, languages?, dictionaryItems?) {\n const packageData = {\n \"name\": name,\n \"contentNodeId\": contentNodeId,\n \"contentLoadChildNodes\": contentLoadChildNodes,\n \"mediaIds\": mediaIds,\n \"mediaLoadChildNodes\": mediaLoadChildNodes,\n \"documentTypes\": [\n documentTypes\n ],\n \"mediaTypes\": [\n mediaTypes\n ],\n \"dataTypes\": [\n dataTypes\n ],\n \"templates\": [\n templates\n ],\n \"partialViews\": [\n partialViews\n ],\n \"stylesheets\": [\n stylesheets\n ],\n \"scripts\": [\n scripts\n ],\n \"languages\": [\n languages\n ],\n \"dictionaryItems\": [\n dictionaryItems\n ]\n };\n\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/package/created', packageData);\n // Returns the id of the created package\n return response.headers().location.split(\"/\").pop();\n }\n\n async getByName(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/package/created?skip=0&take=10000');\n const json = await response.json();\n\n if (name !== null) {\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.id !== null) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/package/created/' + sb.id);\n return await response.json();\n }\n }\n }\n }\n return null;\n }\n\n async get(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/package/created/' + id);\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n\n }\n\n async getAll() {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/package/created?skip=0&take=10000');\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async update(id: string, packageData) {\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/package/created/' + id, packageData);\n }\n\n async delete(id: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/package/created/' + id);\n }\n\n async download(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/package/created/' + id + '/download');\n return await response.text();\n }\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"PartialViewApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/PartialViewApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\n\nexport class PartialViewApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async get(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/partial-view?path=' + path);\n return await response.json();\n }\n\n async doesExist(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/partial-view?path=' + path);\n return response.status() === 200;\n }\n\n async create(name: string, content: string, parentPath: string = \"\") {\n const partialViewData = {\n \"name\": name,\n \"content\": content,\n \"parentPath\": parentPath\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/partial-view', partialViewData);\n // Returns the path of the created partialView\n return response.headers().location.split(\"=\").pop();\n }\n\n async update(partialView) {\n const partialViewData = {\n \"name\": partialView.name,\n \"content\": partialView.content,\n \"existingPath\": partialView.path\n };\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/partial-view', partialViewData);\n }\n\n async delete(path: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/partial-view?path=' + path);\n }\n\n async doesNameExist(name: string) {\n return await this.getByName(name);\n }\n\n async getChildren(path: string) {\n const response = await this.api.get(`${this.api.baseUrl}/umbraco/management/api/v1/tree/partial-view/children?path=${path}&skip=0&take=10000`);\n const items = await response.json();\n return items.items;\n }\n\n async getAllAtRoot() {\n return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/partial-view/root?skip=0&take=10000');\n }\n\n async getByName(name: string) {\n const rootPartialView = await this.getAllAtRoot();\n const jsonPartialView = await rootPartialView.json();\n\n for (const partialView of jsonPartialView.items) {\n if (partialView.name === name) {\n if (partialView.isFolder) {\n return this.getFolder(partialView.path);\n } else {\n return this.get(partialView.path);\n }\n } else if (partialView.isFolder && partialView.hasChildren) {\n const result = await this.recurseChildren(name, partialView.path, false);\n if (result) {\n return result;\n }\n }\n }\n return false;\n }\n\n async ensureNameNotExists(name: string) {\n const rootPartialView = await this.getAllAtRoot();\n const jsonPartialView = await rootPartialView.json();\n\n for (const partialView of jsonPartialView.items) {\n if (partialView.name === name) {\n if (partialView.isFolder) {\n return await this.recurseDeleteChildren(partialView);\n }\n return await this.delete(partialView.path);\n } else if (partialView.hasChildren) {\n await this.recurseChildren(name, partialView.path, true);\n }\n }\n return null;\n }\n\n private async recurseChildren(name: string, path: string, toDelete: boolean) {\n const items = await this.getChildren(path);\n\n for (const child of items) {\n if (child.name === name) {\n if (!toDelete) {\n if (child.isFolder) {\n return await this.getFolder(child.path);\n }\n return await this.get(child.path);\n }\n if (child.isFolder) {\n return await this.recurseDeleteChildren(child);\n }\n return await this.delete(child.path);\n } else if (child.hasChildren) {\n return await this.recurseChildren(name, child.path, toDelete);\n }\n }\n return false;\n }\n\n private async recurseDeleteChildren(partialViewFolder) {\n if (!partialViewFolder.hasChildren) {\n return await this.deleteFolder(partialViewFolder.path);\n }\n const items = await this.getChildren(partialViewFolder.path);\n\n for (const child of items) {\n if (child.hasChildren) {\n await this.recurseDeleteChildren(child);\n } else if (child.isFolder) {\n await this.deleteFolder(child.path);\n } else {\n await this.delete(child.path);\n }\n }\n return await this.deleteFolder(partialViewFolder.path);\n }\n\n // Folder\n async getFolder(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/folder?path=' + path);\n return await response.json();\n }\n\n async doesFolderExist(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/folder?path=' + path);\n return response.status() === 200;\n }\n\n async createFolder(name: string, parentPath = \"\") {\n const partialViewFolderData =\n {\n \"name\": name,\n \"parentPath\": parentPath\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/folder', partialViewFolderData);\n // Returns the id of the created partialViewFolder\n const json = await response.json();\n return json.path;\n }\n\n async deleteFolder(path: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/folder?path=' + path);\n }\n\n async getFolderChildren(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/partial-view/children?path=' + path + '&skip=0&take=10000');\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n}"]}
1
+ {"version":3,"file":"PartialViewApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/PartialViewApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\n\nexport class PartialViewApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async get(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/partial-view?path=' + path);\n return await response.json();\n }\n\n async doesExist(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/partial-view?path=' + path);\n return response.status() === 200;\n }\n\n async create(name: string, content: string, parentPath: string = \"\") {\n const partialViewData = {\n \"name\": name,\n \"content\": content,\n \"parentPath\": parentPath\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/partial-view', partialViewData);\n // Returns the path of the created partialView\n return response.headers().location.split(\"=\").pop();\n }\n\n async update(partialView) {\n const partialViewData = {\n \"name\": partialView.name,\n \"content\": partialView.content,\n \"existingPath\": partialView.path\n };\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/partial-view', partialViewData);\n }\n\n async delete(path: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/partial-view?path=' + path);\n }\n\n async doesNameExist(name: string) {\n return await this.getByName(name);\n }\n\n async getChildren(path: string) {\n const response = await this.api.get(`${this.api.baseUrl}/umbraco/management/api/v1/tree/partial-view/children?path=${path}&skip=0&take=10000`);\n const items = await response.json();\n return items.items;\n }\n\n async getAllAtRoot() {\n return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/partial-view/root?skip=0&take=10000');\n }\n\n async getByName(name: string) {\n const rootPartialView = await this.getAllAtRoot();\n const jsonPartialView = await rootPartialView.json();\n\n for (const partialView of jsonPartialView.items) {\n if (partialView.name === name) {\n if (partialView.isFolder) {\n return this.getFolder(partialView.path);\n } else {\n return this.get(partialView.path);\n }\n } else if (partialView.isFolder && partialView.hasChildren) {\n const result = await this.recurseChildren(name, partialView.path, false);\n if (result) {\n return result;\n }\n }\n }\n return false;\n }\n\n async ensureNameNotExists(name: string) {\n const rootPartialView = await this.getAllAtRoot();\n const jsonPartialView = await rootPartialView.json();\n\n for (const partialView of jsonPartialView.items) {\n if (partialView.name === name) {\n if (partialView.isFolder) {\n return await this.recurseDeleteChildren(partialView);\n }\n return await this.delete(partialView.path);\n } else if (partialView.hasChildren) {\n await this.recurseChildren(name, partialView.path, true);\n }\n }\n return null;\n }\n\n private async recurseChildren(name: string, path: string, toDelete: boolean) {\n const items = await this.getChildren(path);\n\n for (const child of items) {\n if (child.name === name) {\n if (!toDelete) {\n if (child.isFolder) {\n return await this.getFolder(child.path);\n }\n return await this.get(child.path);\n }\n if (child.isFolder) {\n return await this.recurseDeleteChildren(child);\n }\n return await this.delete(child.path);\n } else if (child.hasChildren) {\n return await this.recurseChildren(name, child.path, toDelete);\n }\n }\n return false;\n }\n\n private async recurseDeleteChildren(partialViewFolder) {\n if (!partialViewFolder.hasChildren) {\n return await this.deleteFolder(partialViewFolder.path);\n }\n const items = await this.getChildren(partialViewFolder.path);\n\n for (const child of items) {\n if (child.hasChildren) {\n await this.recurseDeleteChildren(child);\n } else if (child.isFolder) {\n await this.deleteFolder(child.path);\n } else {\n await this.delete(child.path);\n }\n }\n return await this.deleteFolder(partialViewFolder.path);\n }\n\n // Folder\n async getFolder(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/folder?path=' + path);\n return await response.json();\n }\n\n async doesFolderExist(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/folder?path=' + path);\n return response.status() === 200;\n }\n\n async createFolder(name: string, parentPath = \"\") {\n const partialViewFolderData =\n {\n \"name\": name,\n \"parentPath\": parentPath\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/folder', partialViewFolderData);\n // Returns the id of the created partialViewFolder\n const json = await response.json();\n return json.path;\n }\n\n async deleteFolder(path: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/folder?path=' + path);\n }\n\n async getFolderChildren(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/partial-view/children?path=' + path + '&skip=0&take=10000');\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n}"]}
@@ -1,41 +1,25 @@
1
1
  import { Page } from "@playwright/test";
2
2
  export declare class PartialViewUiHelper {
3
3
  private readonly page;
4
+ private readonly uiBaseLocators;
4
5
  private readonly newEmptyPartialViewBtn;
5
6
  private readonly newPartialViewFromSnippetBtn;
6
- private readonly createFolderBtn;
7
- private readonly saveBtn;
8
- private readonly partialViewContentTxt;
9
7
  private readonly partialViewNameTxt;
10
- private readonly breadcrumbButton;
11
- private readonly folderNameTxt;
12
- private readonly caretBtn;
13
- private readonly deleteBtn;
14
- private readonly confirmToDeleteBtn;
15
- private readonly removeFolderBtn;
16
- private readonly confirmCreateFolderBtn;
17
- private readonly queryBuilderButton;
18
- private readonly whereDropdown;
19
- private readonly createDateOption;
20
- private readonly submitBtn;
21
- private readonly insertBtn;
22
- private readonly dictionaryItemBtn;
23
- private readonly caretDictionaryBtn;
24
8
  constructor(page: Page);
25
- openActionsMenuForName(name: string): Promise<void>;
26
- openActionsMenuAtRoot(): Promise<void>;
9
+ clickActionsMenuForPartialView(name: string): Promise<void>;
10
+ clickActionsMenuAtRoot(): Promise<void>;
27
11
  clickRootFolderCaretButton(): Promise<void>;
28
12
  clickCaretButtonForName(name: string): Promise<void>;
29
13
  clickNewEmptyPartialViewButton(): Promise<void>;
30
14
  clickNewPartialViewFromSnippetButton(): Promise<void>;
31
15
  clickSaveButton(): Promise<void>;
32
16
  clickBreadcrumbButton(): Promise<void>;
33
- createNewFolder(folderName: string): Promise<void>;
17
+ createFolder(folderName: string): Promise<void>;
34
18
  enterPartialViewName(partialViewName: string): Promise<void>;
35
19
  enterPartialViewContent(partialViewContent: string): Promise<void>;
36
- openPartialViewFileAtRoot(partialViewFileName: string): Promise<void>;
37
- deletePartialViewFile(): Promise<void>;
38
- removeFolder(): Promise<void>;
39
- addQueryBuilderIntoPartialView(): Promise<void>;
40
- insertDictionaryItem(dictionaryName: string): Promise<void>;
20
+ openPartialViewAtRoot(partialViewName: string): Promise<void>;
21
+ deletePartialView(): Promise<void>;
22
+ deleteFolder(): Promise<void>;
23
+ addQueryBuilderIntoPartialViewWithCreateDateOption(): Promise<void>;
24
+ insertDictionaryByName(dictionaryName: string): Promise<void>;
41
25
  }
@@ -1,62 +1,31 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PartialViewUiHelper = void 0;
4
+ const UiBaseLocators_1 = require("./UiBaseLocators");
4
5
  class PartialViewUiHelper {
5
6
  page;
7
+ uiBaseLocators;
6
8
  newEmptyPartialViewBtn;
7
9
  newPartialViewFromSnippetBtn;
8
- createFolderBtn;
9
- saveBtn;
10
- partialViewContentTxt;
11
10
  partialViewNameTxt;
12
- breadcrumbButton;
13
- folderNameTxt;
14
- caretBtn;
15
- deleteBtn;
16
- confirmToDeleteBtn;
17
- removeFolderBtn;
18
- confirmCreateFolderBtn;
19
- queryBuilderButton;
20
- whereDropdown;
21
- createDateOption;
22
- submitBtn;
23
- insertBtn;
24
- dictionaryItemBtn;
25
- caretDictionaryBtn;
26
11
  constructor(page) {
27
12
  this.page = page;
13
+ this.uiBaseLocators = new UiBaseLocators_1.UiBaseLocators(this.page);
28
14
  this.newEmptyPartialViewBtn = page.getByLabel('New empty partial view');
29
15
  this.newPartialViewFromSnippetBtn = page.getByLabel('New partial view from snippet...');
30
- this.createFolderBtn = page.getByLabel('Create folder');
31
- this.saveBtn = page.getByLabel('Save');
32
16
  this.partialViewNameTxt = page.getByLabel('template name');
33
- this.folderNameTxt = page.getByRole('textbox', { name: 'Enter folder name...' });
34
- this.caretBtn = page.locator('umb-tree-item').filter({ hasText: 'Partial Views' }).locator('#caret-button');
35
- this.deleteBtn = page.getByRole('button', { name: 'Delete' });
36
- this.confirmToDeleteBtn = page.locator('#confirm').getByLabel('Delete');
37
- this.removeFolderBtn = page.getByLabel('Remove folder');
38
- this.confirmCreateFolderBtn = page.locator('#confirm').getByLabel('Create folder');
39
- this.breadcrumbButton = page.getByLabel('Breadcrumb');
40
- this.partialViewContentTxt = page.locator('textarea.inputarea');
41
- this.queryBuilderButton = page.locator('#query-builder-button').getByLabel('Query builder');
42
- this.whereDropdown = page.locator('#property-alias-dropdown').getByLabel('Property alias');
43
- this.createDateOption = page.locator('#property-alias-dropdown').getByText('CreateDate');
44
- this.submitBtn = page.getByLabel('Submit');
45
- this.insertBtn = page.getByLabel('Choose value to insert');
46
- this.dictionaryItemBtn = page.getByLabel('Insert Dictionary item');
47
- this.caretDictionaryBtn = page.locator('umb-tree-picker-modal').locator('#caret-button');
48
- }
49
- async openActionsMenuForName(name) {
50
- await this.page.locator('umb-tree-item').locator('[label="' + name + '"] >> [label="Open actions menu"]').click();
51
- }
52
- async openActionsMenuAtRoot() {
53
- await this.openActionsMenuForName("Partial Views");
17
+ }
18
+ async clickActionsMenuForPartialView(name) {
19
+ await this.uiBaseLocators.clickActionsMenuForName(name);
20
+ }
21
+ async clickActionsMenuAtRoot() {
22
+ await this.clickActionsMenuForPartialView("Partial Views");
54
23
  }
55
24
  async clickRootFolderCaretButton() {
56
- await this.caretBtn.click();
25
+ await this.uiBaseLocators.clickCaretButtonForName("Partial Views");
57
26
  }
58
27
  async clickCaretButtonForName(name) {
59
- await this.page.locator('umb-tree-item >> [label="' + name + '"]').locator('#caret-button').click();
28
+ await this.uiBaseLocators.clickCaretButtonForName(name);
60
29
  }
61
30
  async clickNewEmptyPartialViewButton() {
62
31
  await this.newEmptyPartialViewBtn.click();
@@ -65,50 +34,40 @@ class PartialViewUiHelper {
65
34
  await this.newPartialViewFromSnippetBtn.click();
66
35
  }
67
36
  async clickSaveButton() {
68
- await this.saveBtn.click();
37
+ await this.uiBaseLocators.clickSaveButton();
69
38
  }
70
39
  async clickBreadcrumbButton() {
71
- await this.breadcrumbButton.click();
40
+ await this.uiBaseLocators.clickBreadcrumbButton();
72
41
  }
73
- async createNewFolder(folderName) {
74
- await this.createFolderBtn.click();
75
- await this.folderNameTxt.fill(folderName);
76
- await this.confirmCreateFolderBtn.click();
42
+ async createFolder(folderName) {
43
+ await this.uiBaseLocators.clickCreateFolderButton();
44
+ await this.uiBaseLocators.folderNameTxt.fill(folderName);
45
+ await this.uiBaseLocators.clickConfirmCreateFolderButton();
77
46
  }
78
47
  async enterPartialViewName(partialViewName) {
79
48
  await this.partialViewNameTxt.clear();
80
49
  await this.partialViewNameTxt.fill(partialViewName);
81
50
  }
82
51
  async enterPartialViewContent(partialViewContent) {
83
- await this.partialViewContentTxt.clear();
84
- await this.partialViewContentTxt.fill(partialViewContent);
85
- }
86
- async openPartialViewFileAtRoot(partialViewFileName) {
87
- await this.caretBtn.click();
88
- await this.page.getByLabel(partialViewFileName).click();
89
- }
90
- async deletePartialViewFile() {
91
- await this.deleteBtn.click();
92
- await this.confirmToDeleteBtn.click();
93
- }
94
- async removeFolder() {
95
- await this.removeFolderBtn.click();
96
- await this.confirmToDeleteBtn.click();
97
- }
98
- async addQueryBuilderIntoPartialView() {
99
- await this.queryBuilderButton.click({ force: true });
100
- // TODO: Remove this timeout when frontend validation is implemented
101
- await this.page.waitForTimeout(1000);
102
- await this.whereDropdown.click({ force: true });
103
- await this.createDateOption.click();
104
- await this.submitBtn.click();
105
- }
106
- async insertDictionaryItem(dictionaryName) {
107
- await this.insertBtn.click();
108
- await this.dictionaryItemBtn.click();
109
- await this.caretDictionaryBtn.click();
110
- await this.page.getByLabel(dictionaryName).click();
111
- await this.submitBtn.click();
52
+ await this.uiBaseLocators.textAreaInputArea.clear();
53
+ await this.uiBaseLocators.textAreaInputArea.fill(partialViewContent);
54
+ }
55
+ async openPartialViewAtRoot(partialViewName) {
56
+ await this.clickRootFolderCaretButton();
57
+ await this.page.getByLabel(partialViewName).click();
58
+ }
59
+ async deletePartialView() {
60
+ await this.uiBaseLocators.clickDeleteButton();
61
+ await this.uiBaseLocators.clickConfirmToDeleteButton();
62
+ }
63
+ async deleteFolder() {
64
+ await this.uiBaseLocators.deleteFolder();
65
+ }
66
+ async addQueryBuilderIntoPartialViewWithCreateDateOption() {
67
+ await this.uiBaseLocators.addQueryBuilderWithCreateDateOption();
68
+ }
69
+ async insertDictionaryByName(dictionaryName) {
70
+ await this.uiBaseLocators.insertDictionaryByName(dictionaryName);
112
71
  }
113
72
  }
114
73
  exports.PartialViewUiHelper = PartialViewUiHelper;
@@ -1 +1 @@
1
- {"version":3,"file":"PartialViewUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/PartialViewUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {Page, Locator} from \"@playwright/test\"\n\nexport class PartialViewUiHelper {\n\n private readonly page: Page;\n private readonly newEmptyPartialViewBtn: Locator;\n private readonly newPartialViewFromSnippetBtn: Locator;\n private readonly createFolderBtn: Locator;\n private readonly saveBtn: Locator;\n private readonly partialViewContentTxt: Locator;\n private readonly partialViewNameTxt: Locator;\n private readonly breadcrumbButton: 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 private readonly queryBuilderButton: Locator;\n private readonly whereDropdown: Locator;\n private readonly createDateOption: Locator;\n private readonly submitBtn: Locator;\n private readonly insertBtn: Locator;\n private readonly dictionaryItemBtn: Locator;\n private readonly caretDictionaryBtn: Locator; \n\n constructor(page: Page) {\n this.page = page;\n this.newEmptyPartialViewBtn = page.getByLabel('New empty partial view');\n this.newPartialViewFromSnippetBtn = page.getByLabel('New partial view from snippet...');\n this.createFolderBtn = page.getByLabel('Create folder');\n this.saveBtn = page.getByLabel('Save');\n this.partialViewNameTxt = page.getByLabel('template name');\n this.folderNameTxt = page.getByRole('textbox', { name: 'Enter folder name...' });\n this.caretBtn = page.locator('umb-tree-item').filter({ hasText: 'Partial Views' }).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 this.breadcrumbButton = page.getByLabel('Breadcrumb');\n this.partialViewContentTxt = page.locator('textarea.inputarea');\n this.queryBuilderButton = page.locator('#query-builder-button').getByLabel('Query builder');\n this.whereDropdown = page.locator('#property-alias-dropdown').getByLabel('Property alias');\n this.createDateOption = page.locator('#property-alias-dropdown').getByText('CreateDate');\n this.submitBtn = page.getByLabel('Submit');\n this.insertBtn = page.getByLabel('Choose value to insert');\n this.dictionaryItemBtn = page.getByLabel('Insert Dictionary item');\n this.caretDictionaryBtn = page.locator('umb-tree-picker-modal').locator('#caret-button');\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(\"Partial Views\");\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 clickNewEmptyPartialViewButton() {\n await this.newEmptyPartialViewBtn.click();\n }\n\n async clickNewPartialViewFromSnippetButton() {\n await this.newPartialViewFromSnippetBtn.click();\n }\n\n async clickSaveButton() {\n await this.saveBtn.click();\n }\n\n async clickBreadcrumbButton() {\n await this.breadcrumbButton.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 enterPartialViewName(partialViewName : string) {\n await this.partialViewNameTxt.clear();\n await this.partialViewNameTxt.fill(partialViewName);\n }\n\n async enterPartialViewContent(partialViewContent : string) {\n await this.partialViewContentTxt.clear();\n await this.partialViewContentTxt.fill(partialViewContent);\n }\n\n async openPartialViewFileAtRoot(partialViewFileName : string) {\n await this.caretBtn.click();\n await this.page.getByLabel(partialViewFileName).click();\n }\n\n async deletePartialViewFile() {\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\n async addQueryBuilderIntoPartialView() {\n await this.queryBuilderButton.click({force:true});\n // TODO: Remove this timeout when frontend validation is implemented\n await this.page.waitForTimeout(1000);\n await this.whereDropdown.click({force:true});\n await this.createDateOption.click();\n await this.submitBtn.click();\n }\n\n async insertDictionaryItem(dictionaryName : string) {\n await this.insertBtn.click();\n await this.dictionaryItemBtn.click();\n await this.caretDictionaryBtn.click();\n await this.page.getByLabel(dictionaryName).click();\n await this.submitBtn.click();\n }\n}"]}
1
+ {"version":3,"file":"PartialViewUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/PartialViewUiHelper.ts"],"names":[],"mappings":";;;AACA,qDAAgD;AAEhD,MAAa,mBAAmB;IACb,IAAI,CAAO;IACX,cAAc,CAAiB;IAC/B,sBAAsB,CAAU;IAChC,4BAA4B,CAAU;IACtC,kBAAkB,CAAU;IAE7C,YAAY,IAAU;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,cAAc,GAAG,IAAI,+BAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAC;QACxE,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC,UAAU,CAAC,kCAAkC,CAAC,CAAC;QACxF,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,8BAA8B,CAAC,IAAY;QAC/C,MAAM,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,sBAAsB;QAC1B,MAAM,IAAI,CAAC,8BAA8B,CAAC,eAAe,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,0BAA0B;QAC9B,MAAM,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAAC,eAAe,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,IAAY;QACxC,MAAM,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,8BAA8B;QAClC,MAAM,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,oCAAoC;QACxC,MAAM,IAAI,CAAC,4BAA4B,CAAC,KAAK,EAAE,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,qBAAqB;QACzB,MAAM,IAAI,CAAC,cAAc,CAAC,qBAAqB,EAAE,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,UAAkB;QACnC,MAAM,IAAI,CAAC,cAAc,CAAC,uBAAuB,EAAE,CAAA;QACnD,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzD,MAAM,IAAI,CAAC,cAAc,CAAC,8BAA8B,EAAE,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,eAAuB;QAChD,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;QACtC,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,kBAA0B;QACtD,MAAM,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QACpD,MAAM,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,eAAuB;QACjD,MAAM,IAAI,CAAC,0BAA0B,EAAE,CAAC;QACxC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,MAAM,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,CAAC;QAC9C,MAAM,IAAI,CAAC,cAAc,CAAC,0BAA0B,EAAE,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,kDAAkD;QACtD,MAAM,IAAI,CAAC,cAAc,CAAC,mCAAmC,EAAE,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,cAAsB;QACjD,MAAM,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC;IACnE,CAAC;CACF;AApFD,kDAoFC","sourcesContent":["import {Page, Locator} from \"@playwright/test\"\nimport {UiBaseLocators} from \"./UiBaseLocators\";\n\nexport class PartialViewUiHelper {\n private readonly page: Page;\n private readonly uiBaseLocators: UiBaseLocators;\n private readonly newEmptyPartialViewBtn: Locator;\n private readonly newPartialViewFromSnippetBtn: Locator;\n private readonly partialViewNameTxt: Locator;\n\n constructor(page: Page) {\n this.page = page;\n this.uiBaseLocators = new UiBaseLocators(this.page);\n this.newEmptyPartialViewBtn = page.getByLabel('New empty partial view');\n this.newPartialViewFromSnippetBtn = page.getByLabel('New partial view from snippet...');\n this.partialViewNameTxt = page.getByLabel('template name');\n }\n\n async clickActionsMenuForPartialView(name: string) {\n await this.uiBaseLocators.clickActionsMenuForName(name);\n }\n\n async clickActionsMenuAtRoot() {\n await this.clickActionsMenuForPartialView(\"Partial Views\");\n }\n\n async clickRootFolderCaretButton() {\n await this.uiBaseLocators.clickCaretButtonForName(\"Partial Views\");\n }\n\n async clickCaretButtonForName(name: string) {\n await this.uiBaseLocators.clickCaretButtonForName(name);\n }\n\n async clickNewEmptyPartialViewButton() {\n await this.newEmptyPartialViewBtn.click();\n }\n\n async clickNewPartialViewFromSnippetButton() {\n await this.newPartialViewFromSnippetBtn.click();\n }\n\n async clickSaveButton() {\n await this.uiBaseLocators.clickSaveButton();\n }\n\n async clickBreadcrumbButton() {\n await this.uiBaseLocators.clickBreadcrumbButton();\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 enterPartialViewName(partialViewName: string) {\n await this.partialViewNameTxt.clear();\n await this.partialViewNameTxt.fill(partialViewName);\n }\n\n async enterPartialViewContent(partialViewContent: string) {\n await this.uiBaseLocators.textAreaInputArea.clear();\n await this.uiBaseLocators.textAreaInputArea.fill(partialViewContent);\n }\n\n async openPartialViewAtRoot(partialViewName: string) {\n await this.clickRootFolderCaretButton();\n await this.page.getByLabel(partialViewName).click();\n }\n\n async deletePartialView() {\n await this.uiBaseLocators.clickDeleteButton();\n await this.uiBaseLocators.clickConfirmToDeleteButton();\n }\n\n async deleteFolder() {\n await this.uiBaseLocators.deleteFolder();\n }\n\n async addQueryBuilderIntoPartialViewWithCreateDateOption() {\n await this.uiBaseLocators.addQueryBuilderWithCreateDateOption();\n }\n\n async insertDictionaryByName(dictionaryName: string) {\n await this.uiBaseLocators.insertDictionaryByName(dictionaryName);\n }\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ScriptApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/ScriptApiHelper.ts"],"names":[],"mappings":";;;AAEA,MAAa,eAAe;IACxB,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,yCAAyC,GAAG,IAAI,CAAC,CAAC;QACzG,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,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,yCAAyC,GAAG,IAAI,CAAC,CAAC;QACzG,OAAO,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,OAAe,EAAE,aAAqB,EAAE;QAC/D,MAAM,UAAU,GAAG;YACf,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,mCAAmC,EAAE,UAAU,CAAC,CAAC;QACzG,yCAAyC;QACzC,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAM;QACf,MAAM,UAAU,GAAG;YACf,MAAM,EAAE,MAAM,CAAC,IAAI;YACnB,SAAS,EAAE,MAAM,CAAC,OAAO;YACzB,cAAc,EAAE,MAAM,CAAC,IAAI;SAC9B,CAAC;QACF,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,mCAAmC,EAAE,UAAU,CAAC,CAAC;IAClG,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY;QACrB,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,yCAAyC,GAAG,IAAI,CAAC,CAAC;IACtG,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAY;QAC1B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,wDAAwD,IAAI,oBAAoB,CAAC,CAAC;QACzI,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC,KAAK,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,KAAe;QAC1B,IAAI,SAAS,GAAG,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACnC,IAAI,CAAS,CAAC;QAEd,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;YAC/B,SAAS,IAAI,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;SACpC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,8CAA8C,GAAG,SAAS,CAAC,CAAC;QACnH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,IAAI,KAAK,IAAI,EAAE;YACf,OAAO,IAAI,CAAC;SACf;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,YAAY;QACd,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,+DAA+D,CAAC,CAAC;IAClH,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAAY;QAC5B,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAY;QACxB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC9C,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;QAE7C,KAAK,MAAM,MAAM,IAAI,WAAW,CAAC,KAAK,EAAE;YACpC,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE;gBACtB,IAAI,MAAM,CAAC,QAAQ,EAAE;oBACjB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;iBACtC;qBAAM;oBACH,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;iBAChC;aACJ;iBAAM,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,WAAW,EAAE;gBAC9C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACpE,IAAI,MAAM,EAAE;oBACR,OAAO,MAAM,CAAC;iBACjB;aACJ;SACJ;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,YAAY;QAC5C,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;YAC3B,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;SACrD;QACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAExD,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,YAAY,CAAC,IAAI,CAAC,CAAC;IACtD,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;IAED,KAAK,CAAC,mBAAmB,CAAC,IAAY;QAClC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC9C,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;QAE7C,KAAK,MAAM,MAAM,IAAI,WAAW,CAAC,KAAK,EAAE;YACpC,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE;gBACtB,IAAI,MAAM,CAAC,QAAQ,EAAE;oBACjB,OAAO,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;iBACnD;gBACD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aACzC;iBAAM,IAAI,MAAM,CAAC,WAAW,EAAE;gBAC3B,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aAEvD;SACJ;QACD,OAAO,IAAI,CAAC;IAChB,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,gDAAgD,GAAG,IAAI,CAAC,CAAC;QAChH,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,IAAY;QAC9B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,gDAAgD,GAAG,IAAI,CAAC,CAAC;QAChH,OAAO,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAY,EAAE,UAAU,GAAG,EAAE;QAC5C,MAAM,gBAAgB,GAClB;YACI,MAAM,EAAE,IAAI;YACZ,YAAY,EAAE,UAAU;SAC3B,CAAC;QACN,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,0CAA0C,EAAE,gBAAgB,CAAC,CAAC;QACtH,+CAA+C;QAC/C,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,gDAAgD,GAAG,IAAI,CAAC,CAAC;IAC7G,CAAC;CACJ;AArLD,0CAqLC","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\n\nexport class ScriptApiHelper {\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/script?path=' + path);\n const json = await response.json();\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/script?path=' + path);\n return response.status() === 200;\n }\n\n async create(name: string, content: string, parentPath: string = \"\") {\n const scriptData = {\n \"name\": name,\n \"content\": content,\n \"parentPath\": parentPath\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/script', scriptData);\n // Returns the path of the created Script\n return response.headers().location.split(\"=\").pop();\n }\n\n async update(script) {\n const scriptData = {\n \"name\": script.name,\n \"content\": script.content,\n \"existingPath\": script.path\n };\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/script', scriptData);\n }\n\n async delete(path: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/script?path=' + path);\n }\n\n async getChildren(path: string) {\n const response = await this.api.get(`${this.api.baseUrl}/umbraco/management/api/v1/tree/script/children?path=${path}&skip=0&take=10000`);\n const items = await response.json();\n return items.items;\n }\n\n async getItems(paths: string[]) {\n let pathArray = 'path=' + paths[0];\n let i: number;\n\n for (i = 1; i < paths.length; ++i) {\n pathArray += '&path=' + paths[i];\n }\n\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/script/item?' + pathArray);\n const json = await response.json();\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/script/root?skip=0&take=10000');\n }\n\n async doesNameExist(name: string) {\n return await this.getByName(name);\n }\n\n async getByName(name: string) {\n const rootScripts = await this.getAllAtRoot();\n const jsonScripts = await rootScripts.json();\n\n for (const script of jsonScripts.items) {\n if (script.name === name) {\n if (script.isFolder) {\n return this.getFolder(script.path);\n } else {\n return this.get(script.path);\n }\n } else if (script.isFolder && script.hasChildren) {\n const result = await this.recurseChildren(name, script.path, false);\n if (result) {\n return result;\n }\n }\n }\n return false;\n }\n\n private async recurseDeleteChildren(scriptFolder) {\n if (!scriptFolder.hasChildren) {\n return await this.deleteFolder(scriptFolder.path);\n }\n const items = await this.getChildren(scriptFolder.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(scriptFolder.path);\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 async ensureNameNotExists(name: string) {\n const rootScripts = await this.getAllAtRoot();\n const jsonScripts = await rootScripts.json();\n\n for (const script of jsonScripts.items) {\n if (script.name === name) {\n if (script.isFolder) {\n return await this.recurseDeleteChildren(script);\n }\n return await this.delete(script.path);\n } else if (script.hasChildren) {\n await this.recurseChildren(name, script.path, true);\n\n }\n }\n return null;\n }\n\n // Folder\n async getFolder(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/script/folder?path=' + path);\n return await response.json();\n }\n\n async doesFolderExist(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/script/folder?path=' + path);\n return response.status() === 200;\n }\n\n async createFolder(name: string, parentPath = \"\") {\n const scriptFolderData =\n {\n \"name\": name,\n \"parentPath\": parentPath\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/script/folder', scriptFolderData);\n // Returns the path of the created scriptFolder\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/script/folder?path=' + path);\n }\n}"]}
1
+ {"version":3,"file":"ScriptApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/ScriptApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\n\nexport class ScriptApiHelper {\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/script?path=' + path);\n const json = await response.json();\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/script?path=' + path);\n return response.status() === 200;\n }\n\n async create(name: string, content: string, parentPath: string = \"\") {\n const scriptData = {\n \"name\": name,\n \"content\": content,\n \"parentPath\": parentPath\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/script', scriptData);\n // Returns the path of the created Script\n return response.headers().location.split(\"=\").pop();\n }\n\n async update(script) {\n const scriptData = {\n \"name\": script.name,\n \"content\": script.content,\n \"existingPath\": script.path\n };\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/script', scriptData);\n }\n\n async delete(path: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/script?path=' + path);\n }\n\n async getChildren(path: string) {\n const response = await this.api.get(`${this.api.baseUrl}/umbraco/management/api/v1/tree/script/children?path=${path}&skip=0&take=10000`);\n const items = await response.json();\n return items.items;\n }\n\n async getItems(paths: string[]) {\n let pathArray = 'path=' + paths[0];\n let i: number;\n\n for (i = 1; i < paths.length; ++i) {\n pathArray += '&path=' + paths[i];\n }\n\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/script/item?' + pathArray);\n const json = await response.json();\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/script/root?skip=0&take=10000');\n }\n\n async doesNameExist(name: string) {\n return await this.getByName(name);\n }\n\n async getByName(name: string) {\n const rootScripts = await this.getAllAtRoot();\n const jsonScripts = await rootScripts.json();\n\n for (const script of jsonScripts.items) {\n if (script.name === name) {\n if (script.isFolder) {\n return this.getFolder(script.path);\n } else {\n return this.get(script.path);\n }\n } else if (script.isFolder && script.hasChildren) {\n const result = await this.recurseChildren(name, script.path, false);\n if (result) {\n return result;\n }\n }\n }\n return false;\n }\n\n private async recurseDeleteChildren(scriptFolder) {\n if (!scriptFolder.hasChildren) {\n return await this.deleteFolder(scriptFolder.path);\n }\n const items = await this.getChildren(scriptFolder.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(scriptFolder.path);\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 async ensureNameNotExists(name: string) {\n const rootScripts = await this.getAllAtRoot();\n const jsonScripts = await rootScripts.json();\n\n for (const script of jsonScripts.items) {\n if (script.name === name) {\n if (script.isFolder) {\n return await this.recurseDeleteChildren(script);\n }\n return await this.delete(script.path);\n } else if (script.hasChildren) {\n await this.recurseChildren(name, script.path, true);\n\n }\n }\n return null;\n }\n\n // Folder\n async getFolder(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/script/folder?path=' + path);\n return await response.json();\n }\n\n async doesFolderExist(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/script/folder?path=' + path);\n return response.status() === 200;\n }\n\n async createFolder(name: string, parentPath = \"\") {\n const scriptFolderData =\n {\n \"name\": name,\n \"parentPath\": parentPath\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/script/folder', scriptFolderData);\n // Returns the path of the created scriptFolder\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/script/folder?path=' + path);\n }\n}"]}
@@ -0,0 +1,22 @@
1
+ import { Page } from "@playwright/test";
2
+ export declare class ScriptUiHelper {
3
+ private readonly page;
4
+ private readonly uiBaseLocators;
5
+ private readonly newEmptyScriptBtn;
6
+ private readonly insertScriptName;
7
+ private readonly insertFolderName;
8
+ constructor(page: Page);
9
+ clickActionsMenuForScript(name: string): Promise<void>;
10
+ clickActionsMenuAtRoot(): Promise<void>;
11
+ clickRootFolderCaretButton(): Promise<void>;
12
+ clickCaretButtonForName(name: string): Promise<void>;
13
+ clickNewScriptButton(): Promise<void>;
14
+ goToScript(scriptName: string): Promise<void>;
15
+ clickSaveButton(): Promise<void>;
16
+ createFolder(folderName: string): Promise<void>;
17
+ enterScriptName(scriptContent: string): Promise<void>;
18
+ enterScriptContent(scriptContent: string): Promise<void>;
19
+ openScriptAtRoot(scriptName: string): Promise<void>;
20
+ deleteScript(): Promise<void>;
21
+ deleteFolder(): Promise<void>;
22
+ }
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ScriptUiHelper = void 0;
4
+ const UiBaseLocators_1 = require("./UiBaseLocators");
5
+ const ConstantHelper_1 = require("./ConstantHelper");
6
+ class ScriptUiHelper {
7
+ page;
8
+ uiBaseLocators;
9
+ newEmptyScriptBtn;
10
+ insertScriptName;
11
+ insertFolderName;
12
+ constructor(page) {
13
+ this.page = page;
14
+ this.uiBaseLocators = new UiBaseLocators_1.UiBaseLocators(this.page);
15
+ this.newEmptyScriptBtn = page.getByLabel('New empty script');
16
+ this.insertScriptName = page.getByLabel('template name');
17
+ this.insertFolderName = page.locator('[headline="Create Folder"] >> input');
18
+ }
19
+ async clickActionsMenuForScript(name) {
20
+ await this.uiBaseLocators.clickActionsMenuForName(name);
21
+ }
22
+ async clickActionsMenuAtRoot() {
23
+ await this.clickActionsMenuForScript("Scripts");
24
+ }
25
+ async clickRootFolderCaretButton() {
26
+ await this.uiBaseLocators.clickCaretButtonForName("Scripts");
27
+ }
28
+ async clickCaretButtonForName(name) {
29
+ await this.uiBaseLocators.clickCaretButtonForName(name);
30
+ }
31
+ async clickNewScriptButton() {
32
+ await this.newEmptyScriptBtn.click();
33
+ }
34
+ // Will only work for root scripts
35
+ async goToScript(scriptName) {
36
+ await this.uiBaseLocators.goToSection(ConstantHelper_1.ConstantHelper.sections.settings);
37
+ await this.clickActionsMenuAtRoot();
38
+ await this.page.getByLabel(scriptName).click({ force: true });
39
+ }
40
+ async clickSaveButton() {
41
+ await this.uiBaseLocators.clickSaveButton();
42
+ }
43
+ async createFolder(folderName) {
44
+ await this.uiBaseLocators.clickCreateFolderButton();
45
+ await this.insertFolderName.fill(folderName);
46
+ await this.uiBaseLocators.clickConfirmCreateFolderButton();
47
+ }
48
+ async enterScriptName(scriptContent) {
49
+ await this.insertScriptName.fill(scriptContent);
50
+ }
51
+ async enterScriptContent(scriptContent) {
52
+ await this.uiBaseLocators.textAreaInputArea.clear();
53
+ await this.uiBaseLocators.textAreaInputArea.fill(scriptContent);
54
+ }
55
+ async openScriptAtRoot(scriptName) {
56
+ await this.clickRootFolderCaretButton();
57
+ await this.page.getByLabel(scriptName).click({ force: true });
58
+ }
59
+ async deleteScript() {
60
+ await this.uiBaseLocators.clickDeleteButton();
61
+ await this.uiBaseLocators.clickConfirmToDeleteButton();
62
+ }
63
+ async deleteFolder() {
64
+ await this.uiBaseLocators.deleteFolder();
65
+ }
66
+ }
67
+ exports.ScriptUiHelper = ScriptUiHelper;
68
+ //# sourceMappingURL=ScriptUiHelper.js.map
@@ -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":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\n\nexport class StylesheetApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async get(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet?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":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\n\nexport class StylesheetApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async get(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet?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}"]}