@umbraco/playwright-testhelpers 15.0.0 → 15.0.2

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.
@@ -1 +1 @@
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/' + encodeURIComponent(path));\n return await response.json();\n }\n\n async doesExist(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/script/' + encodeURIComponent(path));\n return response.status() === 200;\n }\n\n async create(name: string, content: string, parentPath = null) {\n const parentValue = parentPath ? {'path': parentPath} : null;\n const scriptData = {\n \"name\": name,\n \"parent\": parentValue,\n \"content\": content\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 const path = response.headers().location.split(\"/v1/script/\").pop() as string;\n return decodeURIComponent(path);\n }\n\n async updateName(path: string, newName: string) {\n const scriptData = {\n \"name\": newName\n };\n const response = await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/script/' + encodeURIComponent(path) + '/rename', scriptData);\n // Returns the path of the created Script\n const newPath = response.headers().location.split(\"/v1/script/\").pop();\n if (newPath !== undefined) {\n return decodeURIComponent(newPath);\n }\n return undefined;\n }\n\n async updateContent(path: string, newContent: string) {\n const scriptData = {\n \"content\": newContent\n };\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/script/' + encodeURIComponent(path), scriptData);\n }\n\n async delete(path: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/script/' + encodeURIComponent(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?parentPath=${encodeURIComponent(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/' + encodeURIComponent(path));\n return await response.json();\n }\n\n async doesFolderExist(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/script/folder/' + encodeURIComponent(path));\n return response.status() === 200;\n }\n\n async createFolder(name: string, parentPath = \"/\") {\n const scriptFolderData =\n {\n \"name\": name,\n \"parent\":\n {\n \"path\": parentPath\n }\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/script/folder', scriptFolderData);\n // Returns the path of the created Stylesheet folder\n const path = response.headers().location.split(\"/v1/script/folder/\").pop();\n\n if (path !== undefined) {\n return decodeURIComponent(path);\n }\n return undefined;\n }\n\n async deleteFolder(path: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/script/folder/' + encodeURIComponent(path));\n }\n\n async createDefaultScript(name: string) {\n await this.ensureNameNotExists(name);\n return await this.create(name, \"@inherits Umbraco.Web.Mvc.UmbracoViewPage\");\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/' + encodeURIComponent(path));\n return await response.json();\n }\n\n async doesExist(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/script/' + encodeURIComponent(path));\n return response.status() === 200;\n }\n\n async create(name: string, content: string, parentPath = null) {\n const parentValue = parentPath ? {'path': parentPath} : null;\n const scriptData = {\n \"name\": name,\n \"parent\": parentValue,\n \"content\": content\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 const path = response.headers().location.split(\"/v1/script/\").pop() as string;\n return decodeURIComponent(path);\n }\n\n async updateName(path: string, newName: string) {\n const scriptData = {\n \"name\": newName\n };\n const response = await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/script/' + encodeURIComponent(path) + '/rename', scriptData);\n // Returns the path of the created Script\n const newPath = response.headers().location.split(\"/v1/script/\").pop();\n if (newPath !== undefined) {\n return decodeURIComponent(newPath);\n }\n return undefined;\n }\n\n async updateContent(path: string, newContent: string) {\n const scriptData = {\n \"content\": newContent\n };\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/script/' + encodeURIComponent(path), scriptData);\n }\n\n async delete(path: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/script/' + encodeURIComponent(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?parentPath=${encodeURIComponent(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/' + encodeURIComponent(path));\n return await response.json();\n }\n\n async doesFolderExist(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/script/folder/' + encodeURIComponent(path));\n return response.status() === 200;\n }\n\n async createFolder(name: string, parentPath?: string) {\n const parentValue = parentPath ? {'path': parentPath} : null;\n const scriptFolderData =\n {\n \"name\": name,\n \"parent\": parentValue\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 Stylesheet folder\n const path = response.headers().location.split(\"/v1/script/folder/\").pop();\n\n if (path !== undefined) {\n return decodeURIComponent(path);\n }\n return undefined;\n }\n\n async deleteFolder(path: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/script/folder/' + encodeURIComponent(path));\n }\n\n async createDefaultScript(name: string) {\n await this.ensureNameNotExists(name);\n return await this.create(name, \"@inherits Umbraco.Web.Mvc.UmbracoViewPage\");\n }\n}"]}
@@ -143,10 +143,11 @@ class StylesheetApiHelper {
143
143
  const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder/' + encodeURIComponent(path));
144
144
  return response.status() === 200;
145
145
  }
