Removed population of Urls on document response model and obsoleted property (#19030)

* Removed population of Urls on document response model and obsoleted property.

* Updated readme for acceptance tests to show how to run a single test.

* Removed URLs from document models on the client-side and fixed issue with link picker stil using legacy URLs response data.

---------

Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
Co-authored-by: Kenn Jacobsen <kja@umbraco.dk>
This commit is contained in:
Andy Butland
2025-04-23 12:58:38 +02:00
committed by GitHub
parent 3187d99d23
commit b898eb6e03
29 changed files with 78 additions and 125 deletions

View File

@@ -45,8 +45,6 @@ internal sealed class DocumentPresentationFactory : IDocumentPresentationFactory
{
DocumentResponseModel responseModel = _umbracoMapper.Map<DocumentResponseModel>(content)!;
responseModel.Urls = await _documentUrlFactory.CreateUrlsAsync(content);
Guid? templateKey = content.TemplateId.HasValue
? _templateService.GetAsync(content.TemplateId.Value).Result?.Key
: null;
@@ -62,8 +60,6 @@ internal sealed class DocumentPresentationFactory : IDocumentPresentationFactory
{
PublishedDocumentResponseModel responseModel = _umbracoMapper.Map<PublishedDocumentResponseModel>(content)!;
responseModel.Urls = await _documentUrlFactory.CreateUrlsAsync(content);
Guid? templateKey = content.PublishTemplateId.HasValue
? _templateService.GetAsync(content.PublishTemplateId.Value).Result?.Key
: null;
@@ -80,8 +76,6 @@ internal sealed class DocumentPresentationFactory : IDocumentPresentationFactory
DocumentResponseModel responseModel = _umbracoMapper.Map<DocumentResponseModel>(content)!;
_umbracoMapper.Map(schedule, responseModel);
responseModel.Urls = await _documentUrlFactory.CreateUrlsAsync(content);
Guid? templateKey = content.TemplateId.HasValue
? _templateService.GetAsync(content.TemplateId.Value).Result?.Key
: null;

View File

@@ -1,7 +1,8 @@
namespace Umbraco.Cms.Api.Management.ViewModels.Document;
namespace Umbraco.Cms.Api.Management.ViewModels.Document;
public class DocumentResponseModel : DocumentResponseModelBase<DocumentValueResponseModel, DocumentVariantResponseModel>
{
[Obsolete("This property is no longer populated. Please use /document/{id}/urls instead to retrieve the URLs for a document. Scheduled for removal in Umbraco 17.")]
public IEnumerable<DocumentUrlInfo> Urls { get; set; } = Enumerable.Empty<DocumentUrlInfo>();
public ReferenceByIdModel? Template { get; set; }

View File

@@ -11,12 +11,7 @@ export type UmbMockDocumentModel = DocumentResponseModel & DocumentTreeItemRespo
export const data: Array<UmbMockDocumentModel> = [
{
ancestors: [],
urls: [
{
culture: 'en-US',
url: '/',
},
],
urls: [],
template: null,
id: 'the-simplest-document-id',
createDate: '2023-02-06T15:32:05.350038',

View File

@@ -25,7 +25,6 @@ describe('UmbValidationPropertyPathTranslationController', () => {
unique: 'test',
isTrashed: false,
template: null,
urls: [],
values: [
{
alias: 'headline',

View File

@@ -47,12 +47,6 @@ describe('UmbSelectionManager', () => {
let publishedDocument: UmbDocumentDetailModel;
let documentBase: UmbDocumentDetailModel = {
entityType: UMB_DOCUMENT_ENTITY_TYPE,
urls: [
{
culture: 'en-US',
url: '/document-1',
},
],
template: null,
unique: '1',
documentType: {
@@ -118,12 +112,6 @@ describe('UmbSelectionManager', () => {
let publishedDocument: UmbDocumentDetailModel;
let documentBase: UmbDocumentDetailModel = {
entityType: UMB_DOCUMENT_ENTITY_TYPE,
urls: [
{
culture: 'en-US',
url: '/document-1',
},
],
template: null,
unique: '1',
documentType: {

View File

@@ -182,12 +182,6 @@ export class UmbDocumentPublishingServerDataSource {
scheduledUnpublishDate: variant.scheduledUnpublishDate || null,
};
}),
urls: data.urls.map((url) => {
return {
culture: url.culture || null,
url: url.url,
};
}),
template: data.template ? { unique: data.template.id } : null,
documentType: {
unique: data.documentType.id,

View File

@@ -37,7 +37,6 @@ export class UmbDocumentServerDataSource implements UmbDetailDataSource<UmbDocum
const data: UmbDocumentDetailModel = {
entityType: UMB_DOCUMENT_ENTITY_TYPE,
unique: UmbId.new(),
urls: [],
template: null,
documentType: {
unique: '',
@@ -114,12 +113,6 @@ export class UmbDocumentServerDataSource implements UmbDetailDataSource<UmbDocum
scheduledUnpublishDate: variant.scheduledUnpublishDate || null,
};
}),
urls: data.urls.map((url) => {
return {
culture: url.culture || null,
url: url.url,
};
}),
template: data.template ? { unique: data.template.id } : null,
documentType: {
unique: data.documentType.id,

View File

@@ -29,7 +29,6 @@ export interface UmbDocumentDetailModel extends UmbContentDetailModel {
entityType: UmbDocumentEntityType;
isTrashed: boolean;
template: { unique: string } | null;
urls: Array<UmbDocumentUrlInfoModel>;
values: Array<UmbDocumentValueModel>;
variants: Array<UmbDocumentVariantModel>;
}

View File

@@ -67,7 +67,6 @@ export class UmbDocumentWorkspaceContext
readonly contentTypeHasCollection = this._data.createObservablePartOfCurrent(
(data) => !!data?.documentType.collection,
);
readonly urls = this._data.createObservablePartOfCurrent((data) => data?.urls || []);
readonly templateId = this._data.createObservablePartOfCurrent((data) => data?.template?.unique || null);
#isTrashedContext = new UmbIsTrashedEntityContext(this);

View File

@@ -8,7 +8,7 @@ import { css, customElement, html, nothing, query, state, when } from '@umbraco-
import { isUmbracoFolder, UmbMediaTypeStructureRepository } from '@umbraco-cms/backoffice/media-type';
import { umbBindToValidation, UmbValidationContext } from '@umbraco-cms/backoffice/validation';
import { umbConfirmModal, UmbModalBaseElement } from '@umbraco-cms/backoffice/modal';
import { UmbDocumentDetailRepository } from '@umbraco-cms/backoffice/document';
import { UmbDocumentDetailRepository, UmbDocumentUrlRepository } from '@umbraco-cms/backoffice/document';
import { UmbMediaDetailRepository } from '@umbraco-cms/backoffice/media';
import type { UmbInputDocumentElement } from '@umbraco-cms/backoffice/document';
import type { UmbInputMediaElement } from '@umbraco-cms/backoffice/media';
@@ -136,7 +136,9 @@ export class UmbLinkPickerModalElement extends UmbModalBaseElement<UmbLinkPicker
if (documentData) {
icon = documentData.documentType.icon;
name = documentData.variants[0].name;
url = documentData.urls[0]?.url ?? '';
const documentUrlRepository = new UmbDocumentUrlRepository(this);
const { data: documentUrlData } = await documentUrlRepository.requestItems([unique]);
url = documentUrlData?.[0].urls[0].url ?? '';
}
break;
}

View File

@@ -24,14 +24,22 @@ There are two npm scripts that can be used to execute the test:
### Executing single tests
If you wish to run a single test, which may be helpful when writing tests you can use the following command. As before, you need to run these tests in the 'tests/Umbraco.Tests.AcceptanceTest' folder.
If you wish to run a single set of tests, which may be helpful when writing tests you can use the following command. As before, you need to run these tests in the 'tests/Umbraco.Tests.AcceptanceTest' folder.
npx playwright test <testname.ts>
For example to run the Login Test,
For example to run the Login Test:
npx playwright test tests/DefaultConfig/Login/Login.spec.ts
To run a single test (if you have several in a file), you can use this syntax.
npx playwright test -g "<name of test>"
For example:
npx playwright test -g "can create content with the document link"
### Executing tests in UI Mode
If you would like to have an overview of all your test, to be able to see all the steps in the tests being executed and you would like to be able to run all of your tests one after another, and maybe only just one test. Then you should use UI Mode. As before, you need to run these commands in the 'tests/Umbraco.Tests.AcceptanceTest' folder.

View File

@@ -8,7 +8,7 @@
"hasInstallScript": true,
"dependencies": {
"@umbraco/json-models-builders": "^2.0.31",
"@umbraco/playwright-testhelpers": "^16.0.2",
"@umbraco/playwright-testhelpers": "^16.0.3",
"camelize": "^1.0.0",
"dotenv": "^16.3.1",
"node-fetch": "^2.6.7"
@@ -67,9 +67,9 @@
}
},
"node_modules/@umbraco/playwright-testhelpers": {
"version": "16.0.2",
"resolved": "https://registry.npmjs.org/@umbraco/playwright-testhelpers/-/playwright-testhelpers-16.0.2.tgz",
"integrity": "sha512-zYlUiiJ31UbySdRl5+J5D+uGd7Kq/jz5cV/D2fao4KarZs1OXxLDx84mvdGa1o/TctJNfgjw9Igylt1cRD9YrA==",
"version": "16.0.3",
"resolved": "https://registry.npmjs.org/@umbraco/playwright-testhelpers/-/playwright-testhelpers-16.0.3.tgz",
"integrity": "sha512-hul0tWdNxzXMx901ZadX8IgAHpMQGAwhrZrfLEoxTIOSwytGoTPsfOSFUNhBhzU6yNXdt0Oi6g4aggmjrJARfg==",
"license": "MIT",
"dependencies": {
"@umbraco/json-models-builders": "2.0.31",

View File

@@ -21,7 +21,7 @@
},
"dependencies": {
"@umbraco/json-models-builders": "^2.0.31",
"@umbraco/playwright-testhelpers": "^16.0.2",
"@umbraco/playwright-testhelpers": "^16.0.3",
"camelize": "^1.0.0",
"dotenv": "^16.3.1",
"node-fetch": "^2.6.7"

View File

@@ -22,9 +22,8 @@ test.afterEach(async ({umbracoApi}) => {
test('can render content with an approved color with label', async ({umbracoApi, umbracoUi}) => {
// Arrange
const templateId = await umbracoApi.template.createTemplateWithDisplayingApprovedColorValue(templateName, AliasHelper.toAlias(propertyName));
await umbracoApi.document.createPublishedDocumentWithValue(contentName, colorValue, dataTypeId, templateId, propertyName, documentTypeName);
const contentData = await umbracoApi.document.getByName(contentName);
const contentURL = contentData.urls[0].url;
const contentKey = await umbracoApi.document.createPublishedDocumentWithValue(contentName, colorValue, dataTypeId, templateId, propertyName, documentTypeName);
const contentURL = await umbracoApi.document.getDocumentUrl(contentKey);
// Act
await umbracoUi.contentRender.navigateToRenderedContentPage(contentURL);
@@ -36,9 +35,8 @@ test('can render content with an approved color with label', async ({umbracoApi,
test('can render content with an approved color without label', async ({umbracoApi, umbracoUi}) => {
// Arrange
const templateId = await umbracoApi.template.createTemplateWithDisplayingApprovedColorValue(templateName, AliasHelper.toAlias(propertyName), false);
await umbracoApi.document.createPublishedDocumentWithValue(contentName, colorValue, dataTypeId, templateId, propertyName, documentTypeName);
const contentData = await umbracoApi.document.getByName(contentName);
const contentURL = contentData.urls[0].url;
const contentKey = await umbracoApi.document.createPublishedDocumentWithValue(contentName, colorValue, dataTypeId, templateId, propertyName, documentTypeName);
const contentURL = await umbracoApi.document.getDocumentUrl(contentKey);
// Act
await umbracoUi.contentRender.navigateToRenderedContentPage(contentURL);

View File

@@ -25,9 +25,8 @@ for (const checkbox of checkboxList) {
const checkboxValue = checkbox.value;
const dataTypeId = await umbracoApi.dataType.createCheckboxListDataType(customDataTypeName, checkboxValue);
const templateId = await umbracoApi.template.createTemplateWithDisplayingMulitpleStringValue(templateName, AliasHelper.toAlias(propertyName));
await umbracoApi.document.createPublishedDocumentWithValue(contentName, checkboxValue, dataTypeId, templateId, propertyName, documentTypeName);
const contentData = await umbracoApi.document.getByName(contentName);
const contentURL = contentData.urls[0].url;
const contentKey = await umbracoApi.document.createPublishedDocumentWithValue(contentName, checkboxValue, dataTypeId, templateId, propertyName, documentTypeName);
const contentURL = await umbracoApi.document.getDocumentUrl(contentKey);
// Act
await umbracoUi.contentRender.navigateToRenderedContentPage(contentURL);

View File

@@ -29,9 +29,8 @@ test.afterEach(async ({umbracoApi}) => {
test('can render content with content picker value', async ({umbracoApi, umbracoUi}) => {
// Arrange
const templateId = await umbracoApi.template.createTemplateWithDisplayingContentPickerValue(templateName, AliasHelper.toAlias(propertyName));
await umbracoApi.document.createPublishedDocumentWithValue(contentName, contentPickerId, dataTypeData.id, templateId, propertyName, documentTypeName);
const contentData = await umbracoApi.document.getByName(contentName);
const contentURL = contentData.urls[0].url;
const contentKey = await umbracoApi.document.createPublishedDocumentWithValue(contentName, contentPickerId, dataTypeData.id, templateId, propertyName, documentTypeName);
const contentURL = await umbracoApi.document.getDocumentUrl(contentKey);
// Act
await umbracoUi.contentRender.navigateToRenderedContentPage(contentURL);

View File

@@ -22,9 +22,8 @@ for (const dateTime of dateTimes) {
test(`can render content with a date ${dateTime.type}`, async ({umbracoApi, umbracoUi}) => {
const dataTypeData = await umbracoApi.dataType.getByName(dateTime.dataTypeName);
const templateId = await umbracoApi.template.createTemplateWithDisplayingStringValue(templateName, AliasHelper.toAlias(propertyName));
await umbracoApi.document.createPublishedDocumentWithValue(contentName, dateTime.value, dataTypeData.id, templateId, propertyName, documentTypeName);
const contentData = await umbracoApi.document.getByName(contentName);
const contentURL = contentData.urls[0].url;
const contentKey = await umbracoApi.document.createPublishedDocumentWithValue(contentName, dateTime.value, dataTypeData.id, templateId, propertyName, documentTypeName);
const contentURL= await umbracoApi.document.getDocumentUrl(contentKey);
// Act
await umbracoUi.contentRender.navigateToRenderedContentPage(contentURL);

View File

@@ -29,9 +29,8 @@ for (const dropdown of dropdownValues) {
} else {
templateId = await umbracoApi.template.createTemplateWithDisplayingStringValue(templateName, AliasHelper.toAlias(propertyName));
}
await umbracoApi.document.createPublishedDocumentWithValue(contentName, dropdown.value, dataTypeId, templateId, propertyName, documentTypeName);
const contentData = await umbracoApi.document.getByName(contentName);
const contentURL = contentData.urls[0].url;
const contentKey = await umbracoApi.document.createPublishedDocumentWithValue(contentName, dropdown.value, dataTypeId, templateId, propertyName, documentTypeName);
const contentURL = await umbracoApi.document.getDocumentUrl(contentKey);
// Act
await umbracoUi.contentRender.navigateToRenderedContentPage(contentURL);

View File

@@ -25,7 +25,7 @@ test('can render content with an image cropper', async ({umbracoApi, umbracoUi})
const templateId = await umbracoApi.template.createTemplateWithDisplayingImageCropperValue(templateName, AliasHelper.toAlias(propertyName), AliasHelper.toAlias(cropValue.label));
await umbracoApi.document.createPublishedDocumentWithImageCropper(contentName, cropValue, dataTypeId, templateId, propertyName, documentTypeName);
const contentData = await umbracoApi.document.getByName(contentName);
const contentURL = contentData.urls[0].url;
const contentURL = await umbracoApi.document.getDocumentUrl(contentData.id);
const imageSrc = contentData.values[0].value.src;
// Act

View File

@@ -29,9 +29,8 @@ test('can render content with member picker value', async ({umbracoApi, umbracoU
const memberTypeId = await umbracoApi.memberType.createDefaultMemberType(memberTypeName);
const memberId = await umbracoApi.member.createDefaultMember(memberName, memberTypeId, email, username, password);
const templateId = await umbracoApi.template.createTemplateWithDisplayingMemberPickerValue(templateName, AliasHelper.toAlias(propertyName));
await umbracoApi.document.createPublishedDocumentWithValue(contentName, memberId, dataTypeData.id, templateId, propertyName, documentTypeName);
const contentData = await umbracoApi.document.getByName(contentName);
const contentURL = contentData.urls[0].url;
const contentKey = await umbracoApi.document.createPublishedDocumentWithValue(contentName, memberId, dataTypeData.id, templateId, propertyName, documentTypeName);
const contentURL = await umbracoApi.document.getDocumentUrl(contentKey);
// Act
await umbracoUi.contentRender.navigateToRenderedContentPage(contentURL);

View File

@@ -27,9 +27,8 @@ test('can render content with document link value', async ({umbracoApi, umbracoU
await umbracoApi.document.publish(linkedDocumentId);
// Create a published document with document link value
const templateId = await umbracoApi.template.createTemplateWithDisplayingMultiURLPickerValue(templateName, AliasHelper.toAlias(propertyName));
await umbracoApi.document.createPublishedDocumentWithDocumentLinkURLPicker(contentName, linkedDocumentName, linkedDocumentId, dataTypeData.id, templateId, propertyName, documentTypeName);
const contentData = await umbracoApi.document.getByName(contentName);
const contentURL = contentData.urls[0].url;
const contentKey = await umbracoApi.document.createPublishedDocumentWithDocumentLinkURLPicker(contentName, linkedDocumentName, linkedDocumentId, dataTypeData.id, templateId, propertyName, documentTypeName);
const contentURL = await umbracoApi.document.getDocumentUrl(contentKey);
// Act
await umbracoUi.contentRender.navigateToRenderedContentPage(contentURL);
@@ -50,9 +49,8 @@ test('can render content with media link value', async ({umbracoApi, umbracoUi})
const mediaFileId = await umbracoApi.media.createDefaultMediaWithImage(mediaFileName);
// Create a published document with media link value
const templateId = await umbracoApi.template.createTemplateWithDisplayingMultiURLPickerValue(templateName, AliasHelper.toAlias(propertyName));
await umbracoApi.document.createPublishedDocumentWithImageLinkURLPicker(contentName, mediaFileName, mediaFileId, dataTypeData.id, templateId, propertyName, documentTypeName);
const contentData = await umbracoApi.document.getByName(contentName);
const contentURL = contentData.urls[0].url;
const contentKey = await umbracoApi.document.createPublishedDocumentWithImageLinkURLPicker(contentName, mediaFileName, mediaFileId, dataTypeData.id, templateId, propertyName, documentTypeName);
const contentURL = await umbracoApi.document.getDocumentUrl(contentKey);
// Act
await umbracoUi.contentRender.navigateToRenderedContentPage(contentURL);
@@ -70,9 +68,8 @@ test('can render content with external link value', async ({umbracoApi, umbracoU
const linkTitle = 'Umbraco Documentation';
// Create a published document with external link value
const templateId = await umbracoApi.template.createTemplateWithDisplayingMultiURLPickerValue(templateName, AliasHelper.toAlias(propertyName));
await umbracoApi.document.createPublishedDocumentWithExternalLinkURLPicker(contentName, linkTitle, linkUrl, dataTypeData.id, templateId, propertyName, documentTypeName);
const contentData = await umbracoApi.document.getByName(contentName);
const contentURL = contentData.urls[0].url;
const contentKey = await umbracoApi.document.createPublishedDocumentWithExternalLinkURLPicker(contentName, linkTitle, linkUrl, dataTypeData.id, templateId, propertyName, documentTypeName);
const contentURL = await umbracoApi.document.getDocumentUrl(contentKey);
// Act
await umbracoUi.contentRender.navigateToRenderedContentPage(contentURL);
@@ -91,9 +88,8 @@ test('can render content with multiple url value', async ({umbracoApi, umbracoUi
const mediaFileId = await umbracoApi.media.createDefaultMediaWithImage(mediaFileName);
// Create a published document with external link value and image url value
const templateId = await umbracoApi.template.createTemplateWithDisplayingMultiURLPickerValue(templateName, AliasHelper.toAlias(propertyName));
await umbracoApi.document.createPublishedDocumentWithImageLinkAndExternalLink(contentName, mediaFileName, mediaFileId, linkTitle, linkUrl, dataTypeData.id, templateId, propertyName, documentTypeName);
const contentData = await umbracoApi.document.getByName(contentName);
const contentURL = contentData.urls[0].url;
const contentKey = await umbracoApi.document.createPublishedDocumentWithImageLinkAndExternalLink(contentName, mediaFileName, mediaFileId, linkTitle, linkUrl, dataTypeData.id, templateId, propertyName, documentTypeName);
const contentURL = await umbracoApi.document.getDocumentUrl(contentKey);
// Act
await umbracoUi.contentRender.navigateToRenderedContentPage(contentURL);

View File

@@ -29,9 +29,8 @@ test('can render content with multiple media picker value', async ({umbracoApi,
const secondMediaFileId = await umbracoApi.media.createDefaultMediaWithArticle(secondMediaFileName);
// Create a published document with multiple media picker value
const templateId = await umbracoApi.template.createTemplateWithDisplayingMultipleMediaPickerValue(templateName, AliasHelper.toAlias(propertyName));
await umbracoApi.document.createPublishedDocumentWithTwoMediaPicker(contentName, firstMediaFileId, secondMediaFileId, dataTypeData.id, templateId, propertyName, documentTypeName);
const contentData = await umbracoApi.document.getByName(contentName);
const contentURL = contentData.urls[0].url;
const contentKey = await umbracoApi.document.createPublishedDocumentWithTwoMediaPicker(contentName, firstMediaFileId, secondMediaFileId, dataTypeData.id, templateId, propertyName, documentTypeName);
const contentURL = await umbracoApi.document.getDocumentUrl(contentKey);
// Act
await umbracoUi.contentRender.navigateToRenderedContentPage(contentURL);
@@ -51,9 +50,8 @@ test.fixme('can render content with multiple image media picker value', async ({
const secondMediaFileId = await umbracoApi.media.createDefaultMediaWithImage(secondMediaFileName);
// Create a published document with multiple image media picker value
const templateId = await umbracoApi.template.createTemplateWithDisplayingMultipleMediaPickerValue(templateName, AliasHelper.toAlias(propertyName));
await umbracoApi.document.createPublishedDocumentWithTwoMediaPicker(contentName, firstMediaFileId, secondMediaFileId, dataTypeData.id, templateId, propertyName, documentTypeName);
const contentData = await umbracoApi.document.getByName(contentName);
const contentURL = contentData.urls[0].url;
const contentKey = await umbracoApi.document.createPublishedDocumentWithTwoMediaPicker(contentName, firstMediaFileId, secondMediaFileId, dataTypeData.id, templateId, propertyName, documentTypeName);
const contentURL = await umbracoApi.document.getDocumentUrl(contentKey);
// Act
await umbracoUi.contentRender.navigateToRenderedContentPage(contentURL);

View File

@@ -27,9 +27,8 @@ for (const numeric of numerics) {
// Arrange
const numericValue = numeric.value;
const templateId = await umbracoApi.template.createTemplateWithDisplayingStringValue(templateName, AliasHelper.toAlias(propertyName));
await umbracoApi.document.createPublishedDocumentWithValue(contentName, numericValue, dataTypeData.id, templateId, propertyName, documentTypeName);
const contentData = await umbracoApi.document.getByName(contentName);
const contentURL = contentData.urls[0].url;
const contentKey = await umbracoApi.document.createPublishedDocumentWithValue(contentName, numericValue, dataTypeData.id, templateId, propertyName, documentTypeName);
const contentURL = await umbracoApi.document.getDocumentUrl(contentKey);
// Act
await umbracoUi.contentRender.navigateToRenderedContentPage(contentURL);

View File

@@ -23,9 +23,8 @@ for (const radiobox of radioboxValues) {
// Arrange
const dataTypeId = await umbracoApi.dataType.createRadioboxDataType(customDataTypeName, [radiobox.value]);
const templateId = await umbracoApi.template.createTemplateWithDisplayingStringValue(templateName, AliasHelper.toAlias(propertyName));
await umbracoApi.document.createPublishedDocumentWithValue(contentName, radiobox.value, dataTypeId, templateId, propertyName, documentTypeName);
const contentData = await umbracoApi.document.getByName(contentName);
const contentURL = contentData.urls[0].url;
const contentKey = await umbracoApi.document.createPublishedDocumentWithValue(contentName, radiobox.value, dataTypeId, templateId, propertyName, documentTypeName);
const contentURL = await umbracoApi.document.getDocumentUrl(contentKey);
// Act
await umbracoUi.contentRender.navigateToRenderedContentPage(contentURL);

View File

@@ -28,9 +28,8 @@ for (const tag of tags) {
// Arrange
const tagValue = tag.value;
const templateId = await umbracoApi.template.createTemplateWithDisplayingMulitpleStringValue(templateName, AliasHelper.toAlias(propertyName));
await umbracoApi.document.createPublishedDocumentWithValue(contentName, tagValue, dataTypeData.id, templateId, propertyName, documentTypeName);
const contentData = await umbracoApi.document.getByName(contentName);
const contentURL = contentData.urls[0].url;
const contentKey = await umbracoApi.document.createPublishedDocumentWithValue(contentName, tagValue, dataTypeData.id, templateId, propertyName, documentTypeName);
const contentURL = await umbracoApi.document.getDocumentUrl(contentKey);
// Act
await umbracoUi.contentRender.navigateToRenderedContentPage(contentURL);

View File

@@ -31,9 +31,8 @@ for (const textarea of textareas) {
// Arrange
const textareaValue = textarea.value;
const templateId = await umbracoApi.template.createTemplateWithDisplayingStringValue(templateName, AliasHelper.toAlias(propertyName));
await umbracoApi.document.createPublishedDocumentWithValue(contentName, textareaValue, dataTypeData.id, templateId, propertyName, documentTypeName);
const contentData = await umbracoApi.document.getByName(contentName);
const contentURL = contentData.urls[0].url;
const contentKey = await umbracoApi.document.createPublishedDocumentWithValue(contentName, textareaValue, dataTypeData.id, templateId, propertyName, documentTypeName);
const contentURL = await umbracoApi.document.getDocumentUrl(contentKey);
// Act
await umbracoUi.contentRender.navigateToRenderedContentPage(contentURL);

View File

@@ -31,9 +31,8 @@ for (const textstring of textstrings) {
// Arrange
const textstringValue = textstring.value;
const templateId = await umbracoApi.template.createTemplateWithDisplayingStringValue(templateName, AliasHelper.toAlias(propertyName));
await umbracoApi.document.createPublishedDocumentWithValue(contentName, textstringValue, dataTypeData.id, templateId, propertyName, documentTypeName);
const contentData = await umbracoApi.document.getByName(contentName);
const contentURL = contentData.urls[0].url;
const contentKey = await umbracoApi.document.createPublishedDocumentWithValue(contentName, textstringValue, dataTypeData.id, templateId, propertyName, documentTypeName);
const contentURL = await umbracoApi.document.getDocumentUrl(contentKey);
// Act
await umbracoUi.contentRender.navigateToRenderedContentPage(contentURL);

View File

@@ -26,9 +26,8 @@ for (const trueFalse of trueFalseValues) {
test(`can render content with ${trueFalse.type}`, async ({umbracoApi, umbracoUi}) => {
// Arrange
const templateId = await umbracoApi.template.createTemplateWithDisplayingStringValue(templateName, AliasHelper.toAlias(propertyName));
await umbracoApi.document.createPublishedDocumentWithValue(contentName, trueFalse.value, dataTypeData.id, templateId, propertyName, documentTypeName);
const contentData = await umbracoApi.document.getByName(contentName);
const contentURL = contentData.urls[0].url;
const contentKey = await umbracoApi.document.createPublishedDocumentWithValue(contentName, trueFalse.value, dataTypeData.id, templateId, propertyName, documentTypeName);
const contentURL = await umbracoApi.document.getDocumentUrl(contentKey);
// Act
await umbracoUi.contentRender.navigateToRenderedContentPage(contentURL);

View File

@@ -27,7 +27,7 @@ for (const uploadedFile of uploadedFileList) {
const templateId = await umbracoApi.template.createTemplateWithDisplayingUploadedFileValue(templateName, AliasHelper.toAlias(propertyName));
await umbracoApi.document.createPublishedDocumentWithUploadFile(contentName, uploadedFile.uploadedFileName, uploadedFile.mineType, dataTypeData.id, templateId, propertyName, documentTypeName);
const contentData = await umbracoApi.document.getByName(contentName);
const contentURL = contentData.urls[0].url;
const contentURL = await umbracoApi.document.getDocumentUrl(contentData.id);
const uploadFileSrc = contentData.values[0].value.src;
// Act