@umbraco/playwright-testhelpers 2.0.0-beta.40 → 2.0.0-beta.42

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.
@@ -18,7 +18,7 @@ export declare class DataTypeApiHelper {
18
18
  moveToFolder(dataTypeId: string, folderId: string): Promise<import("playwright-core").APIResponse>;
19
19
  copyToFolder(dataTypeId: string, folderId: string): Promise<string | undefined>;
20
20
  getFolder(id: string): Promise<any>;
21
- createFolder(name: string, id?: string, parentId?: string): Promise<string | undefined>;
21
+ createFolder(name: string, parentId?: string, id?: string): Promise<string | undefined>;
22
22
  renameFolder(id: string, name: string): Promise<import("playwright-core").APIResponse>;
23
23
  deleteFolder(id: string): Promise<import("playwright-core").APIResponse>;
24
24
  doesFolderExist(id: string): Promise<boolean>;
@@ -106,7 +106,7 @@ class DataTypeApiHelper {
106
106
  const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + id);
107
107
  return await response.json();
108
108
  }
109
- async createFolder(name, id, parentId) {
109
+ async createFolder(name, parentId, id) {
110
110
  const folderData = {
111
111
  "name": name,
112
112
  "id": id,
@@ -1 +1 @@
1
- {"version":3,"file":"DataTypeApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/DataTypeApiHelper.ts"],"names":[],"mappings":";;;AACA,wEAAwE;AAExE,MAAa,iBAAiB;IAC5B,GAAG,CAAY;IAEf,YAAY,GAAe;QACzB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,uCAAuC,GAAG,EAAE,CAAC,CAAC;QACrG,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,WAAmB,EAAE,MAA2C,EAAE,QAAiB,EAAE,aAAsB,EAAE,EAAW;QACjJ,MAAM,QAAQ,GAAG;YACf,MAAM,EAAE,IAAI;YACZ,aAAa,EAAE,WAAW;YAC1B,eAAe,EAAE,aAAa;YAC9B,QAAQ,EAAE,MAAM;YAChB,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAC,IAAI,EAAG,QAAQ,EAAC,CAAC,CAAC,CAAC,IAAI;SAC9C,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,sCAAsC,EAAE,QAAQ,CAAC,CAAC;QAC1G,yCAAyC;QACzC,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,GAAG,EAAE,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,QAAQ;QAC/B,MAAM,cAAc,GAAG;YACrB,MAAM,EAAE,QAAQ,CAAC,IAAI;YACrB,aAAa,EAAE,QAAQ,CAAC,WAAW;YACnC,eAAe,EAAE,QAAQ,CAAC,aAAa;YACvC,QAAQ,EAAE,QAAQ,CAAC,MAAM;SAC1B,CAAC;QACF,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,uCAAuC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC;IAC7G,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,uCAAuC,GAAG,EAAE,CAAC,CAAC;IAChG,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,oFAAoF,CAAC,CAAC;IACrI,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,EAAU;QACxB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,uCAAuC,GAAG,EAAE,CAAC,CAAC;QACrG,OAAO,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAa;QAC1B,IAAI,OAAO,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAS,CAAC;QAEd,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;YAC/B,OAAO,IAAI,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;SAC5B;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,iDAAiD,GAAG,OAAO,CAAC,CAAC;QACpH,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAY;QAC1B,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAChD,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;QAEjD,KAAK,MAAM,QAAQ,IAAI,aAAa,CAAC,KAAK,EAAE;YAC1C,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,EAAE;gBAC1B,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;aAC9B;iBAAM,IAAI,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,WAAW,EAAE;gBACvD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;gBACpE,IAAI,MAAM,EAAE;oBACV,OAAO,MAAM,CAAC;iBACf;aACF;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,IAAY;QACpC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAChD,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;QAEjD,KAAK,MAAM,QAAQ,IAAI,aAAa,CAAC,KAAK,EAAE;YAC1C,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,EAAE;gBAC1B,IAAI,QAAQ,CAAC,QAAQ,EAAE;oBACrB,OAAO,MAAM,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;iBACnD;gBACD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;aACvC;iBAAM,IAAI,QAAQ,CAAC,WAAW,EAAE;gBAC/B,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;aAErD;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAAY;QAC9B,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,UAAkB,EAAE,QAAgB;QACrD,MAAM,YAAY,GAAG;YACnB,QAAQ,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE;SAC3B,CAAC;QACF,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,uCAAuC,GAAG,UAAU,GAAG,OAAO,EAAE,YAAY,CAAC,CAAC;IAC7H,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,UAAkB,EAAE,QAAgB;QACrD,MAAM,YAAY,GAAG;YACnB,QAAQ,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE;SAC3B,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,uCAAuC,GAAG,UAAU,GAAG,OAAO,EAAE,YAAY,CAAC,CAAC;QACtI,wCAAwC;QACxC,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,GAAG,EAAE,CAAC;IAClE,CAAC;IAED,SAAS;IACT,KAAK,CAAC,SAAS,CAAC,EAAU;QACxB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,8CAA8C,GAAG,EAAE,CAAC,CAAC;QAC5G,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAY,EAAE,EAAW,EAAE,QAAiB;QAC7D,MAAM,UAAU,GAAG;YACjB,MAAM,EAAE,IAAI;YACZ,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAC,IAAI,EAAG,QAAQ,EAAC,CAAC,CAAC,CAAC,IAAI;SAC9C,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,6CAA6C,EAAE,UAAU,CAAC,CAAC;QACnH,+CAA+C;QAC/C,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,GAAG,EAAE,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EAAU,EAAE,IAAY;QACzC,MAAM,UAAU,GAAG;YACjB,MAAM,EAAE,IAAI;SACb,CAAC;QACF,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,8CAA8C,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;IAChH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EAAU;QAC3B,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,8CAA8C,GAAG,EAAE,CAAC,CAAC;IACvG,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,EAAU;QAC9B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,8CAA8C,GAAG,EAAE,CAAC,CAAC;QAC5G,OAAO,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,EAAU;QAC1B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,8DAA8D,GAAG,EAAE,GAAG,oCAAoC,CAAC,CAAC;QACnK,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,UAAU;QAC5C,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;YAC3B,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;SAC/C;QACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAEpD,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,EAAE,CAAC,CAAC;aACnC;iBAAM;gBACL,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;aAC7B;SACF;QACD,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAChD,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,IAAY,EAAE,EAAU,EAAE,QAAiB;QACvE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAEzC,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,EAAE,CAAC,CAAC;qBACvC;oBACD,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;iBACjC;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,EAAE,CAAC,CAAC;aACpC;iBAAM,IAAI,KAAK,CAAC,WAAW,EAAE;gBAC5B,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;aAC7D;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,QAAQ;QACjB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,sCAAsC,EAAE,QAAQ,CAAC,CAAA;QACzG,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,GAAG,EAAE,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,IAAY;QACvC,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAErC,MAAM,QAAQ,GAAG,IAAI,gDAAyB,EAAE;aAC7C,QAAQ,CAAC,IAAI,CAAC;aACd,KAAK,EAAE,CAAC;QACX,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;CACF;AAjND,8CAiNC","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\nimport {DatePickerDataTypeBuilder} from \"@umbraco/json-models-builders\";\n\nexport class DataTypeApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async get(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + id);\n return await response.json();\n }\n\n async create(name: string, editorAlias: string, values: { alias: string; value: string; }[], parentId?: string, editorUiAlias?: string, id?: string) {\n const dataType = {\n \"name\": name,\n \"editorAlias\": editorAlias,\n \"editorUiAlias\": editorUiAlias,\n \"values\": values,\n \"id\": id,\n \"parent\": parentId ? {\"id\" : parentId} : null\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/data-type', dataType);\n // Returns the id of the created dataType\n return response.headers().location.split(\"v1/data-type/\").pop();\n }\n\n async update(id: string, dataType) {\n const updateDataType = {\n \"name\": dataType.name,\n \"editorAlias\": dataType.editorAlias,\n \"editorUiAlias\": dataType.editorUiAlias,\n \"values\": dataType.values,\n };\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + id, updateDataType);\n }\n\n async delete(id: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + id);\n }\n\n async getAllAtRoot() {\n return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/root?skip=0&take=10000&foldersOnly=false');\n }\n\n async doesExist(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + id);\n return response.status() === 200;\n }\n\n async getItems(ids: string[]) {\n let idArray = 'id=' + ids[0];\n let i: number;\n\n for (i = 1; i < ids.length; ++i) {\n idArray += '&id=' + ids[i];\n }\n\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/item?' + idArray);\n return await response.json();\n }\n\n async getByName(name: string) {\n const rootDataTypes = await this.getAllAtRoot();\n const jsonDataTypes = await rootDataTypes.json();\n\n for (const dataType of jsonDataTypes.items) {\n if (dataType.name === name) {\n return this.get(dataType.id);\n } else if (dataType.isContainer || dataType.hasChildren) {\n const result = await this.recurseChildren(name, dataType.id, false);\n if (result) {\n return result;\n }\n }\n }\n return false;\n }\n\n async ensureNameNotExists(name: string) {\n const rootDataTypes = await this.getAllAtRoot();\n const jsonDataTypes = await rootDataTypes.json();\n\n for (const dataType of jsonDataTypes.items) {\n if (dataType.name === name) {\n if (dataType.isFolder) {\n return await this.recurseDeleteChildren(dataType);\n }\n return await this.delete(dataType.id);\n } else if (dataType.hasChildren) {\n await this.recurseChildren(name, dataType.id, true);\n\n }\n }\n return null;\n }\n\n async doesNameExist(name: string) {\n return await this.getByName(name);\n }\n\n async moveToFolder(dataTypeId: string, folderId: string) {\n const folderIdBody = {\n \"target\": { id: folderId }\n };\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + dataTypeId + '/move', folderIdBody);\n }\n\n async copyToFolder(dataTypeId: string, folderId: string) {\n const folderIdBody = {\n \"target\": { id: folderId }\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + dataTypeId + '/copy', folderIdBody);\n // Returns the id of the copied dataType\n return response.headers().location.split(\"v1/data-type/\").pop();\n }\n\n // FOLDER\n async getFolder(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + id);\n return await response.json();\n }\n\n async createFolder(name: string, id?: string, parentId?: string) {\n const folderData = {\n \"name\": name,\n \"id\": id,\n \"parent\": parentId ? {\"id\" : parentId} : null\n };\n\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder', folderData);\n // Returns the id of the created dataTypeFolder\n return response.headers().location.split(\"v1/data-type/folder/\").pop();\n }\n\n async renameFolder(id: string, name: string) {\n const folderData = {\n \"name\": name,\n };\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + id, folderData);\n }\n\n async deleteFolder(id: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + id);\n }\n\n async doesFolderExist(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + id);\n return response.status() === 200;\n }\n\n async getChildren(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/children?parentId=' + id + '&skip=0&take=100&foldersOnly=false');\n const items = await response.json();\n return items.items;\n }\n\n private async recurseDeleteChildren(dataFolder) {\n if (!dataFolder.hasChildren) {\n return await this.deleteFolder(dataFolder.id);\n }\n const items = await this.getChildren(dataFolder.id);\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.id);\n } else {\n await this.delete(child.id);\n }\n }\n return await this.deleteFolder(dataFolder.id);\n }\n\n private async recurseChildren(name: string, id: string, toDelete: boolean) {\n const items = await this.getChildren(id);\n\n for (const child of items) {\n if (child.name === name) {\n if (!toDelete) {\n if (child.isFolder) {\n return await this.getFolder(child.id);\n }\n return await this.get(child.id);\n }\n if (child.isFolder) {\n return await this.recurseDeleteChildren(child);\n }\n return await this.delete(child.id);\n } else if (child.hasChildren) {\n return await this.recurseChildren(name, child.id, toDelete);\n }\n }\n return false;\n }\n\n async save(dataType) {\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/data-type', dataType)\n return response.headers().location.split(\"v1/data-type/\").pop();\n }\n\n async createDateTypeDataType(name: string) {\n await this.ensureNameNotExists(name);\n\n const dataType = new DatePickerDataTypeBuilder()\n .withName(name)\n .build();\n return await this.save(dataType);\n }\n}"]}
1
+ {"version":3,"file":"DataTypeApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/DataTypeApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\nimport {DatePickerDataTypeBuilder} from \"@umbraco/json-models-builders\";\n\nexport class DataTypeApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async get(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + id);\n return await response.json();\n }\n\n async create(name: string, editorAlias: string, values: { alias: string; value: string; }[], parentId?: string, editorUiAlias?: string, id?: string) {\n const dataType = {\n \"name\": name,\n \"editorAlias\": editorAlias,\n \"editorUiAlias\": editorUiAlias,\n \"values\": values,\n \"id\": id,\n \"parent\": parentId ? {\"id\" : parentId} : null\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/data-type', dataType);\n // Returns the id of the created dataType\n return response.headers().location.split(\"v1/data-type/\").pop();\n }\n\n async update(id: string, dataType) {\n const updateDataType = {\n \"name\": dataType.name,\n \"editorAlias\": dataType.editorAlias,\n \"editorUiAlias\": dataType.editorUiAlias,\n \"values\": dataType.values,\n };\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + id, updateDataType);\n }\n\n async delete(id: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + id);\n }\n\n async getAllAtRoot() {\n return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/root?skip=0&take=10000&foldersOnly=false');\n }\n\n async doesExist(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + id);\n return response.status() === 200;\n }\n\n async getItems(ids: string[]) {\n let idArray = 'id=' + ids[0];\n let i: number;\n\n for (i = 1; i < ids.length; ++i) {\n idArray += '&id=' + ids[i];\n }\n\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/item?' + idArray);\n return await response.json();\n }\n\n async getByName(name: string) {\n const rootDataTypes = await this.getAllAtRoot();\n const jsonDataTypes = await rootDataTypes.json();\n\n for (const dataType of jsonDataTypes.items) {\n if (dataType.name === name) {\n return this.get(dataType.id);\n } else if (dataType.isContainer || dataType.hasChildren) {\n const result = await this.recurseChildren(name, dataType.id, false);\n if (result) {\n return result;\n }\n }\n }\n return false;\n }\n\n async ensureNameNotExists(name: string) {\n const rootDataTypes = await this.getAllAtRoot();\n const jsonDataTypes = await rootDataTypes.json();\n\n for (const dataType of jsonDataTypes.items) {\n if (dataType.name === name) {\n if (dataType.isFolder) {\n return await this.recurseDeleteChildren(dataType);\n }\n return await this.delete(dataType.id);\n } else if (dataType.hasChildren) {\n await this.recurseChildren(name, dataType.id, true);\n\n }\n }\n return null;\n }\n\n async doesNameExist(name: string) {\n return await this.getByName(name);\n }\n\n async moveToFolder(dataTypeId: string, folderId: string) {\n const folderIdBody = {\n \"target\": { id: folderId }\n };\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + dataTypeId + '/move', folderIdBody);\n }\n\n async copyToFolder(dataTypeId: string, folderId: string) {\n const folderIdBody = {\n \"target\": { id: folderId }\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + dataTypeId + '/copy', folderIdBody);\n // Returns the id of the copied dataType\n return response.headers().location.split(\"v1/data-type/\").pop();\n }\n\n // FOLDER\n async getFolder(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + id);\n return await response.json();\n }\n\n async createFolder(name: string, parentId?: string, id?: string) {\n const folderData = {\n \"name\": name,\n \"id\": id,\n \"parent\": parentId ? {\"id\" : parentId} : null\n };\n\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder', folderData);\n // Returns the id of the created dataTypeFolder\n return response.headers().location.split(\"v1/data-type/folder/\").pop();\n }\n\n async renameFolder(id: string, name: string) {\n const folderData = {\n \"name\": name,\n };\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + id, folderData);\n }\n\n async deleteFolder(id: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + id);\n }\n\n async doesFolderExist(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + id);\n return response.status() === 200;\n }\n\n async getChildren(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/children?parentId=' + id + '&skip=0&take=100&foldersOnly=false');\n const items = await response.json();\n return items.items;\n }\n\n private async recurseDeleteChildren(dataFolder) {\n if (!dataFolder.hasChildren) {\n return await this.deleteFolder(dataFolder.id);\n }\n const items = await this.getChildren(dataFolder.id);\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.id);\n } else {\n await this.delete(child.id);\n }\n }\n return await this.deleteFolder(dataFolder.id);\n }\n\n private async recurseChildren(name: string, id: string, toDelete: boolean) {\n const items = await this.getChildren(id);\n\n for (const child of items) {\n if (child.name === name) {\n if (!toDelete) {\n if (child.isFolder) {\n return await this.getFolder(child.id);\n }\n return await this.get(child.id);\n }\n if (child.isFolder) {\n return await this.recurseDeleteChildren(child);\n }\n return await this.delete(child.id);\n } else if (child.hasChildren) {\n return await this.recurseChildren(name, child.id, toDelete);\n }\n }\n return false;\n }\n\n async save(dataType) {\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/data-type', dataType)\n return response.headers().location.split(\"v1/data-type/\").pop();\n }\n\n async createDateTypeDataType(name: string) {\n await this.ensureNameNotExists(name);\n\n const dataType = new DatePickerDataTypeBuilder()\n .withName(name)\n .build();\n return await this.save(dataType);\n }\n}"]}
@@ -1,8 +1,8 @@
1
1
  import { Page } from "@playwright/test";
