From 41bf7419013e42cd74a804fcd17a0e3eb48b793c Mon Sep 17 00:00:00 2001 From: Nhu Dinh <150406148+nhudinh0309@users.noreply.github.com> Date: Wed, 14 May 2025 16:10:03 +0700 Subject: [PATCH] V16 QA Fixing the failing E2E tests (#19318) * Updated nightly E2E pipeline * Fixed failing E2E tests * Skipped content tests wirh list view content due to an issue * Updated tests due to UI changes * Bumped version * Added more waits --- build/nightly-E2E-test-pipelines.yml | 61 ++++++++++++------- .../BlockGrid/VariantBlockGrid.spec.ts | 5 -- .../BlockList/VariantBlockList.spec.ts | 4 -- .../ClipboardBlockGridBlocks.spec.ts | 2 +- .../ClipboardBlockListBlocks.spec.ts | 2 +- .../Content/ContentInfoTab.spec.ts | 3 +- .../Content/ContentWithCheckboxList.spec.ts | 4 -- .../Content/ContentWithCustomDataType.spec.ts | 3 +- .../ContentWithAllowVaryByCulture.spec.ts | 26 ++++---- .../Content/ContentWithDropdown.spec.ts | 4 -- .../ContentWithListViewContent.spec.ts | 46 +++++++++----- .../Content/ContentWithMediaPicker.spec.ts | 5 +- .../Content/ContentWithRadiobox.spec.ts | 4 -- .../Content/ContentWithTextarea.spec.ts | 6 +- .../Content/ContentWithTextstring.spec.ts | 5 +- .../Content/ContentWithTrueFalse.spec.ts | 3 +- .../Content/RedirectManagement.spec.ts | 11 ++-- .../VariantTipTapBlocks.spec.ts | 4 -- .../BlockGrid/BlockGridEditor.spec.ts | 3 +- .../DataTypeCollectionWorkspace.spec.ts | 4 +- .../Dictionary/Dictionary.spec.ts | 3 +- .../tests/DefaultConfig/Media/Media.spec.ts | 5 +- .../Settings/Dashboard/Welcome.spec.ts | 2 +- .../DocumentBlueprint.spec.ts | 2 +- .../DocumentType/DocumentTypeFolder.spec.ts | 1 + .../DocumentTypeSettingsTab.spec.ts | 3 +- .../Settings/Language/Language.spec.ts | 2 +- .../MediaType/MediaTypeDesignTab.spec.ts | 2 +- .../Settings/Template/Templates.spec.ts | 4 +- 29 files changed, 121 insertions(+), 108 deletions(-) diff --git a/build/nightly-E2E-test-pipelines.yml b/build/nightly-E2E-test-pipelines.yml index 2cb8237e25..f692360cc1 100644 --- a/build/nightly-E2E-test-pipelines.yml +++ b/build/nightly-E2E-test-pipelines.yml @@ -10,7 +10,7 @@ schedules: include: - v14/dev - v15/dev - - v16/dev + - main variables: nodeVersion: 20 @@ -33,25 +33,17 @@ stages: - job: A displayName: Build Umbraco CMS pool: - vmImage: 'ubuntu-latest' + vmImage: "windows-latest" steps: - checkout: self - fetchDepth: 0 - submodules: true + submodules: false + lfs: false, + fetchDepth: 500 + - template: templates/backoffice-install.yml - task: UseDotNet@2 displayName: Use .NET SDK from global.json inputs: useGlobalJson: true - - template: templates/backoffice-install.yml - - script: npm run build:for:cms - displayName: Run build (Bellissima) - workingDirectory: src/Umbraco.Web.UI.Client - - script: npm ci --no-fund --no-audit --prefer-offline - displayName: Run npm ci (Login) - workingDirectory: src/Umbraco.Web.UI.Login - - script: npm run build - displayName: Run npm build (Login) - workingDirectory: src/Umbraco.Web.UI.Login - task: DotNetCoreCLI@2 displayName: Run dotnet restore inputs: @@ -63,7 +55,7 @@ stages: inputs: command: build projects: $(solution) - arguments: '--configuration $(buildConfiguration) --no-restore --property:ContinuousIntegrationBuild=true --property:GeneratePackageOnBuild=true --property:PackageOutputPath=$(Build.ArtifactStagingDirectory)/nupkg' + arguments: "--configuration $(buildConfiguration) --no-restore --property:ContinuousIntegrationBuild=true --property:GeneratePackageOnBuild=true --property:PackageOutputPath=$(Build.ArtifactStagingDirectory)/nupkg" - task: PublishPipelineArtifact@1 displayName: Publish nupkg inputs: @@ -75,6 +67,33 @@ stages: targetPath: $(Build.SourcesDirectory) artifactName: build_output + - job: B + displayName: Build Bellissima Package + pool: + vmImage: "ubuntu-latest" + steps: + - checkout: self + submodules: false + lfs: false, + fetchDepth: 500 + - template: templates/backoffice-install.yml + - script: npm run build:for:npm + displayName: Run build:for:npm + workingDirectory: src/Umbraco.Web.UI.Client + - bash: | + echo "##[command]Running npm pack" + echo "##[debug]Output directory: $(Build.ArtifactStagingDirectory)" + mkdir $(Build.ArtifactStagingDirectory)/npm + npm pack --pack-destination $(Build.ArtifactStagingDirectory)/npm + mv .npmrc $(Build.ArtifactStagingDirectory)/npm/ + displayName: Run npm pack + workingDirectory: src/Umbraco.Web.UI.Client + - task: PublishPipelineArtifact@1 + displayName: Publish Bellissima npm artifact + inputs: + targetPath: $(Build.ArtifactStagingDirectory)/npm + artifactName: npm + - stage: E2E displayName: E2E Tests dependsOn: Build @@ -209,9 +228,9 @@ stages: displayName: Wait for application workingDirectory: tests/Umbraco.Tests.AcceptanceTest - # Install Playwright and dependencies - - pwsh: npx playwright install --with-deps - displayName: Install Playwright + # Install Playwright and dependencies + - pwsh: npx playwright install chromium + displayName: Install Playwright only with Chromium browser workingDirectory: tests/Umbraco.Tests.AcceptanceTest # Test @@ -382,8 +401,8 @@ stages: workingDirectory: tests/Umbraco.Tests.AcceptanceTest # Install Playwright and dependencies - - pwsh: npx playwright install --with-deps - displayName: Install Playwright + - pwsh: npx playwright install chromium + displayName: Install Playwright only with Chromium browser workingDirectory: tests/Umbraco.Tests.AcceptanceTest # Test @@ -438,4 +457,4 @@ stages: testResultsFormat: 'JUnit' testResultsFiles: '*.xml' searchFolder: "tests/Umbraco.Tests.AcceptanceTest/results" - testRunTitle: "$(Agent.JobName)" + testRunTitle: "$(Agent.JobName)" \ No newline at end of file diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/BlockGrid/VariantBlockGrid.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/BlockGrid/VariantBlockGrid.spec.ts index 6d02517bb0..9e5c342296 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/BlockGrid/VariantBlockGrid.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/BlockGrid/VariantBlockGrid.spec.ts @@ -57,7 +57,6 @@ test('invariant document type with invariant block grid with invariant block wit // Assert //await umbracoUi.content.doesSuccessNotificationHaveText(NotificationConstantHelper.success.saved); - await umbracoUi.content.isErrorNotificationVisible(false); await umbracoUi.content.doesSuccessNotificationHaveText(NotificationConstantHelper.success.published); await umbracoUi.reloadPage(); @@ -79,8 +78,6 @@ test('can not create unsupported invariant document type with invariant block gr await umbracoUi.content.clickSaveAndPublishButton(); // Assert - //await umbracoUi.content.doesSuccessNotificationHaveText(NotificationConstantHelper.success.saved); - await umbracoUi.content.isErrorNotificationVisible(false); await umbracoUi.content.doesErrorNotificationHaveText(NotificationConstantHelper.error.documentCouldNotBePublished); }); @@ -99,8 +96,6 @@ test('can not create unsupported invariant document type with invariant block gr await umbracoUi.content.clickSaveAndPublishButton(); // Assert - //await umbracoUi.content.doesSuccessNotificationHaveText(NotificationConstantHelper.success.saved); - await umbracoUi.content.isErrorNotificationVisible(false); await umbracoUi.content.doesErrorNotificationHaveText(NotificationConstantHelper.error.documentCouldNotBePublished); }); diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/BlockList/VariantBlockList.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/BlockList/VariantBlockList.spec.ts index 941414def2..050537f8b7 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/BlockList/VariantBlockList.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/BlockList/VariantBlockList.spec.ts @@ -79,8 +79,6 @@ test('can not create unsupported invariant document type with invariant block li await umbracoUi.content.clickSaveAndPublishButton(); // Assert - //await umbracoUi.content.doesSuccessNotificationHaveText(NotificationConstantHelper.success.saved); - await umbracoUi.content.isErrorNotificationVisible(false); await umbracoUi.content.doesErrorNotificationHaveText(NotificationConstantHelper.error.documentCouldNotBePublished); }); @@ -98,8 +96,6 @@ test('can not create unsupported invariant document type with invariant block li await umbracoUi.content.clickSaveAndPublishButton(); // Assert - //await umbracoUi.content.doesSuccessNotificationHaveText(NotificationConstantHelper.success.saved); - await umbracoUi.content.isErrorNotificationVisible(false); await umbracoUi.content.doesErrorNotificationHaveText(NotificationConstantHelper.error.documentCouldNotBePublished); }); diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/Clipboard/ClipboardBlockGridBlocks.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/Clipboard/ClipboardBlockGridBlocks.spec.ts index 4b0e91560f..866cbe9959 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/Clipboard/ClipboardBlockGridBlocks.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/Clipboard/ClipboardBlockGridBlocks.spec.ts @@ -267,7 +267,7 @@ test('can replace multiple blocks', async ({umbracoApi, umbracoUi}) => { await umbracoUi.content.clickPasteButton(); await umbracoUi.content.goToBlockGridBlockWithName(groupName, blockGridDataTypeName, elementTypeName, 0); await umbracoUi.content.doesBlockEditorBlockWithNameContainValue(elementGroupName, elementPropertyName, ConstantHelper.inputTypes.tipTap, blockPropertyValue); - await umbracoUi.content.clickCreateButton(); + await umbracoUi.content.clickCreateModalButton(); await umbracoUi.content.clickSaveButton(); // Assert diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/Clipboard/ClipboardBlockListBlocks.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/Clipboard/ClipboardBlockListBlocks.spec.ts index c3ac6c1b05..d56e2e0ac7 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/Clipboard/ClipboardBlockListBlocks.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/Clipboard/ClipboardBlockListBlocks.spec.ts @@ -267,7 +267,7 @@ test('can replace multiple blocks', async ({umbracoApi, umbracoUi}) => { await umbracoUi.content.clickPasteButton(); await umbracoUi.content.goToBlockListBlockWithName(groupName, blockListDataTypeName, elementTypeName, 0); await umbracoUi.content.doesBlockEditorBlockWithNameContainValue(elementGroupName, elementPropertyName, ConstantHelper.inputTypes.tipTap, blockPropertyValue); - await umbracoUi.content.clickCreateButton(); + await umbracoUi.content.clickCreateModalButton(); await umbracoUi.content.clickSaveButton(); // Assert diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentInfoTab.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentInfoTab.spec.ts index 3644a801db..393da97fc8 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentInfoTab.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentInfoTab.spec.ts @@ -47,7 +47,8 @@ test('can see correct information when published', async ({umbracoApi, umbracoUi hour12: true, }); await umbracoUi.content.doesCreatedDateHaveText(expectedCreatedDate); - await umbracoUi.content.doesDocumentHaveLink(contentData.urls[0].url ? contentData.urls[0].url : '/'); + const contentUrl = await umbracoApi.document.getDocumentUrl(contentId); + await umbracoUi.content.doesDocumentHaveLink(contentUrl); // TODO: Uncomment this when front-end is ready. Currently the publication status of content is not changed to "Published" immediately after publishing it //await umbracoUi.content.doesPublicationStatusHaveText(contentData.variants[0].state === 'Draft' ? 'Unpublished' : contentData.variants[0].state); }); diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithCheckboxList.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithCheckboxList.spec.ts index 8e45afe741..4a6a01ca4e 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithCheckboxList.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithCheckboxList.spec.ts @@ -99,8 +99,6 @@ test('can not publish a mandatory checkbox list with an empty value', async ({um // Do not select any checkbox list values and the validation error appears await umbracoUi.content.clickSaveAndPublishButton(); await umbracoUi.content.isValidationMessageVisible(ConstantHelper.validationMessages.emptyValue); - //await umbracoUi.content.doesSuccessNotificationHaveText(NotificationConstantHelper.success.saved); - await umbracoUi.content.isErrorNotificationVisible(false); await umbracoUi.content.doesErrorNotificationHaveText(NotificationConstantHelper.error.documentCouldNotBePublished); // Select a checkbox list value and the validation error disappears await umbracoUi.content.chooseCheckboxListOption(optionValues[0]); @@ -108,8 +106,6 @@ test('can not publish a mandatory checkbox list with an empty value', async ({um await umbracoUi.content.clickSaveAndPublishButton(); // Assert - //await umbracoUi.content.doesSuccessNotificationHaveText(NotificationConstantHelper.success.saved); - await umbracoUi.content.isErrorNotificationVisible(false); await umbracoUi.content.doesSuccessNotificationHaveText(NotificationConstantHelper.success.published); const contentData = await umbracoApi.document.getByName(contentName); expect(contentData.values[0].alias).toEqual(AliasHelper.toAlias(customDataTypeName)); diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithCustomDataType.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithCustomDataType.spec.ts index 4f9ee87372..4d377775ef 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithCustomDataType.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithCustomDataType.spec.ts @@ -83,7 +83,8 @@ test('can create content with the custom data type with decimal property editor' await umbracoUi.content.isErrorNotificationVisible(false); expect(await umbracoApi.document.doesNameExist(contentName)).toBeTruthy(); const contentData = await umbracoApi.document.getByName(contentName); - expect(contentData.values).toEqual([]); + expect(contentData.values[0].alias).toEqual(AliasHelper.toAlias(customDataTypeName)); + expect(contentData.values[0].value).toEqual(0); }); test('can add decimal number to the decimal in the content section', async ({umbracoApi, umbracoUi}) => { diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithDocumentTypeProperties/ContentWithAllowVaryByCulture.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithDocumentTypeProperties/ContentWithAllowVaryByCulture.spec.ts index 5c15a56eb6..48fd420b46 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithDocumentTypeProperties/ContentWithAllowVaryByCulture.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithDocumentTypeProperties/ContentWithAllowVaryByCulture.spec.ts @@ -30,7 +30,7 @@ test('can create content with allow vary by culture enabled', async ({umbracoApi await umbracoUi.content.chooseDocumentType(documentTypeName); await umbracoUi.content.enterContentName(contentName); await umbracoUi.content.clickSaveButtonForContent(); - await umbracoUi.content.clickSaveAndCloseButton(); + await umbracoUi.content.clickSaveButton(); // Assert //await umbracoUi.content.isSuccessNotificationVisible(); @@ -48,14 +48,13 @@ test('can create content with names that vary by culture', async ({umbracoApi, u // Act await umbracoUi.content.goToContentWithName(contentName); - await umbracoUi.content.clickVariantSelectorButton(); - await umbracoUi.content.clickVariantAddModeButton(); + await umbracoUi.content.clickSelectVariantButton(); + await umbracoUi.content.clickVariantAddModeButtonForLanguageName(secondLanguageName); await umbracoUi.content.enterContentName(danishContentName); await umbracoUi.content.clickSaveButtonForContent(); - await umbracoUi.content.clickSaveAndCloseButton(); + await umbracoUi.content.clickSaveButton(); // Assert - //await umbracoUi.content.isSuccessNotificationVisible(); await umbracoUi.content.isErrorNotificationVisible(false); expect(await umbracoApi.document.doesNameExist(danishContentName)).toBeTruthy(); const contentData = await umbracoApi.document.getByName(danishContentName); @@ -68,7 +67,6 @@ test('can create content with names that vary by culture and content that is inv // Arrange const danishContentName = 'Test indhold'; const textContent = 'This is a test text'; - const danishTextContent = 'Dette er testtekst'; const dataTypeName = 'Textstring'; const dataTypeData = await umbracoApi.dataType.getByName(dataTypeName); const documentTypeId = await umbracoApi.documentType.createDocumentTypeWithPropertyEditor(documentTypeName, dataTypeName, dataTypeData.id, 'Test Group', true, false); @@ -78,15 +76,13 @@ test('can create content with names that vary by culture and content that is inv // Act await umbracoUi.content.goToContentWithName(contentName); - await umbracoUi.content.clickVariantSelectorButton(); - await umbracoUi.content.clickVariantAddModeButton(); + await umbracoUi.content.clickSelectVariantButton(); + await umbracoUi.content.clickVariantAddModeButtonForLanguageName(secondLanguageName); await umbracoUi.content.enterContentName(danishContentName); - await umbracoUi.content.enterTextstring(danishTextContent); await umbracoUi.content.clickSaveButtonForContent(); - await umbracoUi.content.clickSaveAndCloseButton(); + await umbracoUi.content.clickSaveButton(); // Assert - //await umbracoUi.content.isSuccessNotificationVisible(); await umbracoUi.content.isErrorNotificationVisible(false); expect(await umbracoApi.document.doesNameExist(danishContentName)).toBeTruthy(); const contentData = await umbracoApi.document.getByName(danishContentName); @@ -94,7 +90,7 @@ test('can create content with names that vary by culture and content that is inv expect(contentData.variants[0].name).toBe(contentName); expect(contentData.variants[1].name).toBe(danishContentName); expect(contentData.values.length).toBe(1); - expect(contentData.values[0].value).toBe(danishTextContent); + expect(contentData.values[0].value).toBe(textContent); }); test('can create content with names and content that vary by culture', async ({umbracoApi, umbracoUi}) => { @@ -111,12 +107,12 @@ test('can create content with names and content that vary by culture', async ({u // Act await umbracoUi.content.goToContentWithName(contentName); - await umbracoUi.content.clickVariantSelectorButton(); - await umbracoUi.content.clickVariantAddModeButton(); + await umbracoUi.content.clickSelectVariantButton(); + await umbracoUi.content.clickVariantAddModeButtonForLanguageName(secondLanguageName); await umbracoUi.content.enterContentName(danishContentName); await umbracoUi.content.enterTextstring(danishTextContent); await umbracoUi.content.clickSaveButtonForContent(); - await umbracoUi.content.clickSaveAndCloseButton(); + await umbracoUi.content.clickSaveButton(); // Assert //await umbracoUi.content.isSuccessNotificationVisible(); diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithDropdown.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithDropdown.spec.ts index 9d234294c2..9423052516 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithDropdown.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithDropdown.spec.ts @@ -103,8 +103,6 @@ test('can not publish a mandatory dropdown with an empty value', async ({umbraco // Do not select any dropdown values and the validation error appears await umbracoUi.content.clickSaveAndPublishButton(); await umbracoUi.content.isValidationMessageVisible(ConstantHelper.validationMessages.emptyValue); - //await umbracoUi.content.doesSuccessNotificationHaveText(NotificationConstantHelper.success.saved); - await umbracoUi.content.isErrorNotificationVisible(false); await umbracoUi.content.doesErrorNotificationHaveText(NotificationConstantHelper.error.documentCouldNotBePublished); // Select a dropdown value and the validation error disappears await umbracoUi.content.chooseDropdownOption([optionValues[0]]); @@ -112,8 +110,6 @@ test('can not publish a mandatory dropdown with an empty value', async ({umbraco await umbracoUi.content.clickSaveAndPublishButton(); // Assert - //await umbracoUi.content.doesSuccessNotificationHaveText(NotificationConstantHelper.success.saved); - await umbracoUi.content.isErrorNotificationVisible(false); await umbracoUi.content.doesSuccessNotificationHaveText(NotificationConstantHelper.success.published); const contentData = await umbracoApi.document.getByName(contentName); expect(contentData.values[0].alias).toEqual(AliasHelper.toAlias(customDataTypeName)); diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithListViewContent.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithListViewContent.spec.ts index 8ccc85b342..25a58881a0 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithListViewContent.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithListViewContent.spec.ts @@ -22,8 +22,8 @@ test.afterEach(async ({umbracoApi}) => { await umbracoApi.documentType.ensureNameNotExists(childDocumentTypeName); }); -// Remove .fixme when the issue is fixed: https://github.com/umbraco/Umbraco-CMS/issues/18615 -test.fixme('can create content with the list view data type', async ({umbracoApi, umbracoUi}) => { +// Remove .skip when the issue is fixed: https://github.com/umbraco/Umbraco-CMS/issues/18615 +test.skip('can create content with the list view data type', async ({umbracoApi, umbracoUi}) => { // Arrange const expectedState = 'Draft'; const defaultListViewDataTypeName = 'List View - Content'; @@ -48,7 +48,8 @@ test.fixme('can create content with the list view data type', async ({umbracoApi expect(await umbracoApi.document.getChildrenAmount(contentData.id)).toEqual(0); }); -test('can publish content with the list view data type', async ({umbracoApi, umbracoUi}) => { +// Remove .skip when the issue is fixed: https://github.com/umbraco/Umbraco-CMS/issues/18615 +test.skip('can publish content with the list view data type', async ({umbracoApi, umbracoUi}) => { // Arrange const expectedState = 'Published'; const childDocumentTypeId = await umbracoApi.documentType.createDefaultDocumentType(childDocumentTypeName); @@ -71,7 +72,8 @@ test('can publish content with the list view data type', async ({umbracoApi, umb expect(await umbracoApi.document.getChildrenAmount(documentId)).toEqual(0); }); -test('can create content with a child in the list', async ({umbracoApi, umbracoUi}) => { +// Remove .skip when the issue is fixed: https://github.com/umbraco/Umbraco-CMS/issues/18615 +test.skip('can create content with a child in the list', async ({umbracoApi, umbracoUi}) => { // Arrange const childDocumentTypeId = await umbracoApi.documentType.createDefaultDocumentType(childDocumentTypeName); await umbracoApi.dataType.createListViewContentDataType(dataTypeName); @@ -93,7 +95,8 @@ test('can create content with a child in the list', async ({umbracoApi, umbracoU expect(await umbracoApi.document.getChildrenAmount(documentId)).toEqual(1); }); -test('can publish content with a child in the list', async ({umbracoApi, umbracoUi}) => { +// Remove .skip when the issue is fixed: https://github.com/umbraco/Umbraco-CMS/issues/18615 +test.skip('can publish content with a child in the list', async ({umbracoApi, umbracoUi}) => { // Arrange const expectedState = 'Published'; const childDocumentTypeId = await umbracoApi.documentType.createDefaultDocumentType(childDocumentTypeName); @@ -126,7 +129,8 @@ test('can publish content with a child in the list', async ({umbracoApi, umbraco expect(childContentData.variants[0].state).toBe(expectedState); }); -test('can not publish child in a list when parent is not published', async ({umbracoApi, umbracoUi}) => { +// Remove .skip when the issue is fixed: https://github.com/umbraco/Umbraco-CMS/issues/18615 +test.skip('can not publish child in a list when parent is not published', async ({umbracoApi, umbracoUi}) => { // Arrange const expectedState = 'Draft'; const childDocumentTypeId = await umbracoApi.documentType.createDefaultDocumentType(childDocumentTypeName); @@ -154,7 +158,8 @@ test('can not publish child in a list when parent is not published', async ({umb expect(childContentData.variants[0].state).toBe(expectedState); }); -test('child is removed from list after child content is deleted', async ({umbracoApi, umbracoUi}) => { +// Remove .skip when the issue is fixed: https://github.com/umbraco/Umbraco-CMS/issues/18615 +test.skip('child is removed from list after child content is deleted', async ({umbracoApi, umbracoUi}) => { // Arrange const childDocumentTypeId = await umbracoApi.documentType.createDefaultDocumentType(childDocumentTypeName); await umbracoApi.dataType.createListViewContentDataType(dataTypeName); @@ -178,7 +183,8 @@ test('child is removed from list after child content is deleted', async ({umbrac expect(await umbracoApi.document.doesNameExist(childContentName)).toBeFalsy(); }); -test('can sort list by name', async ({umbracoApi, umbracoUi}) => { +// Remove .skip when the issue is fixed: https://github.com/umbraco/Umbraco-CMS/issues/18615 +test.skip('can sort list by name', async ({umbracoApi, umbracoUi}) => { // Arrange const childDocumentTypeId = await umbracoApi.documentType.createDefaultDocumentType(childDocumentTypeName); const secondChildContentName = 'ASecondChildContent'; @@ -201,7 +207,8 @@ test('can sort list by name', async ({umbracoApi, umbracoUi}) => { await umbracoUi.content.doesFirstItemInListViewHaveName(secondChildContentName); }); -test('can publish child content from list', async ({umbracoApi, umbracoUi}) => { +// Remove .skip when the issue is fixed: https://github.com/umbraco/Umbraco-CMS/issues/18615 +test.skip('can publish child content from list', async ({umbracoApi, umbracoUi}) => { // Arrange const expectedState = 'Published'; const childDocumentTypeId = await umbracoApi.documentType.createDefaultDocumentType(childDocumentTypeName); @@ -226,7 +233,8 @@ test('can publish child content from list', async ({umbracoApi, umbracoUi}) => { expect(childContentData.variants[0].state).toBe(expectedState); }); -test('can not publish child content from list when parent is not published', async ({umbracoApi, umbracoUi}) => { +// Remove .skip when the issue is fixed: https://github.com/umbraco/Umbraco-CMS/issues/18615 +test.skip('can not publish child content from list when parent is not published', async ({umbracoApi, umbracoUi}) => { // Arrange const expectedState = 'Draft'; const childDocumentTypeId = await umbracoApi.documentType.createDefaultDocumentType(childDocumentTypeName); @@ -248,7 +256,8 @@ test('can not publish child content from list when parent is not published', asy expect(childContentData.variants[0].state).toBe(expectedState); }); -test('can unpublish child content from list', async ({umbracoApi, umbracoUi}) => { +// Remove .skip when the issue is fixed: https://github.com/umbraco/Umbraco-CMS/issues/18615 +test.skip('can unpublish child content from list', async ({umbracoApi, umbracoUi}) => { // Arrange const expectedState = 'Draft'; const childDocumentTypeId = await umbracoApi.documentType.createDefaultDocumentType(childDocumentTypeName); @@ -276,7 +285,8 @@ test('can unpublish child content from list', async ({umbracoApi, umbracoUi}) => expect(childContentData.variants[0].state).toBe(expectedState); }); -test('can duplicate child content in list', async ({umbracoApi, umbracoUi}) => { +// Remove .skip when the issue is fixed: https://github.com/umbraco/Umbraco-CMS/issues/18615 +test.skip('can duplicate child content in list', async ({umbracoApi, umbracoUi}) => { // Arrange const secondDocumentName = 'SecondDocument'; await umbracoApi.document.ensureNameNotExists(secondDocumentName); @@ -307,7 +317,8 @@ test('can duplicate child content in list', async ({umbracoApi, umbracoUi}) => { expect(await umbracoApi.document.getChildrenAmount(secondDocumentId)).toEqual(1); }); -test('can move child content in list', async ({umbracoApi, umbracoUi}) => { +// Remove .skip when the issue is fixed: https://github.com/umbraco/Umbraco-CMS/issues/18615 +test.skip('can move child content in list', async ({umbracoApi, umbracoUi}) => { // Arrange const secondDocumentName = 'SecondDocument'; await umbracoApi.document.ensureNameNotExists(secondDocumentName); @@ -338,7 +349,8 @@ test('can move child content in list', async ({umbracoApi, umbracoUi}) => { expect(await umbracoApi.document.getChildrenAmount(secondDocumentId)).toEqual(1); }); -test('can trash child content in list', async ({umbracoApi, umbracoUi}) => { +// Remove .skip when the issue is fixed: https://github.com/umbraco/Umbraco-CMS/issues/18615 +test.skip('can trash child content in list', async ({umbracoApi, umbracoUi}) => { // Arrange const childDocumentTypeId = await umbracoApi.documentType.createDefaultDocumentType(childDocumentTypeName); await umbracoApi.dataType.createListViewContentDataTypeWithAllPermissions(dataTypeName); @@ -362,7 +374,8 @@ test('can trash child content in list', async ({umbracoApi, umbracoUi}) => { await umbracoUi.content.isItemVisibleInRecycleBin(childContentName); }); -test('can search for child content in list', async ({umbracoApi, umbracoUi}) => { +// Remove .skip when the issue is fixed: https://github.com/umbraco/Umbraco-CMS/issues/18615 +test.skip('can search for child content in list', async ({umbracoApi, umbracoUi}) => { // Arrange const secondChildName = 'SecondChildDocument'; await umbracoApi.document.ensureNameNotExists(secondChildName); @@ -385,7 +398,8 @@ test('can search for child content in list', async ({umbracoApi, umbracoUi}) => await umbracoUi.content.doesFirstItemInListViewHaveName(childContentName); }); -test('can change from list view to grid view in list', async ({umbracoApi, umbracoUi}) => { +// Remove .skip when the issue is fixed: https://github.com/umbraco/Umbraco-CMS/issues/18615 +test.skip('can change from list view to grid view in list', async ({umbracoApi, umbracoUi}) => { // Arrange const childDocumentTypeId = await umbracoApi.documentType.createDefaultDocumentType(childDocumentTypeName); await umbracoApi.dataType.createListViewContentDataTypeWithAllPermissions(dataTypeName); diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithMediaPicker.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithMediaPicker.spec.ts index 2d50c1b255..4f17843c4a 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithMediaPicker.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithMediaPicker.spec.ts @@ -132,7 +132,7 @@ test('can limit the media picker in the content by setting the start node', asyn await umbracoApi.dataType.ensureNameNotExists(customDataTypeName); }); -test('can not publish a mandatory media picker with an empty value', async ({umbracoApi, umbracoUi}) => { +test.fixme('can not publish a mandatory media picker with an empty value', async ({umbracoApi, umbracoUi}) => { // Arrange const dataTypeData = await umbracoApi.dataType.getByName(dataTypeName); const documentTypeId = await umbracoApi.documentType.createDocumentTypeWithPropertyEditor(documentTypeName, dataTypeName, dataTypeData.id, 'Test Group', false, false, true); @@ -145,10 +145,9 @@ test('can not publish a mandatory media picker with an empty value', async ({umb // Do not pick any media and the validation error appears await umbracoUi.content.clickSaveAndPublishButton(); await umbracoUi.content.isValidationMessageVisible(ConstantHelper.validationMessages.emptyValue); - //await umbracoUi.content.doesSuccessNotificationHaveText(NotificationConstantHelper.success.saved); - await umbracoUi.content.isErrorNotificationVisible(false); await umbracoUi.content.doesErrorNotificationHaveText(NotificationConstantHelper.error.documentCouldNotBePublished); // Pick a media value and the validation error disappears + // TODO: This should be fixed await umbracoUi.content.clickChooseButtonAndSelectMediaWithName(mediaFileName); await umbracoUi.content.clickChooseModalButton(); await umbracoUi.content.isValidationMessageVisible(ConstantHelper.validationMessages.emptyValue, false); diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithRadiobox.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithRadiobox.spec.ts index 7a4e148880..52c859c7f7 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithRadiobox.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithRadiobox.spec.ts @@ -101,8 +101,6 @@ test('can not publish mandatory radiobox with an empty value', async ({umbracoAp // Do not select any radiobox values and the validation error appears await umbracoUi.content.clickSaveAndPublishButton(); await umbracoUi.content.isValidationMessageVisible(ConstantHelper.validationMessages.emptyValue); - //await umbracoUi.content.doesSuccessNotificationHaveText(NotificationConstantHelper.success.saved); - await umbracoUi.content.isErrorNotificationVisible(false); await umbracoUi.content.doesErrorNotificationHaveText(NotificationConstantHelper.error.documentCouldNotBePublished); // Select a radiobox value and the validation error disappears await umbracoUi.content.chooseRadioboxOption(optionValues[0]); @@ -110,8 +108,6 @@ test('can not publish mandatory radiobox with an empty value', async ({umbracoAp await umbracoUi.content.clickSaveAndPublishButton(); // Assert - //await umbracoUi.content.doesSuccessNotificationHaveText(NotificationConstantHelper.success.saved); - await umbracoUi.content.isErrorNotificationVisible(false); await umbracoUi.content.doesSuccessNotificationHaveText(NotificationConstantHelper.success.published); const contentData = await umbracoApi.document.getByName(contentName); expect(contentData.values[0].alias).toEqual(AliasHelper.toAlias(customDataTypeName)); diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithTextarea.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithTextarea.spec.ts index 9bf1dae55c..22c92d7ea2 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithTextarea.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithTextarea.spec.ts @@ -87,7 +87,7 @@ test('cannot input the text that exceeds the allowed amount of characters', asyn // Arrange const maxChars = 100; const textExceedMaxChars = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam mattis porttitor orci id cursus. Nulla'; - const warningMessage = 'This field exceeds the allowed amount of characters'; + const warningMessage = 'The string length exceeds the maximum length of'; const dataTypeId = await umbracoApi.dataType.createTextareaDataType(customDataTypeName, maxChars); const documentTypeId = await umbracoApi.documentType.createDocumentTypeWithPropertyEditor(documentTypeName, customDataTypeName, dataTypeId); await umbracoApi.document.createDefaultDocument(contentName, documentTypeId); @@ -99,8 +99,8 @@ test('cannot input the text that exceeds the allowed amount of characters', asyn await umbracoUi.content.clickSaveButton(); // Assert - await umbracoUi.content.isTextWithExactNameVisible(warningMessage); - //await umbracoUi.content.isSuccessNotificationVisible(); + await umbracoUi.content.isTextWithMessageVisible(warningMessage); + // await umbracoUi.content.isSuccessNotificationVisible(); await umbracoUi.content.isErrorNotificationVisible(false); // Clean diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithTextstring.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithTextstring.spec.ts index 0b66c82fff..001033d31f 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithTextstring.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithTextstring.spec.ts @@ -87,8 +87,9 @@ test('cannot input the text that exceeds the allowed amount of characters', asyn // Arrange const maxChars = 20; const textExceedMaxChars = 'Lorem ipsum dolor sit'; - const warningMessage = 'This field exceeds the allowed amount of characters'; + const warningMessage = 'The string length exceeds the maximum length of'; const dataTypeId = await umbracoApi.dataType.createTextstringDataType(customDataTypeName, maxChars); + console.log(dataTypeId); const documentTypeId = await umbracoApi.documentType.createDocumentTypeWithPropertyEditor(documentTypeName, customDataTypeName, dataTypeId); await umbracoApi.document.createDefaultDocument(contentName, documentTypeId); await umbracoUi.content.goToSection(ConstantHelper.sections.content); @@ -99,7 +100,7 @@ test('cannot input the text that exceeds the allowed amount of characters', asyn await umbracoUi.content.clickSaveButton(); // Assert - await umbracoUi.content.isTextWithExactNameVisible(warningMessage); + await umbracoUi.content.isTextWithMessageVisible(warningMessage); //await umbracoUi.content.isSuccessNotificationVisible(); await umbracoUi.content.isErrorNotificationVisible(false); diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithTrueFalse.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithTrueFalse.spec.ts index a479b96e5b..1789af90fc 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithTrueFalse.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithTrueFalse.spec.ts @@ -37,7 +37,8 @@ test('can create content with the true/false data type', async ({umbracoApi, umb expect(await umbracoApi.document.doesNameExist(contentName)).toBeTruthy(); const contentData = await umbracoApi.document.getByName(contentName); expect(contentData.variants[0].state).toBe(expectedState); - expect(contentData.values).toEqual([]); + expect(contentData.values[0].alias).toEqual('truefalse'); + expect(contentData.values[0].value).toEqual(false); }); test('can publish content with the true/false data type', async ({umbracoApi, umbracoUi}) => { diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/RedirectManagement.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/RedirectManagement.spec.ts index 36d834f67f..0623a663ea 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/RedirectManagement.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/RedirectManagement.spec.ts @@ -44,10 +44,10 @@ test('can disable URL tracker', async ({umbracoApi, umbracoUi}) => { await umbracoUi.content.enterContentName(updatedContentName); await umbracoUi.content.clickSaveAndPublishButton(); // verify that there is no redirects have been made - const contentData = await umbracoApi.document.get(contentId); + const contentUrl = await umbracoApi.document.getDocumentUrl(contentId); await umbracoUi.content.goToSection(ConstantHelper.sections.content); await umbracoUi.redirectManagement.clickRedirectManagementTab(); - await umbracoUi.redirectManagement.isTextWithExactNameVisible(contentData.urls[0].url, false); + await umbracoUi.redirectManagement.isTextWithExactNameVisible(contentUrl, false); // Verify that the status is Disable const statusData = await umbracoApi.redirectManagement.getStatus(); expect(statusData.status).toBe(disableStatus); @@ -71,10 +71,10 @@ test.skip('can re-enable URL tracker', async ({umbracoApi, umbracoUi}) => { await umbracoUi.content.enterContentName(updatedContentName); await umbracoUi.content.clickSaveAndPublishButton(); // verify that there is one redirects have been made - const contentData = await umbracoApi.document.get(contentId); + const contentUrl = await umbracoApi.document.getDocumentUrl(contentId); await umbracoUi.content.goToSection(ConstantHelper.sections.content); await umbracoUi.redirectManagement.clickRedirectManagementTab(); - await umbracoUi.redirectManagement.isTextWithExactNameVisible(contentData.urls[0].url); + await umbracoUi.redirectManagement.isTextWithExactNameVisible(contentUrl); // Verify that the status is Enable const statusData = await umbracoApi.redirectManagement.getStatus(); expect(statusData.status).toBe(enableStatus); @@ -112,5 +112,6 @@ test.skip('can delete a redirect', async ({umbracoApi, umbracoUi}) => { // Assert const contentData = await umbracoApi.document.get(contentId); - await umbracoUi.redirectManagement.isTextWithExactNameVisible(contentData.urls[0].url, false); + const contentUrl = await umbracoApi.document.getDocumentUrl(contentId); + await umbracoUi.redirectManagement.isTextWithExactNameVisible(contentUrl, false); }); diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/RichTextEditor/VariantTipTapBlocks.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/RichTextEditor/VariantTipTapBlocks.spec.ts index 94b0fd2dd7..a476007c5a 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/RichTextEditor/VariantTipTapBlocks.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/RichTextEditor/VariantTipTapBlocks.spec.ts @@ -80,8 +80,6 @@ test('can not create unsupported invariant document type with invariant tiptap R await umbracoUi.content.clickSaveAndPublishButton(); // Assert - //await umbracoUi.content.doesSuccessNotificationHaveText(NotificationConstantHelper.success.saved); - await umbracoUi.content.isErrorNotificationVisible(false); await umbracoUi.content.doesErrorNotificationHaveText(NotificationConstantHelper.error.documentCouldNotBePublished); }); @@ -100,8 +98,6 @@ test('can not create unsupported invariant document type with invariant tiptap R await umbracoUi.content.clickSaveAndPublishButton(); // Assert - //await umbracoUi.content.doesSuccessNotificationHaveText(NotificationConstantHelper.success.saved); - await umbracoUi.content.isErrorNotificationVisible(false); await umbracoUi.content.doesErrorNotificationHaveText(NotificationConstantHelper.error.documentCouldNotBePublished); }); diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/BlockGrid/BlockGridEditor.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/BlockGrid/BlockGridEditor.spec.ts index 7a0ade2d58..7b55e7f3ba 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/BlockGrid/BlockGridEditor.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/BlockGrid/BlockGridEditor.spec.ts @@ -213,7 +213,7 @@ test('can remove a block in a group from a block grid editor', {tag: '@smoke'}, expect(await umbracoApi.dataType.doesBlockEditorContainBlocksWithContentTypeIds(blockGridEditorName, [elementTypeId])).toBeFalsy(); }); -test('can move a block from a group to another group in a block grid editor', async ({umbracoApi, umbracoUi}) => { +test.fixme('can move a block from a group to another group in a block grid editor', async ({umbracoApi, umbracoUi}) => { // Arrange const textStringData = await umbracoApi.dataType.getByName(dataTypeName); const secondGroupName = 'MoveToHereGroup'; @@ -228,6 +228,7 @@ test('can move a block from a group to another group in a block grid editor', as // Drag and Drop const dragFromLocator = await umbracoUi.dataType.getLinkWithName(elementTypeName); const dragToLocator = await umbracoUi.dataType.getAddButtonInGroupWithName(secondGroupName); + // This needs to be fixed await umbracoUi.dataType.dragAndDrop(dragFromLocator, dragToLocator, -10, 0, 10); await umbracoUi.dataType.clickSaveButton(); diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/DataTypeCollectionWorkspace.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/DataTypeCollectionWorkspace.spec.ts index 8e68c768ce..68f919dc61 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/DataTypeCollectionWorkspace.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/DataTypeCollectionWorkspace.spec.ts @@ -21,7 +21,7 @@ test('can create a data type using create options', async ({umbracoApi, umbracoU await umbracoUi.dataType.clickDataTypesMenu(); // Act - await umbracoUi.dataType.clickCreateActionWithOptionName('Data Type'); + await umbracoUi.dataType.clickCreateActionWithOptionName('New Data Type'); await umbracoUi.dataType.enterDataTypeName(dataTypeName); await umbracoUi.dataType.clickSelectAPropertyEditorButton(); await umbracoUi.dataType.selectAPropertyEditor('Text Box'); @@ -62,7 +62,7 @@ test('can create a data type in a folder using create options', async ({umbracoA await umbracoUi.dataType.goToDataType(dataTypeFolderName); // Act - await umbracoUi.dataType.clickCreateActionWithOptionName('Data Type'); + await umbracoUi.dataType.clickCreateActionWithOptionName('New Data Type'); await umbracoUi.dataType.enterDataTypeName(dataTypeName); await umbracoUi.dataType.clickSelectAPropertyEditorButton(); await umbracoUi.dataType.selectAPropertyEditor('Text Box'); diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Dictionary/Dictionary.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Dictionary/Dictionary.spec.ts index c3392c2fa2..5809a360f4 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Dictionary/Dictionary.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Dictionary/Dictionary.spec.ts @@ -44,7 +44,7 @@ test('can delete a dictionary item', async ({umbracoApi, umbracoUi}) => { await umbracoUi.dictionary.deleteDictionary(); // Assert - //await umbracoUi.dictionary.doesSuccessNotificationHaveText(NotificationConstantHelper.success.deleted); + await umbracoUi.waitForTimeout(500); await umbracoUi.dictionary.isErrorNotificationVisible(false); expect(await umbracoApi.dictionary.doesNameExist(dictionaryName)).toBeFalsy(); // Verify the dictionary item does not display in the tree @@ -131,6 +131,7 @@ test('can import a dictionary item', async ({umbracoApi, umbracoUi}) => { await umbracoUi.dictionary.importDictionary(udtFilePath); // Assert + await umbracoUi.waitForTimeout(500); // Verify the imported dictionary item displays in the list await umbracoUi.reloadPage(); expect(await umbracoUi.dictionary.doesDictionaryListHaveText(importDictionaryName)).toBeTruthy(); diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Media/Media.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Media/Media.spec.ts index 1a0a8f2e35..dddb5f11f3 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Media/Media.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Media/Media.spec.ts @@ -73,9 +73,10 @@ for (const mediaFileType of mediaFileTypes) { // Assert //await umbracoUi.media.doesSuccessNotificationHaveText(NotificationConstantHelper.success.created); - await umbracoUi.media.isErrorNotificationVisible(false); + await umbracoUi.media.isErrorNotificationVisible(false); const mediaData = await umbracoApi.media.getByName(mediaFileType.fileName); - await umbracoUi.media.doesMediaHaveThumbnail(mediaData.id, mediaFileType.thumbnail, mediaData.urls[0].url); + const mediaUrl = await umbracoApi.media.getMediaUrl(mediaData.id); + await umbracoUi.media.doesMediaHaveThumbnail(mediaData.id, mediaFileType.thumbnail, mediaUrl); await umbracoUi.media.isMediaTreeItemVisible(mediaFileType.fileName); expect(await umbracoApi.media.doesNameExist(mediaFileType.fileName)).toBeTruthy(); diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/Dashboard/Welcome.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/Dashboard/Welcome.spec.ts index 164cea22d8..c0800d7c42 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/Dashboard/Welcome.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/Dashboard/Welcome.spec.ts @@ -8,7 +8,7 @@ test.beforeEach(async ({umbracoUi}) => { test('can click on buttons', async ({umbracoUi}) => { // Arrange const getTheHelpYouNeedDocumentationUrl = 'https://docs.umbraco.com/umbraco-cms'; - const goToTheForumUrl = 'https://our.umbraco.com/forum/'; + const goToTheForumUrl = 'https://forum.umbraco.com/'; const chatWithTheCommunityUrl = 'https://discord.umbraco.com'; const getCertifiedUrl = 'https://umbraco.com/training/'; const getTheHelpYouNeedSupportUrl = 'https://umbraco.com/support/'; diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/DocumentBlueprint/DocumentBlueprint.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/DocumentBlueprint/DocumentBlueprint.spec.ts index 0e253f8044..09db87d8a8 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/DocumentBlueprint/DocumentBlueprint.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/DocumentBlueprint/DocumentBlueprint.spec.ts @@ -85,7 +85,7 @@ test('can create a document blueprint from the content menu', async ({umbracoApi // Act await umbracoUi.content.clickActionsMenuForContent(documentBlueprintName); - await umbracoUi.content.clickCreateActionMenuOption(); + await umbracoUi.content.clickCreateBlueprintActionMenuOption(); await umbracoUi.content.clickSaveModalButton(); // Assert diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/DocumentType/DocumentTypeFolder.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/DocumentType/DocumentTypeFolder.spec.ts index a8ca1db4e5..e956c58e8f 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/DocumentType/DocumentTypeFolder.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/DocumentType/DocumentTypeFolder.spec.ts @@ -61,6 +61,7 @@ test('can rename a document type folder', async ({umbracoApi, umbracoUi}) => { await umbracoUi.documentType.clickRenameActionMenuOption(); await umbracoUi.documentType.enterFolderName(documentFolderName); await umbracoUi.documentType.clickConfirmRenameButton(); + await umbracoUi.waitForTimeout(500); // Assert //await umbracoUi.documentType.doesSuccessNotificationHaveText(NotificationConstantHelper.success.saved); diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/DocumentType/DocumentTypeSettingsTab.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/DocumentType/DocumentTypeSettingsTab.spec.ts index cb90c9d6e6..f9809aef14 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/DocumentType/DocumentTypeSettingsTab.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/DocumentType/DocumentTypeSettingsTab.spec.ts @@ -30,7 +30,8 @@ test('can add allow vary by culture for a document type', {tag: '@smoke'}, async expect(documentTypeData.variesByCulture).toBeTruthy(); }); -test('can add allow segmentation for a document type', async ({umbracoApi, umbracoUi}) => { +// On V16 Segments will not be allowed through the UI, but the server. +test.skip('can add allow segmentation for a document type', async ({umbracoApi, umbracoUi}) => { // Arrange await umbracoApi.documentType.createDefaultDocumentType(documentTypeName); await umbracoUi.documentType.goToSection(ConstantHelper.sections.settings); diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/Language/Language.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/Language/Language.spec.ts index 99aa24a285..9a187be235 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/Language/Language.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/Language/Language.spec.ts @@ -135,7 +135,7 @@ test('cannot add a language with duplicate ISO code', async ({umbracoApi, umbrac await umbracoUi.language.goToLanguages(); // Act - await umbracoUi.language.clickCreateLink(); + await umbracoUi.language.clickLanguageCreateButton(); await umbracoUi.language.chooseLanguageByName(languageName); await umbracoUi.language.clickSaveButton(); diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/MediaType/MediaTypeDesignTab.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/MediaType/MediaTypeDesignTab.spec.ts index db42e9accb..20e4d128d7 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/MediaType/MediaTypeDesignTab.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/MediaType/MediaTypeDesignTab.spec.ts @@ -292,7 +292,7 @@ test('can create a media type with a composition', async ({umbracoApi, umbracoUi await umbracoUi.mediaType.goToMediaType(mediaTypeName); await umbracoUi.waitForTimeout(500); await umbracoUi.mediaType.clickCompositionsButton(); - await umbracoUi.mediaType.clickButtonWithName(compositionMediaTypeName); + await umbracoUi.mediaType.clickModalMenuItemWithName(compositionMediaTypeName); await umbracoUi.mediaType.clickSubmitButton(); await umbracoUi.mediaType.clickSaveButton(); diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/Template/Templates.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/Template/Templates.spec.ts index 7eee110e32..6d6e36da83 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/Template/Templates.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/Template/Templates.spec.ts @@ -86,7 +86,7 @@ test('can delete a template', async ({umbracoApi, umbracoUi}) => { await umbracoUi.template.isErrorNotificationVisible(false); await umbracoUi.template.reloadTemplateTree(); expect(await umbracoApi.template.doesNameExist(templateName)).toBeFalsy(); - await umbracoUi.template.isTemplateRootTreeItemVisible(templateName, false); + await umbracoUi.template.isTemplateRootTreeItemVisible(templateName, false, false); }); test('can set a template as master template', async ({umbracoApi, umbracoUi}) => { @@ -99,7 +99,7 @@ test('can set a template as master template', async ({umbracoApi, umbracoUi}) => // Act await umbracoUi.template.goToTemplate(childTemplateName); await umbracoUi.template.clickChangeMasterTemplateButton(); - await umbracoUi.template.clickButtonWithName(templateName); + await umbracoUi.template.clickModalMenuItemWithName(templateName); await umbracoUi.template.clickChooseButton(); await umbracoUi.template.clickSaveButton();