UNPKG

@umbraco/playwright-testhelpers

Version:

Test helpers for making playwright tests for Umbraco solutions

96 lines 4.98 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ContentDeliveryApiHelper = void 0; const test_1 = require("@playwright/test"); class ContentDeliveryApiHelper { api; constructor(api) { this.api = api; } async getAllContentItems() { const response = await this.api.get(this.api.baseUrl + '/umbraco/delivery/api/v2/content?skip=0&take=10000'); return await response.json(); } async getContentItemWithId(id) { return await this.api.get(this.api.baseUrl + '/umbraco/delivery/api/v2/content/item/' + id); } async getContentItemWithRoute(route) { return await this.api.get(this.api.baseUrl + '/umbraco/delivery/api/v2/content/item' + route); } async getContentItemsWithIds(ids) { let query = '?'; for (let i = 0; i < ids.length; i++) { query += 'id=' + ids[i] + (i < ids.length - 1 ? '&' : ''); } return await this.api.get(this.api.baseUrl + '/umbraco/delivery/api/v2/content/items' + query); } async getContentItemsFromAQuery(fetch, filter, sort, skip, take) { let query = ''; if (fetch) { query += ' fetch=' + fetch; } if (filter) { query += ' filter=' + filter; } if (sort) { query += ' sort=' + sort; } if (skip !== undefined) { query += ' skip=' + skip; } if (take !== undefined) { query += ' take=' + take; } if (query !== '') { query = '?' + query.trim().replace(' ', '&'); } return await this.api.get(this.api.baseUrl + '/umbraco/delivery/api/v2/content' + query); } async verifyBasicPropertiesForContentItem(contentName, contentItemJson) { const contentData = await this.api.document.getByName(contentName); // Verify name, createDate, updateDate, id and contentType are always included in the response (0, test_1.expect)(contentItemJson.name).toBe(contentName); (0, test_1.expect)(new Date(contentItemJson.createDate)).toEqual(new Date(contentData.variants[0].createDate)); (0, test_1.expect)(new Date(contentItemJson.createDate)).toEqual(new Date(contentData.variants[0].createDate)); (0, test_1.expect)(contentItemJson.id).toBe(contentData.id); const contentTypeData = await this.api.documentType.get(contentData.documentType.id); (0, test_1.expect)(contentItemJson.contentType).toBe(contentTypeData.alias); // Verify route property const contentUrl = await this.api.document.getDocumentUrl(contentData.id); (0, test_1.expect)(contentItemJson.route.path).toBe(contentUrl); } async verifyEditorialPropertiesForContentItem(contentName, contentItemJson, isVariesByCulture = false) { const contentData = await this.api.document.getByName(contentName); let expectedProperties = {}; if (!isVariesByCulture) { for (const property of contentData.values) { expectedProperties[property.alias] = property.value; } (0, test_1.expect)(contentItemJson.properties).toEqual(expectedProperties); } } async verifyCulturePropertyForContentItem(contentName, contentItemJson, isVariesByCulture = false) { const contentData = await this.api.document.getByName(contentName); if (!isVariesByCulture) { (0, test_1.expect)(contentItemJson.cultures).toEqual({}); } else { (0, test_1.expect)(Object.keys(contentItemJson.cultures).length).toBe(contentData.variants.length); } } async verifyEditorialPropertiesForContentItemWithMultiURLPicker(contentName, contentItemJson, pickerType) { const contentData = await this.api.document.getByName(contentName); const multiUrlPickerProperty = contentData.values.find((p) => p.alias === 'multiUrlPicker'); const expectedMultiUrlPickerValue = multiUrlPickerProperty.value; const actualMultiUrlPickerValue = contentItemJson.properties['multiUrlPicker']; // Verify that the multi URL picker property has the expected structure and values (0, test_1.expect)(actualMultiUrlPickerValue[0].queryString).toBe(expectedMultiUrlPickerValue[0].queryString); (0, test_1.expect)(actualMultiUrlPickerValue[0].title).toBe(expectedMultiUrlPickerValue[0].name); (0, test_1.expect)(actualMultiUrlPickerValue[0].target).toBe(expectedMultiUrlPickerValue[0].target); (0, test_1.expect)(actualMultiUrlPickerValue[0].destinationId).toBe(expectedMultiUrlPickerValue[0].unique); (0, test_1.expect)(actualMultiUrlPickerValue[0].route.path).toBe(expectedMultiUrlPickerValue[0].url); (0, test_1.expect)(actualMultiUrlPickerValue[0].linkType).toBe(pickerType); } } exports.ContentDeliveryApiHelper = ContentDeliveryApiHelper; //# sourceMappingURL=ContentDeliveryApiHelper.js.map