UNPKG

@umbraco/playwright-testhelpers

Version:

Test helpers for making playwright tests for Umbraco solutions

122 lines 4.91 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MemberTypeApiHelper = void 0; const AliasHelper_1 = require("./AliasHelper"); const json_models_builders_1 = require("@umbraco/json-models-builders"); class MemberTypeApiHelper { api; constructor(api) { this.api = api; } async ensureNameNotExists(name) { const rootMemberTypes = await this.getAllAtRoot(); const jsonMemberTypes = await rootMemberTypes.json(); for (const memberType of jsonMemberTypes.items) { if (memberType.name === name) { return await this.delete(memberType.id); } } return null; } async create(memberType) { if (memberType == null) { return; } const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/member-type', memberType); return response.headers().location.split("v1/member-type/").pop(); } async update(id, updatedMemberType) { if (updatedMemberType == null) { return; } return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/member-type/' + id, updatedMemberType); } async get(id) { const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/member-type/' + id); return await response.json(); } async delete(id) { if (id == null) { return; } const response = await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/member-type/' + id); return response.status(); } async getAllAtRoot() { return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/member-type/root?skip=0&take=10000'); } async getByName(name) { const rootMemberTypes = await this.getAllAtRoot(); const jsonMemberTypes = await rootMemberTypes.json(); for (const memberType of jsonMemberTypes.items) { if (memberType.name === name) { return this.get(memberType.id); } } return false; } async doesExist(id) { const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/member-type/' + id); return response.status() === 200; } async doesNameExist(name) { return await this.getByName(name); } async createDefaultMemberType(memberTypeName) { await this.ensureNameNotExists(memberTypeName); const memberType = new json_models_builders_1.MemberTypeBuilder() .withName(memberTypeName) .withAlias(AliasHelper_1.AliasHelper.toAlias(memberTypeName)) .withAllowedAsRoot(true) .build(); return await this.create(memberType); } async createMemberTypeWithPropertyEditor(memberTypeName, dataTypeName, dataTypeId, groupName = "GroupTest") { const crypto = require('crypto'); const containerId = crypto.randomUUID(); const memberType = new json_models_builders_1.MemberTypeBuilder() .withName(memberTypeName) .withAlias(AliasHelper_1.AliasHelper.toAlias(memberTypeName)) .addContainer() .withName(groupName) .withId(containerId) .withType("Group") .done() .addProperty() .withContainerId(containerId) .withAlias(AliasHelper_1.AliasHelper.toAlias(dataTypeName)) .withName(dataTypeName) .withDataTypeId(dataTypeId) .done() .build(); return await this.create(memberType); } async createMemberTypeWithTwoPropertyEditors(memberTypeName, dataTypeNameOne, dataTypeIdOne, dataTypeNameTwo, dataTypeIdTwo, groupName = "GroupTest") { const crypto = require('crypto'); const containerId = crypto.randomUUID(); const memberType = new json_models_builders_1.MemberTypeBuilder() .withName(memberTypeName) .withAlias(AliasHelper_1.AliasHelper.toAlias(memberTypeName)) .addContainer() .withName(groupName) .withId(containerId) .withType("Group") .done() .addProperty() .withContainerId(containerId) .withAlias(AliasHelper_1.AliasHelper.toAlias(dataTypeNameOne)) .withName(dataTypeNameOne) .withDataTypeId(dataTypeIdOne) .done() .addProperty() .withContainerId(containerId) .withAlias(AliasHelper_1.AliasHelper.toAlias(dataTypeNameTwo)) .withName(dataTypeNameTwo) .withDataTypeId(dataTypeIdTwo) .done() .build(); return await this.create(memberType); } } exports.MemberTypeApiHelper = MemberTypeApiHelper; //# sourceMappingURL=MemberTypeApiHelper.js.map