@umbraco/playwright-testhelpers
Version:
Test helpers for making playwright tests for Umbraco solutions
122 lines • 4.91 kB
JavaScript
"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