146
- async createFolder(name, parentPath = "/") {
146
+ async createFolder(name, parentPath) {
147
+ const parentValue = parentPath ? { 'path': parentPath } : null;
147
148
  const stylesheetFolderData = {
148
149
  "name": name,
149
- "parent": parentPath ? { "path": parentPath } : null
150
+ "parent": parentValue
150
151
  };
151
152
  const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder', stylesheetFolderData);
152
153
  // Returns the path of the created Stylesheet folder
@@ -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/' + encodeURIComponent(path));\n return await response.json();\n }\n\n async doesExist(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/' + encodeURIComponent(path));\n return response.status() === 200;\n }\n\n async create(name: string, content: string, parentPath?: string) {\n const parentValue = parentPath ? {'path': parentPath} : null;\n const stylesheetData = {\n \"name\": name,\n \"parent\": parentValue,\n \"content\": content\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet', stylesheetData);\n // Returns the path of the created stylesheet\n const path = response.headers().location.split(\"/v1/stylesheet/\").pop() as string;\n return decodeURIComponent(path);\n }\n\n async updateName(path: string, newName: string) {\n const stylesheetData = {\n \"name\": newName\n };\n const response = await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/' + encodeURIComponent(path) + '/rename', stylesheetData);\n // Returns the path of the created Stylesheet\n const newPath = response.headers().location.split(\"/v1/stylesheet/\").pop();\n if (newPath !== undefined) {\n return decodeURIComponent(newPath);\n }\n return undefined;\n }\n\n async updateContent(path: string, newContent: string) {\n const stylesheetData = {\n \"content\": newContent\n };\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/' + encodeURIComponent(path), stylesheetData);\n }\n\n async delete(path: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/' + encodeURIComponent(path));\n }\n\n async getChildren(path: string) {\n const response = await this.api.get(`${this.api.baseUrl}/umbraco/management/api/v1/tree/stylesheet/children?parentPath=${path}&skip=0&take=10000`);\n const items = await response.json();\n return items.items;\n }\n\n async doesNameExist(name: string) {\n return await this.getByName(name);\n }\n\n async getAllAtRoot() {\n return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/stylesheet/root?skip=0&take=10000');\n }\n\n async getByName(name: string) {\n const rootStylesheet = await this.getAllAtRoot();\n const jsonStylesheet = await rootStylesheet.json();\n\n for (const stylesheet of jsonStylesheet.items) {\n if (stylesheet.name === name) {\n if (stylesheet.isFolder) {\n return this.getFolder(stylesheet.path);\n } else {\n return this.get(stylesheet.path);\n }\n } else if (stylesheet.isFolder && stylesheet.hasChildren) {\n const result = await this.recurseChildren(name, stylesheet.path, false);\n if (result) {\n return result;\n }\n }\n }\n return false;\n }\n\n async ensureNameNotExists(name: string) {\n const rootStylesheet = await this.getAllAtRoot();\n const jsonStylesheet = await rootStylesheet.json();\n\n for (const stylesheet of jsonStylesheet.items) {\n if (stylesheet.name === name) {\n if (stylesheet.isFolder) {\n return await this.recurseDeleteChildren(stylesheet);\n }\n return await this.delete(stylesheet.path);\n } else if (stylesheet.hasChildren) {\n await this.recurseChildren(name, stylesheet.path, true);\n\n }\n }\n return null;\n }\n\n private async recurseChildren(name: string, path: string, toDelete: boolean) {\n const items = await this.getChildren(path);\n\n for (const child of items) {\n if (child.name === name) {\n if (!toDelete) {\n if (child.isFolder) {\n return await this.getFolder(child.path);\n }\n return await this.get(child.path);\n }\n if (child.isFolder) {\n return await this.recurseDeleteChildren(child);\n }\n return await this.delete(child.path);\n\n } else if (child.hasChildren) {\n return await this.recurseChildren(name, child.path, toDelete);\n }\n }\n return false;\n }\n\n private async recurseDeleteChildren(stylesheetFolder) {\n if (!stylesheetFolder.hasChildren) {\n return await this.deleteFolder(stylesheetFolder.path);\n }\n const items = await this.getChildren(stylesheetFolder.path);\n\n for (const child of items) {\n if (child.hasChildren) {\n await this.recurseDeleteChildren(child);\n } else if (child.isFolder) {\n await this.deleteFolder(child.path);\n } else {\n await this.delete(child.path);\n }\n }\n return await this.deleteFolder(stylesheetFolder.path);\n }\n\n // Folder\n async getFolder(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder/' + encodeURIComponent(path));\n return await response.json();\n }\n\n async doesFolderExist(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder/' + encodeURIComponent(path));\n return response.status() === 200;\n }\n\n async createFolder(name: string, parentPath = \"/\") {\n const stylesheetFolderData =\n {\n \"name\": name,\n \"parent\": parentPath ? {\"path\": parentPath} : null\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder', stylesheetFolderData);\n // Returns the path of the created Stylesheet folder\n const path = response.headers().location.split(\"/v1/stylesheet/folder/\").pop();\n\n if (path !== undefined) {\n return decodeURIComponent(path);\n }\n return undefined;\n }\n\n async deleteFolder(path: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder/' + encodeURIComponent(path));\n }\n\n async createDefaultStylesheet(name: string) {\n await this.ensureNameNotExists(name);\n return await this.create(name, \"/*\\n\");\n }\n\n async encodeStylesheetPath(path: string) {\n let encodedPath = encodeURIComponent(path);\n\n // Replace the dot with the required encoding\n encodedPath = encodedPath.replace(/\\./g, '%25dot%25');\n\n return encodedPath;\n }\n\n async createStylesheetWithHeaderContent(name: string) {\n await this.ensureNameNotExists(name);\n\n const content = '/**umb_name:red*/\\n' +\n 'h1 {\\n' +\n '\\tcolor:red\\n' +\n '}';\n\n return await this.create(name, content);\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,wCAAwC,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5H,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAY;QAC1B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,wCAAwC,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5H,OAAO,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,OAAe,EAAE,UAAmB;QAC7D,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,EAAC,MAAM,EAAE,UAAU,EAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7D,MAAM,cAAc,GAAG;YACrB,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,WAAW;YACrB,SAAS,EAAE,OAAO;SACnB,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,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,GAAG,EAAY,CAAC;QAClF,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAY,EAAE,OAAe;QAC5C,MAAM,cAAc,GAAG;YACrB,MAAM,EAAE,OAAO;SAChB,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,wCAAwC,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,SAAS,EAAE,cAAc,CAAC,CAAC;QACxJ,6CAA6C;QAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,GAAG,EAAE,CAAC;QAC3E,IAAI,OAAO,KAAK,SAAS,EAAE;YACzB,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;SACpC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAAY,EAAE,UAAkB;QAClD,MAAM,cAAc,GAAG;YACrB,SAAS,EAAE,UAAU;SACtB,CAAC;QACF,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,wCAAwC,GAAG,kBAAkB,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC,CAAC;IACpI,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY;QACvB,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,wCAAwC,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;IACvH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAY;QAC5B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,kEAAkE,IAAI,oBAAoB,CAAC,CAAC;QACnJ,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,+CAA+C,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;QACnI,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,IAAY;QAChC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,+CAA+C,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;QACnI,OAAO,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAY,EAAE,UAAmB;QAClD,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,EAAC,MAAM,EAAE,UAAU,EAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7D,MAAM,oBAAoB,GACxB;YACE,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,WAAW;SACtB,CAAC;QACJ,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,8CAA8C,EAAE,oBAAoB,CAAC,CAAC;QAC9H,oDAAoD;QACpD,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,GAAG,EAAE,CAAC;QAE/E,IAAI,IAAI,KAAK,SAAS,EAAE;YACtB,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;SACjC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAY;QAC7B,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,+CAA+C,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9H,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,IAAY;QACxC,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,IAAY;QACrC,IAAI,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAE3C,6CAA6C;QAC7C,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAEtD,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,iCAAiC,CAAC,IAAY;QAClD,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAErC,MAAM,OAAO,GAAG,qBAAqB;YACnC,QAAQ;YACR,eAAe;YACf,GAAG,CAAC;QAEN,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;CACF;AA5MD,kDA4MC","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\n\nexport class StylesheetApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async get(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/' + encodeURIComponent(path));\n return await response.json();\n }\n\n async doesExist(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/' + encodeURIComponent(path));\n return response.status() === 200;\n }\n\n async create(name: string, content: string, parentPath?: string) {\n const parentValue = parentPath ? {'path': parentPath} : null;\n const stylesheetData = {\n \"name\": name,\n \"parent\": parentValue,\n \"content\": content\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet', stylesheetData);\n // Returns the path of the created stylesheet\n const path = response.headers().location.split(\"/v1/stylesheet/\").pop() as string;\n return decodeURIComponent(path);\n }\n\n async updateName(path: string, newName: string) {\n const stylesheetData = {\n \"name\": newName\n };\n const response = await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/' + encodeURIComponent(path) + '/rename', stylesheetData);\n // Returns the path of the created Stylesheet\n const newPath = response.headers().location.split(\"/v1/stylesheet/\").pop();\n if (newPath !== undefined) {\n return decodeURIComponent(newPath);\n }\n return undefined;\n }\n\n async updateContent(path: string, newContent: string) {\n const stylesheetData = {\n \"content\": newContent\n };\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/' + encodeURIComponent(path), stylesheetData);\n }\n\n async delete(path: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/' + encodeURIComponent(path));\n }\n\n async getChildren(path: string) {\n const response = await this.api.get(`${this.api.baseUrl}/umbraco/management/api/v1/tree/stylesheet/children?parentPath=${path}&skip=0&take=10000`);\n const items = await response.json();\n return items.items;\n }\n\n async doesNameExist(name: string) {\n return await this.getByName(name);\n }\n\n async getAllAtRoot() {\n return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/stylesheet/root?skip=0&take=10000');\n }\n\n async getByName(name: string) {\n const rootStylesheet = await this.getAllAtRoot();\n const jsonStylesheet = await rootStylesheet.json();\n\n for (const stylesheet of jsonStylesheet.items) {\n if (stylesheet.name === name) {\n if (stylesheet.isFolder) {\n return this.getFolder(stylesheet.path);\n } else {\n return this.get(stylesheet.path);\n }\n } else if (stylesheet.isFolder && stylesheet.hasChildren) {\n const result = await this.recurseChildren(name, stylesheet.path, false);\n if (result) {\n return result;\n }\n }\n }\n return false;\n }\n\n async ensureNameNotExists(name: string) {\n const rootStylesheet = await this.getAllAtRoot();\n const jsonStylesheet = await rootStylesheet.json();\n\n for (const stylesheet of jsonStylesheet.items) {\n if (stylesheet.name === name) {\n if (stylesheet.isFolder) {\n return await this.recurseDeleteChildren(stylesheet);\n }\n return await this.delete(stylesheet.path);\n } else if (stylesheet.hasChildren) {\n await this.recurseChildren(name, stylesheet.path, true);\n\n }\n }\n return null;\n }\n\n private async recurseChildren(name: string, path: string, toDelete: boolean) {\n const items = await this.getChildren(path);\n\n for (const child of items) {\n if (child.name === name) {\n if (!toDelete) {\n if (child.isFolder) {\n return await this.getFolder(child.path);\n }\n return await this.get(child.path);\n }\n if (child.isFolder) {\n return await this.recurseDeleteChildren(child);\n }\n return await this.delete(child.path);\n\n } else if (child.hasChildren) {\n return await this.recurseChildren(name, child.path, toDelete);\n }\n }\n return false;\n }\n\n private async recurseDeleteChildren(stylesheetFolder) {\n if (!stylesheetFolder.hasChildren) {\n return await this.deleteFolder(stylesheetFolder.path);\n }\n const items = await this.getChildren(stylesheetFolder.path);\n\n for (const child of items) {\n if (child.hasChildren) {\n await this.recurseDeleteChildren(child);\n } else if (child.isFolder) {\n await this.deleteFolder(child.path);\n } else {\n await this.delete(child.path);\n }\n }\n return await this.deleteFolder(stylesheetFolder.path);\n }\n\n // Folder\n async getFolder(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder/' + encodeURIComponent(path));\n return await response.json();\n }\n\n async doesFolderExist(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder/' + encodeURIComponent(path));\n return response.status() === 200;\n }\n\n async createFolder(name: string, parentPath?: string) {\n const parentValue = parentPath ? {'path': parentPath} : null;\n const stylesheetFolderData =\n {\n \"name\": name,\n \"parent\": parentValue\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder', stylesheetFolderData);\n // Returns the path of the created Stylesheet folder\n const path = response.headers().location.split(\"/v1/stylesheet/folder/\").pop();\n\n if (path !== undefined) {\n return decodeURIComponent(path);\n }\n return undefined;\n }\n\n async deleteFolder(path: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder/' + encodeURIComponent(path));\n }\n\n async createDefaultStylesheet(name: string) {\n await this.ensureNameNotExists(name);\n return await this.create(name, \"/*\\n\");\n }\n\n async encodeStylesheetPath(path: string) {\n let encodedPath = encodeURIComponent(path);\n\n // Replace the dot with the required encoding\n encodedPath = encodedPath.replace(/\\./g, '%25dot%25');\n\n return encodedPath;\n }\n\n async createStylesheetWithHeaderContent(name: string) {\n await this.ensureNameNotExists(name);\n\n const content = '/**umb_name:red*/\\n' +\n 'h1 {\\n' +\n '\\tcolor:red\\n' +\n '}';\n\n return await this.create(name, content);\n }\n}"]}
@@ -6,10 +6,7 @@ export declare class UiBaseLocators {
6
6
  readonly submitBtn: Locator;
7
7
  readonly createFolderBtn: Locator;
8
8
  readonly breadcrumbBtn: Locator;
9
- readonly deleteBtn: Locator;
10
9
  readonly confirmToDeleteBtn: Locator;
11
- readonly deleteLabelBtn: Locator;
12
- readonly deleteExactLabelBtn: Locator;
13
10
  readonly deleteExactBtn: Locator;
14
11
  readonly confirmCreateFolderBtn: Locator;
15
12
  readonly insertBtn: Locator;
@@ -118,6 +115,7 @@ export declare class UiBaseLocators {
118
115
  readonly createDocumentBlueprintBtn: Locator;
119
116
  readonly actionsBtn: Locator;
120
117
  readonly mediaPickerModalSubmitBtn: Locator;
118
+ readonly deleteBtn: Locator;
121
119
  constructor(page: Page);
122
120
  clickActionsMenuForName(name: string): Promise<void>;
123
121
  isActionsMenuForNameVisible(name: string, isVisible?: boolean): Promise<void>;
@@ -147,11 +145,9 @@ export declare class UiBaseLocators {
147
145
  clickConfirmButton(): Promise<void>;
148
146
  clickBreadcrumbButton(): Promise<void>;
149
147
  clickInsertButton(): Promise<void>;
150
- clickDeleteButton(): Promise<void>;
151
148
  clickConfirmToDeleteButton(): Promise<void>;
152
149
  clickDeleteFolderButton(): Promise<void>;
153
150
  clickConfirmCreateFolderButton(): Promise<void>;
154
- clickDeleteThreeDotsButton(): Promise<void>;
155
151
  clickRemoveExactButton(): Promise<void>;
156
152
  clickRemoveButtonForName(name: string): Promise<void>;
157
153
  clickTrashIconButtonForName(name: string): Promise<void>;
@@ -171,7 +167,6 @@ export declare class UiBaseLocators {
171
167
  isTextWithExactNameVisible(name: string, isVisible?: boolean): Promise<void>;
172
168
  isQueryBuilderCodeShown(code: string): Promise<void>;
173
169
  deleteFolder(): Promise<void>;
174
- clickDeleteExactLabel(): Promise<void>;
175
170
  clickDeleteExactButton(): Promise<void>;
176
171
  isTreeItemVisible(name: string, isVisible?: boolean): Promise<void>;
177
172
  doesTreeItemHaveTheCorrectIcon(name: string, icon: string): Promise<void>;
@@ -224,6 +219,7 @@ export declare class UiBaseLocators {
224
219
  deletePropertyEditorWithName(name: string): Promise<void>;
225
220
  clickRenameButton(): Promise<void>;
226
221
  clickDeleteAndConfirmButton(): Promise<void>;
222
+ clickDeleteButton(): Promise<void>;
227
223
  clickQueryBuilderButton(): Promise<void>;
228
224
  chooseRootContentInQueryBuilder(contentName: string): Promise<void>;
229
225
  reorderTwoGroups(): Promise<{
@@ -10,10 +10,7 @@ class UiBaseLocators {
10
10
  submitBtn;
11
11
  createFolderBtn;
12
12
  breadcrumbBtn;
13
- deleteBtn;
14
13
  confirmToDeleteBtn;
15
- deleteLabelBtn;
16
- deleteExactLabelBtn;
17
14
  deleteExactBtn;
18
15
  confirmCreateFolderBtn;
19
16
  insertBtn;
@@ -122,14 +119,12 @@ class UiBaseLocators {
122
119
  createDocumentBlueprintBtn;
123
120
  actionsBtn;
124
121
  mediaPickerModalSubmitBtn;
122
+ deleteBtn;
125
123
  constructor(page) {
126
124
  this.page = page;
127
125
  this.saveBtn = page.getByLabel('Save', { exact: true });
128
126
  this.submitBtn = page.getByLabel('Submit');
129
- this.deleteExactLabelBtn = page.getByLabel('Delete', { exact: true });
130
127
  this.deleteExactBtn = page.getByRole('button', { name: 'Delete', exact: true });
131
- this.deleteLabelBtn = page.getByLabel('Delete');
132
- this.deleteBtn = page.getByLabel(/^Delete(\.\.\.)?$/);
133
128
  this.confirmToDeleteBtn = page.locator('#confirm').getByLabel('Delete');
134
129
  this.confirmCreateFolderBtn = page.locator('#confirm').getByLabel('Create Folder');
135
130
  this.breadcrumbBtn = page.getByLabel('Breadcrumb');
@@ -157,7 +152,7 @@ class UiBaseLocators {
157
152
  this.renameThreeDotsBtn = page.getByLabel('Rename...', { exact: true });
158
153
  this.newNameTxt = page.getByRole('textbox', { name: 'Enter new name...' });
159
154
  this.renameModalBtn = page.locator('umb-rename-modal').getByLabel('Rename');
160
- this.createBtn = page.getByLabel(/^Create(\.\.\.)?$/, { exact: true });
155
+ this.createBtn = page.getByRole('button', { name: /^Create(\.\.\.)?$/ });
161
156
  this.successState = page.locator('[state="success"]');
162
157
  this.chooseModalBtn = this.sidebarModal.locator('[look="primary"]').getByLabel('Choose');
163
158
  this.addBtn = page.getByLabel('Add', { exact: true });
@@ -241,9 +236,10 @@ class UiBaseLocators {
241
236
  this.container = page.locator('#container');
242
237
  this.actionsBtn = page.getByLabel('Actions', { exact: true });
243
238
  this.mediaPickerModalSubmitBtn = page.locator('umb-media-picker-modal').getByLabel('Submit');
239
+ this.deleteBtn = page.getByRole('button', { name: /^Delete(\.\.\.)?$/ });
244
240
  }
245
241
  async clickActionsMenuForName(name) {
246
- await this.page.locator('[label="' + name + '"]').click();
242
+ await this.page.locator('[label="' + name + '"]').hover();
247
243
  await this.page.locator('[label="' + name + '"] >> [label="Open actions menu"]').first().click();
248
244
  }
249
245
  async isActionsMenuForNameVisible(name, isVisible = true) {
@@ -353,9 +349,6 @@ class UiBaseLocators {
353
349
  await (0, test_1.expect)(this.insertBtn).toBeVisible();
354
350
  await this.insertBtn.click();
355
351
  }
356
- async clickDeleteButton() {
357
- await this.deleteBtn.click({ force: true });
358
- }
359
352
  async clickConfirmToDeleteButton() {
360
353
  await this.confirmToDeleteBtn.click();
361
354
  }
@@ -365,9 +358,6 @@ class UiBaseLocators {
365
358
  async clickConfirmCreateFolderButton() {
366
359
  await this.confirmCreateFolderBtn.click();
367
360
  }
368
- async clickDeleteThreeDotsButton() {
369
- await this.deleteThreeDotsBtn.click();
370
- }
371
361
  async clickRemoveExactButton() {
372
362
  await this.removeExactBtn.click();
373
363
  }
@@ -446,7 +436,7 @@ class UiBaseLocators {
446
436
  async deletePropertyEditor(propertyEditorName) {
447
437
  // We need to hover over the property to be able to see the delete button
448
438
  await this.page.locator('uui-button').filter({ hasText: propertyEditorName }).getByLabel('Editor settings').hover();
449
- await this.deleteLabelBtn.click();
439
+ await this.deleteBtn.click();
450
440
  }
451
441
  async enterFolderName(folderName) {
452
442
  await this.folderNameTxt.clear();
@@ -464,9 +454,6 @@ class UiBaseLocators {
464
454
  await this.clickDeleteFolderButton();
465
455
  await this.clickConfirmToDeleteButton();
466
456
  }
467
- async clickDeleteExactLabel() {
468
- await this.deleteExactLabelBtn.click();
469
- }
470
457
  async clickDeleteExactButton() {
471
458
  await this.deleteExactBtn.click();
472
459
  }
@@ -690,6 +677,9 @@ class UiBaseLocators {
690
677
  await this.clickDeleteButton();
691
678
  await this.clickConfirmToDeleteButton();
692
679
  }
680
+ async clickDeleteButton() {
681
+ await this.deleteBtn.click();
682
+ }
693
683
  async clickQueryBuilderButton() {
694
684
  await this.queryBuilderBtn.click();
695
685
  }