2
2
  import { UiBaseLocators } from "./UiBaseLocators";
3
3
  export declare class DataTypeUiHelper extends UiBaseLocators {
4
- private readonly moveToThreeDotsBtn;
5
- private readonly copyToThreeDotsBtn;
4
+ private readonly moveToBtn;
5
+ private readonly duplicateToBtn;
6
6
  private readonly newDataTypeThreeDotsBtn;
7
7
  private readonly dataTypeNameTxt;
8
8
  private readonly selectBtn;
@@ -11,15 +11,13 @@ export declare class DataTypeUiHelper extends UiBaseLocators {
11
11
  private readonly includeLabelsSlider;
12
12
  private readonly addColorBtn;
13
13
  private readonly colorValueTxt;
14
- private readonly colorLabelTxt;
15
14
  private readonly offsetTimeSlider;
16
15
  private readonly dateFormatTxt;
17
16
  private readonly pageSizeTxt;
18
17
  private readonly ascendingRadioBtn;
19
18
  private readonly descendingRadioBtn;
20
- private readonly addColumnsDisplayedBtn;
19
+ private readonly chooseColumnsDisplayedBtn;
21
20
  private readonly contentAppNameTxt;
22
- private readonly columnsDisplayedDropDownBox;
23
21
  private readonly orderByDropDownBox;
24
22
  private readonly showContentAppFirstSlider;
25
23
  private readonly editInInfiniteEditorSlider;
@@ -49,7 +47,6 @@ export declare class DataTypeUiHelper extends UiBaseLocators {
49
47
  private readonly enableFocalPointSlider;
50
48
  private readonly amountLowValueTxt;
51
49
  private readonly amountHighValueTxt;
52
- private readonly ignoreUserStartNodesCamelSlider;
53
50
  private readonly toolbarCheckboxes;
54
51
  private readonly addStylesheetBtn;
55
52
  private readonly dimensionsWidthTxt;
@@ -65,13 +62,22 @@ export declare class DataTypeUiHelper extends UiBaseLocators {
65
62
  private readonly labelOnTxt;
66
63
  private readonly labelOffTxt;
67
64
  private readonly labelTxt;
65
+ private readonly chooseAcceptedTypesBtn;
66
+ private readonly chooseWithPlusBtn;
67
+ private readonly storageTypeDropDownBox;
68
+ private readonly allowDecimalsSlider;
69
+ private readonly chooseLayoutsBtn;
70
+ private readonly columnsDisplayedItems;
71
+ private readonly layoutsItems;
72
+ private readonly inlineRadioBtn;
73
+ private readonly duplicateBtn;
68
74
  constructor(page: Page);
69
75
  clickActionsMenuForDataType(name: string): Promise<void>;
70
76
  clickActionsMenuAtRoot(): Promise<void>;
71
77
  clickRootFolderCaretButton(): Promise<void>;
72
78
  goToDataType(dataTypeName: string): Promise<void>;
73
- clickMoveToThreeDotsButton(): Promise<void>;
74
- clickCopyToThreeDotsButton(): Promise<void>;
79
+ clickMoveToButton(): Promise<void>;
80
+ clickDuplicateToButton(): Promise<void>;
75
81
  clickNewDataTypeThreeDotsButton(): Promise<void>;
76
82
  clickNewDataTypeFolderButton(): Promise<void>;
77
83
  enterDataTypeName(name: string): Promise<void>;
@@ -80,16 +86,21 @@ export declare class DataTypeUiHelper extends UiBaseLocators {
80
86
  selectPropertyEditorUIByName(name: string): Promise<void>;
81
87
  deleteDataType(name: string): Promise<void>;
82
88
  deleteDataTypeFolder(folderName: string): Promise<void>;
89
+ moveDataTypeToFolder(folderName: string): Promise<void>;
90
+ duplicateDataTypeToFolder(folderName: string): Promise<void>;
91
+ addStartNode(startNodeName: string): Promise<void>;
83
92
  clickIncludeLabelsSlider(): Promise<void>;
84
93
  removeColorByValue(value: string): Promise<void>;
85
- addColor(value: string, label: string): Promise<void>;
94
+ addColor(value: string): Promise<void>;
86
95
  changeValueType(valueType: string): Promise<void>;
87
96
  clickOffsetTimeSlider(): Promise<void>;
88
97
  enterDateFormatValue(value: string): Promise<void>;
89
98
  enterPageSizeValue(value: string): Promise<void>;
90
99
  chooseOrderDirection(isAscending: boolean): Promise<void>;
91
- addColumnDisplayed(columnName: string): Promise<void>;
92
- removeColumnDisplayed(columnName: string): Promise<void>;
100
+ addColumnDisplayed(contentType: string, contentName: string, propertyAlias: string): Promise<void>;
101
+ removeColumnDisplayed(propertyAlias: string): Promise<void>;
102
+ addLayouts(layoutAlias: string): Promise<void>;
103
+ removeLayouts(layoutAlias: string): Promise<void>;
93
104
  chooseOrderByValue(value: string): Promise<void>;
94
105
  enterContentAppName(name: string): Promise<void>;
95
106
  clickShowContentAppFirstSlider(): Promise<void>;
@@ -105,6 +116,7 @@ export declare class DataTypeUiHelper extends UiBaseLocators {
105
116
  enterMinimumValue(value: string): Promise<void>;
106
117
  enterMaximumValue(value: string): Promise<void>;
107
118
  enterStepSizeValue(value: string): Promise<void>;
119
+ clickAllowDecimalsSlider(): Promise<void>;
108
120
  removeOptionByName(name: string): Promise<void>;
109
121
  enterOptionName(name: string): Promise<void>;
110
122
  clickAddOptionButton(): Promise<void>;
@@ -123,14 +135,21 @@ export declare class DataTypeUiHelper extends UiBaseLocators {
123
135
  clickPickMultipleItemsSlider(): Promise<void>;
124
136
  clickEnableFocalPointSlider(): Promise<void>;
125
137
  enterAmountValue(lowValue: string, highValue: string): Promise<void>;
126
- clickIgnoreUserStartNodesCamelSlider(): Promise<void>;
138
+ addAcceptedType(mediaTypeName: string): Promise<void>;
139
+ removeAcceptedType(mediaTypeName: string): Promise<void>;
140
+ clickChooseWithPlusButton(): Promise<void>;
141
+ removeMediaStartNode(mediaName: string): Promise<void>;
127
142
  pickTheToolbarOptionByValue(values: any): Promise<void>;
128
143
  addStylesheet(stylesheetName: string): Promise<void>;
129
144
  enterDimensionsValue(width: string, height: string): Promise<void>;
130
145
  enterMaximumSizeForImages(value: string): Promise<void>;
131
146
  clickHideLabelSlider(): Promise<void>;
147
+ clickInlineRadioButton(): Promise<void>;
148
+ addImageUploadFolder(mediaFolderName: string): Promise<void>;
132
149
  enterDefineTagGroupValue(value: string): Promise<void>;
150
+ selectStorageTypeOption(option: string): Promise<void>;
133
151
  clickShowOpenButtonSlider(): Promise<void>;
152
+ removeContentStartNode(contentName: string): Promise<void>;
134
153
  clickEnableMultipleChoiceSlider(): Promise<void>;
135
154
  clickAddOptionsButton(): Promise<void>;
136
155
  clickInitialStateSlider(): Promise<void>;
@@ -1,10 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DataTypeUiHelper = void 0;
4
+ const test_1 = require("@playwright/test");
4
5
  const UiBaseLocators_1 = require("./UiBaseLocators");
5
6
  class DataTypeUiHelper extends UiBaseLocators_1.UiBaseLocators {
6
- moveToThreeDotsBtn;
7
- copyToThreeDotsBtn;
7
+ moveToBtn;
8
+ duplicateToBtn;
8
9
  newDataTypeThreeDotsBtn;
9
10
  dataTypeNameTxt;
10
11
  selectBtn;
@@ -13,15 +14,13 @@ class DataTypeUiHelper extends UiBaseLocators_1.UiBaseLocators {
13
14
  includeLabelsSlider;
14
15
  addColorBtn;
15
16
  colorValueTxt;
16
- colorLabelTxt;
17
17
  offsetTimeSlider;
18
18
  dateFormatTxt;
19
19
  pageSizeTxt;
20
20
  ascendingRadioBtn;
21
21
  descendingRadioBtn;
22
- addColumnsDisplayedBtn;
22
+ chooseColumnsDisplayedBtn;
23
23
  contentAppNameTxt;
24
- columnsDisplayedDropDownBox;
25
24
  orderByDropDownBox;
26
25
  showContentAppFirstSlider;
27
26
  editInInfiniteEditorSlider;
@@ -51,7 +50,6 @@ class DataTypeUiHelper extends UiBaseLocators_1.UiBaseLocators {
51
50
  enableFocalPointSlider;
52
51
  amountLowValueTxt;
53
52
  amountHighValueTxt;
54
- ignoreUserStartNodesCamelSlider;
55
53
  toolbarCheckboxes;
56
54
  addStylesheetBtn;
57
55
  dimensionsWidthTxt;
@@ -67,20 +65,30 @@ class DataTypeUiHelper extends UiBaseLocators_1.UiBaseLocators {
67
65
  labelOnTxt;
68
66
  labelOffTxt;
69
67
  labelTxt;
68
+ chooseAcceptedTypesBtn;
69
+ chooseWithPlusBtn;
70
+ storageTypeDropDownBox;
71
+ allowDecimalsSlider;
72
+ chooseLayoutsBtn;
73
+ columnsDisplayedItems;
74
+ layoutsItems;
75
+ inlineRadioBtn;
76
+ duplicateBtn;
70
77
  constructor(page) {
71
78
  super(page);
72
- this.moveToThreeDotsBtn = page.locator('umb-entity-action').getByLabel('Move to...');
73
- this.copyToThreeDotsBtn = page.locator('umb-entity-action').getByLabel('Copy to...');
79
+ this.moveToBtn = page.locator('umb-entity-action').getByLabel('Move to');
80
+ this.duplicateToBtn = page.locator('umb-entity-action').getByLabel('Duplicate to');
74
81
  this.newDataTypeThreeDotsBtn = page.locator('umb-data-type-create-options-modal').getByLabel('New Data Type...');
75
82
  this.dataTypeNameTxt = page.locator('umb-data-type-workspace-editor #nameInput #input');
76
83
  this.selectBtn = page.locator('umb-property-editor-ui-picker-modal').getByLabel('Select');
77
84
  this.createDataTypeFolderBtn = page.getByLabel('Create Folder');
78
85
  this.updateDataTypeFolderBtn = page.getByLabel('Update Folder');
86
+ this.ignoreUserStartNodesSlider = page.locator('umb-property-layout[label="Ignore user start nodes"] #slider, umb-property-layout[label="Ignore User Start Nodes"] #slider');
87
+ this.duplicateBtn = page.locator('uui-modal-sidebar').getByLabel('Duplicate', { exact: true });
79
88
  // Approved Color
80
89
  this.includeLabelsSlider = page.locator('#slider');
81
90
  this.addColorBtn = page.getByLabel('Add');
82
91
  this.colorValueTxt = page.getByPlaceholder('Value').getByRole('textbox');
83
- this.colorLabelTxt = page.getByPlaceholder('Label...').getByRole('textbox');
84
92
  // Date Picker
85
93
  this.offsetTimeSlider = page.locator('umb-property-layout[label="Offset time"] #slider');
86
94
  this.dateFormatTxt = page.locator('umb-property-layout[label="Date format"] #input');
@@ -88,13 +96,15 @@ class DataTypeUiHelper extends UiBaseLocators_1.UiBaseLocators {
88
96
  this.pageSizeTxt = page.locator('umb-property-layout[label="Page Size"] #input');
89
97
  this.ascendingRadioBtn = page.locator('uui-radio[label="Ascending [a-z]"] #button');
90
98
  this.descendingRadioBtn = page.locator('uui-radio[label="Descending [z-a]"] #button');
91
- this.addColumnsDisplayedBtn = page.locator('umb-property-layout[label="Columns Displayed"]').getByLabel('Add');
99
+ this.chooseColumnsDisplayedBtn = page.locator('umb-property-layout[label="Columns Displayed"]').getByLabel('Choose');
100
+ this.columnsDisplayedItems = page.locator('umb-property-layout[label="Columns Displayed"] .layout-item');
92
101
  this.contentAppNameTxt = page.locator('umb-property-layout[label="Content app name"] #input');
93
102
  this.showContentAppFirstSlider = page.locator('umb-property-layout[label="Show Content App First"] #slider');
94
103
  this.editInInfiniteEditorSlider = page.locator('umb-property-layout[label="Edit in Infinite Editor"] #slider');
95
104
  this.contentAppIconBtn = page.locator('umb-property-layout[label="Content app icon"] uui-icon');
96
- this.columnsDisplayedDropDownBox = page.locator('umb-property-layout[label="Columns Displayed"] select');
97
105
  this.orderByDropDownBox = page.locator('umb-property-layout[label="Order By"] select');
106
+ this.chooseLayoutsBtn = page.locator('umb-property-layout[label="Layouts"]').getByLabel('Choose');
107
+ this.layoutsItems = page.locator('umb-property-layout[label="Layouts"] .layout-item');
98
108
  // Image Cropper
99
109
  this.labelTxt = page.getByLabel('Label', { exact: true });
100
110
  this.aliasTxt = page.getByLabel('Alias', { exact: true });
@@ -106,6 +116,7 @@ class DataTypeUiHelper extends UiBaseLocators_1.UiBaseLocators {
106
116
  this.minimumTxt = page.locator('umb-property-layout[label="Minimum"] #input');
107
117
  this.maximumTxt = page.locator('umb-property-layout[label="Maximum"] #input');
108
118
  this.stepSizeTxt = page.locator('umb-property-layout[label="Step size"] #input');
119
+ this.allowDecimalsSlider = page.locator('umb-property-layout[label="Allow decimals"] #slider');
109
120
  // Radiobox
110
121
  this.optionTxt = page.locator('umb-property-layout[label="Add option"] #input, umb-property-layout[label="Add options"] #input');
111
122
  this.addOptionBtn = page.locator('umb-property-layout[label="Add option"], umb-property-layout[label="Add options"]').getByLabel('Add', { exact: true });
@@ -120,15 +131,15 @@ class DataTypeUiHelper extends UiBaseLocators_1.UiBaseLocators {
120
131
  // Multi URL Picker
121
132
  this.minimumNumberOfItemsTxt = page.locator('umb-property-layout[label="Minimum number of items"] #input');
122
133
  this.maximumNumberOfItemsTxt = page.locator('umb-property-layout[label="Maximum number of items"] #input');
123
- this.ignoreUserStartNodesSlider = page.locator('umb-property-layout[label="Ignore user start nodes"] #slider');
124
134
  this.overlaySizeDropDownBox = page.locator('umb-property-layout[label="Overlay Size"] select');
125
135
  this.hideAnchorQueryStringInputSlider = page.locator('umb-property-layout[label="Hide anchor/query string input"] #slider');
126
- // Multiple Media Picker
136
+ // Media Picker
127
137
  this.pickMultipleItemsSlider = page.locator('umb-property-layout[label="Pick multiple items"] #slider');
128
138
  this.enableFocalPointSlider = page.locator('umb-property-layout[label="Enable Focal Point"] #slider');
129
139
  this.amountLowValueTxt = page.locator('umb-property-layout[label="Amount"]').getByLabel('Low value');
130
140
  this.amountHighValueTxt = page.locator('umb-property-layout[label="Amount"]').getByLabel('High value');
131
- this.ignoreUserStartNodesCamelSlider = page.locator("umb-property-layout[label='Ignore User Start Nodes'] #slider");
141
+ this.chooseAcceptedTypesBtn = page.locator('#btn-add').getByLabel('Choose');
142
+ this.chooseWithPlusBtn = page.locator('#add-button').filter({ hasText: 'Choose' });
132
143
  // Rich Editor
133
144
  this.toolbarCheckboxes = page.locator('umb-property-layout[label="Toolbar"] uui-checkbox');
134
145
  this.addStylesheetBtn = page.locator('umb-property-layout[label="Stylesheets"] #add-button');
@@ -136,8 +147,10 @@ class DataTypeUiHelper extends UiBaseLocators_1.UiBaseLocators {
136
147
  this.dimensionsHeightTxt = page.locator('umb-property-layout[label="Dimensions"]').getByLabel('Height');
137
148
  this.maxImageSizeTxt = page.locator('umb-property-layout[label="Maximum size for inserted images"] #input');
138
149
  this.hideLabelSlider = page.locator('umb-property-layout[label="Hide Label"] #slider');
150
+ this.inlineRadioBtn = page.locator('umb-property-layout[label="Mode"] uui-radio[value="Inline"]');
139
151
  // Tags
140
152
  this.defineTagGroupTxt = page.locator('umb-property-layout[label="Define a tag group"] #input');
153
+ this.storageTypeDropDownBox = page.locator('#native');
141
154
  // Content Picker
142
155
  this.showOpenButtonSlider = page.locator('umb-property-layout[label="Show open button"] #slider');
143
156
  // Dropdown
@@ -153,20 +166,22 @@ class DataTypeUiHelper extends UiBaseLocators_1.UiBaseLocators {
153
166
  await this.clickActionsMenuForName(name);
154
167
  }
155
168
  async clickActionsMenuAtRoot() {
156
- await this.clickActionsMenuForDataType("Data Types");
169
+ await this.clickActionsMenuForDataType('Data Types');
157
170
  }
158
171
  async clickRootFolderCaretButton() {
159
- await this.clickCaretButtonForName("Data Types");
172
+ await this.clickCaretButtonForName('Data Types');
160
173
  }
161
174
  async goToDataType(dataTypeName) {
162
175
  await this.clickRootFolderCaretButton();
163
176
  await this.page.getByLabel(dataTypeName, { exact: true }).click({ force: true });
164
177
  }
165
- async clickMoveToThreeDotsButton() {
166
- await this.moveToThreeDotsBtn.click();
178
+ async clickMoveToButton() {
179
+ await (0, test_1.expect)(this.moveToBtn).toBeVisible();
180
+ await this.moveToBtn.click();
167
181
  }
168
- async clickCopyToThreeDotsButton() {
169
- await this.copyToThreeDotsBtn.click();
182
+ async clickDuplicateToButton() {
183
+ await (0, test_1.expect)(this.duplicateToBtn).toBeVisible();
184
+ await this.duplicateToBtn.click();
170
185
  }
171
186
  async clickNewDataTypeThreeDotsButton() {
172
187
  await this.newDataTypeThreeDotsBtn.click();
@@ -191,27 +206,42 @@ class DataTypeUiHelper extends UiBaseLocators_1.UiBaseLocators {
191
206
  }
192
207
  async deleteDataType(name) {
193
208
  await this.clickActionsMenuForDataType(name);
194
- await this.deleteBtn.click();
195
- await this.confirmToDeleteBtn.click();
209
+ await this.clickDeleteAndConfirmButton();
196
210
  }
197
211
  async deleteDataTypeFolder(folderName) {
198
212
  await this.clickActionsMenuForDataType(folderName);
199
213
  await this.deleteFolder();
200
214
  }
215
+ async moveDataTypeToFolder(folderName) {
216
+ await this.clickMoveToButton();
217
+ await (0, test_1.expect)(this.modalCaretBtn).toBeVisible();
218
+ await this.modalCaretBtn.click();
219
+ await this.page.locator('uui-modal-sidebar').getByText(folderName, { exact: true }).click();
220
+ await this.chooseModalBtn.click();
221
+ }
222
+ async duplicateDataTypeToFolder(folderName) {
223
+ await this.clickDuplicateToButton();
224
+ await (0, test_1.expect)(this.modalCaretBtn).toBeVisible();
225
+ await this.modalCaretBtn.click();
226
+ await this.page.locator('uui-modal-sidebar').getByText(folderName, { exact: true }).click();
227
+ await this.duplicateBtn.click();
228
+ }
229
+ async addStartNode(startNodeName) {
230
+ await this.clickTextButtonWithName(startNodeName);
231
+ await this.chooseModalBtn.click();
232
+ }
201
233
  // Approved Color
202
234
  async clickIncludeLabelsSlider() {
203
235
  await this.includeLabelsSlider.click();
204
236
  }
205
237
  async removeColorByValue(value) {
206
- await this.page.locator('uui-button').filter({ has: this.page.getByLabel('Delete ' + value) }).locator('svg').click();
238
+ await this.page.locator('[value="' + value + '"] uui-button svg').click();
207
239
  await this.confirmToDeleteBtn.click();
208
240
  }
209
- async addColor(value, label) {
241
+ async addColor(value) {
210
242
  await this.addColorBtn.click();
211
243
  await this.colorValueTxt.clear();
212
244
  await this.colorValueTxt.fill(value);
213
- await this.colorLabelTxt.clear();
214
- await this.colorLabelTxt.fill(label);
215
245
  }
216
246
  // Label
217
247
  async changeValueType(valueType) {
@@ -238,12 +268,21 @@ class DataTypeUiHelper extends UiBaseLocators_1.UiBaseLocators {
238
268
  await this.descendingRadioBtn.click();
239
269
  }
240
270
  }
241
- async addColumnDisplayed(columnName) {
242
- await this.columnsDisplayedDropDownBox.selectOption({ label: columnName });
243
- await this.addColumnsDisplayedBtn.click();
271
+ async addColumnDisplayed(contentType, contentName, propertyAlias) {
272
+ await this.chooseColumnsDisplayedBtn.click();
273
+ await this.clickTextButtonWithName(contentType);
274
+ await this.clickTextButtonWithName(contentName);
275
+ await this.clickTextButtonWithName(propertyAlias);
276
+ }
277
+ async removeColumnDisplayed(propertyAlias) {
278
+ await this.columnsDisplayedItems.filter({ has: this.page.getByText(propertyAlias, { exact: true }) }).getByText('Remove').click();
244
279
  }
245
- async removeColumnDisplayed(columnName) {
246
- await this.page.locator('uui-table-row').filter({ has: this.page.getByText(columnName) }).getByText('Remove').click();
280
+ async addLayouts(layoutAlias) {
281
+ await this.chooseLayoutsBtn.click();
282
+ await this.clickTextButtonWithName(layoutAlias);
283
+ }
284
+ async removeLayouts(layoutAlias) {
285
+ await this.layoutsItems.filter({ has: this.page.getByText(layoutAlias, { exact: true }) }).getByText('Remove').click();
247
286
  }
248
287
  async chooseOrderByValue(value) {
249
288
  await this.orderByDropDownBox.selectOption({ label: value });
@@ -304,6 +343,9 @@ class DataTypeUiHelper extends UiBaseLocators_1.UiBaseLocators {
304
343
  await this.stepSizeTxt.clear();
305
344
  await this.stepSizeTxt.fill(value);
306
345
  }
346
+ async clickAllowDecimalsSlider() {
347
+ await this.allowDecimalsSlider.click();
348
+ }
307
349
  // Radiobox
308
350
  async removeOptionByName(name) {
309
351
  await this.page.locator("uui-button[label='Delete " + name + "'] svg").click();
@@ -363,7 +405,7 @@ class DataTypeUiHelper extends UiBaseLocators_1.UiBaseLocators {
363
405
  async clickHideAnchorQueryStringInputSlider() {
364
406
  await this.hideAnchorQueryStringInputSlider.click();
365
407
  }
366
- // Multiple Media Picker
408
+ // Media Picker
367
409
  async clickPickMultipleItemsSlider() {
368
410
  await this.pickMultipleItemsSlider.click();
369
411
  }
@@ -376,8 +418,21 @@ class DataTypeUiHelper extends UiBaseLocators_1.UiBaseLocators {
376
418
  await this.amountHighValueTxt.clear();
377
419
  await this.amountHighValueTxt.fill(highValue);
378
420
  }
379
- async clickIgnoreUserStartNodesCamelSlider() {
380
- await this.ignoreUserStartNodesCamelSlider.click();
421
+ async addAcceptedType(mediaTypeName) {
422
+ await this.chooseAcceptedTypesBtn.click();
423
+ await this.clickTextButtonWithName(mediaTypeName);
424
+ await this.chooseModalBtn.click();
425
+ }
426
+ async removeAcceptedType(mediaTypeName) {
427
+ await this.page.locator('uui-ref-node-document-type[name="' + mediaTypeName + '"]').getByLabel('Remove ' + mediaTypeName).click();
428
+ await this.confirmToRemoveBtn.click();
429
+ }
430
+ async clickChooseWithPlusButton() {
431
+ await this.chooseWithPlusBtn.click();
432
+ }
433
+ async removeMediaStartNode(mediaName) {
434
+ await this.page.locator('uui-card-media[name="' + mediaName + '"]').locator('[label="Remove media ' + mediaName + '"]').click();
435
+ await this.confirmToRemoveBtn.click();
381
436
  }
382
437
  // Richtext Editor
383
438
  async pickTheToolbarOptionByValue(values) {
@@ -403,15 +458,30 @@ class DataTypeUiHelper extends UiBaseLocators_1.UiBaseLocators {
403
458
  async clickHideLabelSlider() {
404
459
  await this.hideLabelSlider.click();
405
460
  }
461
+ async clickInlineRadioButton() {
462
+ await this.inlineRadioBtn.click();
463
+ }
464
+ async addImageUploadFolder(mediaFolderName) {
465
+ await this.clickChooseWithPlusButton();
466
+ await this.clickTextButtonWithName(mediaFolderName);
467
+ await this.chooseModalBtn.click();
468
+ }
406
469
  // Tags
407
470
  async enterDefineTagGroupValue(value) {
408
471
  await this.defineTagGroupTxt.clear();
409
472
  await this.defineTagGroupTxt.fill(value);
410
473
  }
474
+ async selectStorageTypeOption(option) {
475
+ await this.storageTypeDropDownBox.selectOption({ label: option });
476
+ }
411
477
  // Content Picker
412
478
  async clickShowOpenButtonSlider() {
413
479
  await this.showOpenButtonSlider.click();
414
480
  }
481
+ async removeContentStartNode(contentName) {
482
+ await this.page.locator('[name="' + contentName + '"] uui-button').getByLabel('Remove').click();
483
+ await this.confirmToRemoveBtn.click();
484
+ }
415
485
  // Dropdown
416
486
  async clickEnableMultipleChoiceSlider() {
417
487
  await this.enableMultipleChoiceSlider.click();