From 1ca7f3162f4be1dfe2d12415e4aaa71b4420d3ab Mon Sep 17 00:00:00 2001 From: Nhu Dinh <150406148+nhudinh0309@users.noreply.github.com> Date: Mon, 29 Sep 2025 20:12:38 +0700 Subject: [PATCH] E2E nightly pipeline: QA Fix failing acceptance tests for invalid cases (#20289) * Updated steps to verify the error validation message * Updated default extension for Tiptap * Removed skip tag for fixed smoke tests * Bumped version --- tests/Umbraco.Tests.AcceptanceTest/package-lock.json | 8 ++++---- tests/Umbraco.Tests.AcceptanceTest/package.json | 2 +- .../DefaultConfig/Content/ContentWithCheckboxList.spec.ts | 4 ++-- .../DefaultConfig/Content/ContentWithDropdown.spec.ts | 4 ++-- .../DefaultConfig/Content/ContentWithRadiobox.spec.ts | 4 ++-- .../BlockGrid/Block/BlockGridBlockAdvanced.spec.ts | 4 +--- .../tests/DefaultConfig/DataType/RichTextEditor.spec.ts | 4 ++-- .../tests/DefaultConfig/Media/Media.spec.ts | 3 ++- .../tests/DefaultConfig/Members/Members.spec.ts | 6 +++--- 9 files changed, 19 insertions(+), 20 deletions(-) diff --git a/tests/Umbraco.Tests.AcceptanceTest/package-lock.json b/tests/Umbraco.Tests.AcceptanceTest/package-lock.json index ab48c0f50a..bb9de17198 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/package-lock.json +++ b/tests/Umbraco.Tests.AcceptanceTest/package-lock.json @@ -8,7 +8,7 @@ "hasInstallScript": true, "dependencies": { "@umbraco/json-models-builders": "^2.0.40", - "@umbraco/playwright-testhelpers": "^16.0.47", + "@umbraco/playwright-testhelpers": "^16.0.48", "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.47", - "resolved": "https://registry.npmjs.org/@umbraco/playwright-testhelpers/-/playwright-testhelpers-16.0.47.tgz", - "integrity": "sha512-N88UCvjqCwJMRCu5wUmW2xxPVqEMR0sKGDlUsko9EejvyyJBFSE00PRGyWo6lPuYxAy4LkkONwIWBATWiry7xg==", + "version": "16.0.48", + "resolved": "https://registry.npmjs.org/@umbraco/playwright-testhelpers/-/playwright-testhelpers-16.0.48.tgz", + "integrity": "sha512-bwaa0bTzSJsNiQosPsso7mhTtC91KLNgtcce4/fRlRcbUO2kESsUBqOfl5CVhyWT7BQWtWFDTrSbHlpXzzX1Yw==", "license": "MIT", "dependencies": { "@umbraco/json-models-builders": "2.0.40", diff --git a/tests/Umbraco.Tests.AcceptanceTest/package.json b/tests/Umbraco.Tests.AcceptanceTest/package.json index 3a3c6971a5..26716e2c96 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/package.json +++ b/tests/Umbraco.Tests.AcceptanceTest/package.json @@ -22,7 +22,7 @@ }, "dependencies": { "@umbraco/json-models-builders": "^2.0.40", - "@umbraco/playwright-testhelpers": "^16.0.47", + "@umbraco/playwright-testhelpers": "^16.0.48", "camelize": "^1.0.0", "dotenv": "^16.3.1", "node-fetch": "^2.6.7" 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 ed59b768e2..9c48aadc62 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithCheckboxList.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithCheckboxList.spec.ts @@ -93,11 +93,11 @@ test('can not publish a mandatory checkbox list with an empty value', {tag: '@re await umbracoUi.content.goToContentWithName(contentName); // 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.isValidationMessageVisible(ConstantHelper.validationMessages.nullValue); await umbracoUi.content.doesErrorNotificationHaveText(NotificationConstantHelper.error.documentCouldNotBePublished); // Select a checkbox list value and the validation error disappears await umbracoUi.content.chooseCheckboxListOption(optionValues[0]); - await umbracoUi.content.isValidationMessageVisible(ConstantHelper.validationMessages.emptyValue, false); + await umbracoUi.content.isValidationMessageVisible(ConstantHelper.validationMessages.nullValue, false); await umbracoUi.content.clickSaveAndPublishButton(); // Assert 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 52e0614681..c239749d76 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithDropdown.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithDropdown.spec.ts @@ -96,11 +96,11 @@ test('can not publish a mandatory dropdown with an empty value', {tag: '@release await umbracoUi.content.goToContentWithName(contentName); // 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.isValidationMessageVisible(ConstantHelper.validationMessages.nullValue); await umbracoUi.content.doesErrorNotificationHaveText(NotificationConstantHelper.error.documentCouldNotBePublished); // Select a dropdown value and the validation error disappears await umbracoUi.content.chooseDropdownOption([optionValues[0]]); - await umbracoUi.content.isValidationMessageVisible(ConstantHelper.validationMessages.emptyValue, false); + await umbracoUi.content.isValidationMessageVisible(ConstantHelper.validationMessages.nullValue, false); await umbracoUi.content.clickSaveAndPublishButton(); // Assert 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 7a591e9b52..26b7b19cc2 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithRadiobox.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithRadiobox.spec.ts @@ -96,11 +96,11 @@ test('can not publish mandatory radiobox with an empty value', {tag: '@release'} await umbracoUi.content.goToContentWithName(contentName); // 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.isValidationMessageVisible(ConstantHelper.validationMessages.nullValue); await umbracoUi.content.doesErrorNotificationHaveText(NotificationConstantHelper.error.documentCouldNotBePublished); // Select a radiobox value and the validation error disappears await umbracoUi.content.chooseRadioboxOption(optionValues[0]); - await umbracoUi.content.isValidationMessageVisible(ConstantHelper.validationMessages.emptyValue, false); + await umbracoUi.content.isValidationMessageVisible(ConstantHelper.validationMessages.nullValue, false); await umbracoUi.content.clickSaveAndPublishButton(); // Assert diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/BlockGrid/Block/BlockGridBlockAdvanced.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/BlockGrid/Block/BlockGridBlockAdvanced.spec.ts index ffa32b7330..7803ce7e83 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/BlockGrid/Block/BlockGridBlockAdvanced.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/BlockGrid/Block/BlockGridBlockAdvanced.spec.ts @@ -240,9 +240,7 @@ test('can remove a icon color from a block', async ({umbracoApi, umbracoUi}) => expect(await umbracoApi.dataType.doesBlockEditorBlockContainIconColor(blockGridEditorName, contentElementTypeId, '')).toBeTruthy(); }); -// Remove skip when the front-end is ready. Currently it is not possible to add a thumbnail to a block -// Issue link: https://github.com/umbraco/Umbraco-CMS/issues/20264 -test.skip('can add a thumbnail to a block', {tag: '@smoke'}, async ({umbracoApi, umbracoUi}) => { +test('can add a thumbnail to a block', {tag: '@smoke'}, async ({umbracoApi, umbracoUi}) => { // Arrange const mediaName = 'TestMedia'; await umbracoApi.media.ensureNameNotExists(mediaName); diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/RichTextEditor.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/RichTextEditor.spec.ts index 5abb31dfda..8a02804572 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/RichTextEditor.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/RichTextEditor.spec.ts @@ -8,6 +8,7 @@ const tipTapUiAlias = 'Umb.PropertyEditorUi.Tiptap'; const extensionsDefaultValue = [ "Umb.Tiptap.RichTextEssentials", "Umb.Tiptap.Anchor", + "Umb.Tiptap.Block", "Umb.Tiptap.Blockquote", "Umb.Tiptap.Bold", "Umb.Tiptap.BulletList", @@ -35,8 +36,7 @@ const extensionsDefaultValue = [ "Umb.Tiptap.TextDirection", "Umb.Tiptap.TextIndent", "Umb.Tiptap.TrailingNode", - "Umb.Tiptap.Underline", - "Umb.Tiptap.WordCount" + "Umb.Tiptap.Underline" ]; const toolbarDefaultValue = [ 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 fba1dd167c..ab749dc20a 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Media/Media.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Media/Media.spec.ts @@ -25,7 +25,8 @@ test('can not create a empty media file', {tag: '@release'}, async ({umbracoApi, await umbracoUi.media.clickSaveButton(); // Assert - await umbracoUi.media.isErrorNotificationVisible(); + await umbracoUi.media.isFailedStateButtonVisible(); + await umbracoUi.media.isValidationMessageVisible(ConstantHelper.validationMessages.nullValue); await umbracoUi.media.isMediaTreeItemVisible(mediaFileName, false); expect(await umbracoApi.media.doesNameExist(mediaFileName)).toBeFalsy(); }); diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Members/Members.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Members/Members.spec.ts index 654c2da7bf..17950733d6 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Members/Members.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Members/Members.spec.ts @@ -1,4 +1,4 @@ -import {NotificationConstantHelper, test} from '@umbraco/playwright-testhelpers'; +import {ConstantHelper, NotificationConstantHelper, test} from '@umbraco/playwright-testhelpers'; import {expect} from "@playwright/test"; let memberId = ''; @@ -241,7 +241,7 @@ test('cannot create member with invalid email', {tag: '@release'}, async ({umbra // Assert await umbracoUi.member.isFailedStateButtonVisible(); - await umbracoUi.member.doesErrorNotificationHaveText(NotificationConstantHelper.error.invalidEmail); + await umbracoUi.member.isValidationMessageVisible(ConstantHelper.validationMessages.invalidEmail); expect(await umbracoApi.member.doesNameExist(memberName)).toBeFalsy(); }); @@ -259,7 +259,7 @@ test('cannot update email to an invalid email', async ({umbracoApi, umbracoUi}) // Assert await umbracoUi.member.isFailedStateButtonVisible(); - await umbracoUi.member.isErrorNotificationVisible(); + await umbracoUi.member.isValidationMessageVisible(ConstantHelper.validationMessages.invalidEmail); const memberData = await umbracoApi.member.get(memberId); expect(memberData.email).toBe(email); });