From 5a56541aa5f09aca3290ad574ad8cef8836a8306 Mon Sep 17 00:00:00 2001 From: Nhu Dinh <150406148+nhudinh0309@users.noreply.github.com> Date: Mon, 2 Jun 2025 16:21:09 +0700 Subject: [PATCH] V16 Added acceptance tests for document property value permission (#19385) * Updated due to test helper changes * Updated user group tests due to api helper changes * Updated tests for user group default configuration due to UI changes * Added tests for document property value permission * Added tests for document property value permission in content with block * Bumped version * Make specific tests run in the pipeline * Added skip tag and issue link for the failing tests * Fixed comment * Bumped version * Fixed comments * Bumped version and reverted npm command --- .../package-lock.json | 19 ++- .../Umbraco.Tests.AcceptanceTest/package.json | 4 +- .../DefaultPermissionsInContent.spec.ts | 4 +- .../DocumentPropertyValuePermission.spec.ts | 127 +++++++++++++++ ...mentPropertyValuePermissionInBlock.spec.ts | 150 ++++++++++++++++++ .../DefaultConfig/Users/UserGroups.spec.ts | 2 +- .../UserGroupsDefaultConfiguration.spec.ts | 12 +- 7 files changed, 301 insertions(+), 17 deletions(-) create mode 100644 tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/UserGroup/DocumentPropertyValuePermission.spec.ts create mode 100644 tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/UserGroup/DocumentPropertyValuePermissionInBlock.spec.ts diff --git a/tests/Umbraco.Tests.AcceptanceTest/package-lock.json b/tests/Umbraco.Tests.AcceptanceTest/package-lock.json index 24377bca5b..b022c52841 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/package-lock.json +++ b/tests/Umbraco.Tests.AcceptanceTest/package-lock.json @@ -7,8 +7,8 @@ "name": "acceptancetest", "hasInstallScript": true, "dependencies": { - "@umbraco/json-models-builders": "^2.0.33", - "@umbraco/playwright-testhelpers": "^16.0.15", + "@umbraco/json-models-builders": "^2.0.35", + "@umbraco/playwright-testhelpers": "^16.0.20", "camelize": "^1.0.0", "dotenv": "^16.3.1", "node-fetch": "^2.6.7" @@ -58,20 +58,19 @@ } }, "node_modules/@umbraco/json-models-builders": { - "version": "2.0.33", - "resolved": "https://registry.npmjs.org/@umbraco/json-models-builders/-/json-models-builders-2.0.33.tgz", - "integrity": "sha512-FAQxQIHoY6PGxWuodp4LSQxNufnOiqnaRNmtG8Ejn01r9lJJdA27CJKJ0bCs8U0W3cdN+Z+j7jBLd8H025/THw==", + "version": "2.0.35", + "resolved": "https://registry.npmjs.org/@umbraco/json-models-builders/-/json-models-builders-2.0.35.tgz", + "integrity": "sha512-9qHvp7j8Lhj2x4xxWYz+ovRyoSnJIl4eLbSAst4nODCNqXSTWOy3+mzho3SeYWeil00/r0zXExHoXklVYi4iKA==", "dependencies": { "camelize": "^1.0.1" } }, "node_modules/@umbraco/playwright-testhelpers": { - "version": "16.0.15", - "resolved": "https://registry.npmjs.org/@umbraco/playwright-testhelpers/-/playwright-testhelpers-16.0.15.tgz", - "integrity": "sha512-qrhVUy0EeSnOL9SNxLNmqdl+SWXamDuPWxDLMWE6f3B1DW4DDTjJYHY+GeYdP4nbXT6OJKtSSH1jCDJi7Ofkeg==", - "license": "MIT", + "version": "16.0.20", + "resolved": "https://registry.npmjs.org/@umbraco/playwright-testhelpers/-/playwright-testhelpers-16.0.20.tgz", + "integrity": "sha512-Oqhj7g4qYB63wy29MWlN/cbAw5gFPVgKL+7CuvJd0EQjisCB3tYTRr/PTrrUoI8SW6TJpnUkBL/XYQR2ufrjBQ==", "dependencies": { - "@umbraco/json-models-builders": "2.0.33", + "@umbraco/json-models-builders": "2.0.35", "node-fetch": "^2.6.7" } }, diff --git a/tests/Umbraco.Tests.AcceptanceTest/package.json b/tests/Umbraco.Tests.AcceptanceTest/package.json index a77b72afd2..8bd214ce9b 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/package.json +++ b/tests/Umbraco.Tests.AcceptanceTest/package.json @@ -20,8 +20,8 @@ "typescript": "^4.8.3" }, "dependencies": { - "@umbraco/json-models-builders": "^2.0.33", - "@umbraco/playwright-testhelpers": "^16.0.15", + "@umbraco/json-models-builders": "^2.0.35", + "@umbraco/playwright-testhelpers": "^16.0.20", "camelize": "^1.0.0", "dotenv": "^16.3.1", "node-fetch": "^2.6.7" diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/UserGroup/DefaultPermissionsInContent.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/UserGroup/DefaultPermissionsInContent.spec.ts index ea32f45f76..0c23b9283d 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/UserGroup/DefaultPermissionsInContent.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/UserGroup/DefaultPermissionsInContent.spec.ts @@ -51,7 +51,7 @@ test.afterEach(async ({umbracoApi}) => { test('can browse content node with permission enabled', async ({umbracoApi, umbracoUi}) => { // Arrange - userGroupId = await umbracoApi.userGroup.createUserGroupWithBrowseNodePermission(userGroupName); + userGroupId = await umbracoApi.userGroup.createUserGroupWithReadPermission(userGroupName); await umbracoApi.user.setUserPermissions(testUser.name, testUser.email, testUser.password, userGroupId); testUserCookieAndToken = await umbracoApi.user.loginToUser(testUser.name, testUser.email, testUser.password); await umbracoUi.goToBackOffice(); @@ -66,7 +66,7 @@ test('can browse content node with permission enabled', async ({umbracoApi, umbr test('can not browse content node with permission disabled', async ({umbracoApi, umbracoUi}) => { // Arrange - userGroupId = await umbracoApi.userGroup.createUserGroupWithBrowseNodePermission(userGroupName, false); + userGroupId = await umbracoApi.userGroup.createUserGroupWithReadPermission(userGroupName, false); await umbracoApi.user.setUserPermissions(testUser.name, testUser.email, testUser.password, userGroupId); testUserCookieAndToken = await umbracoApi.user.loginToUser(testUser.name, testUser.email, testUser.password); await umbracoUi.goToBackOffice(); diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/UserGroup/DocumentPropertyValuePermission.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/UserGroup/DocumentPropertyValuePermission.spec.ts new file mode 100644 index 0000000000..202fd33ef3 --- /dev/null +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/UserGroup/DocumentPropertyValuePermission.spec.ts @@ -0,0 +1,127 @@ +import { expect } from '@playwright/test'; +import {AliasHelper, ConstantHelper, NotificationConstantHelper, test} from '@umbraco/playwright-testhelpers'; + +const testUser = ConstantHelper.testUserCredentials; +let testUserCookieAndToken = {cookie: "", accessToken: "", refreshToken: ""}; + +const userGroupName = 'TestPropertyValuePermission'; +let userGroupId = null; + +const documentName = 'TestDocument'; +const documentTypeName = 'TestDocumentType'; +const dataTypeName = 'Textstring'; +const textString = 'This is test textstring'; + +test.beforeEach(async ({umbracoApi}) => { + await umbracoApi.documentType.ensureNameNotExists(documentTypeName); + await umbracoApi.document.ensureNameNotExists(documentName); + const dataTypeData = await umbracoApi.dataType.getByName(dataTypeName); + const documentTypeId = await umbracoApi.documentType.createDocumentTypeWithPropertyEditor(documentTypeName, dataTypeName, dataTypeData.id); + await umbracoApi.document.createDocumentWithTextContent(documentName, documentTypeId, textString, dataTypeName); +}); + +test.afterEach(async ({umbracoApi}) => { + // Ensure we are logged in to admin + await umbracoApi.loginToAdminUser(testUserCookieAndToken.cookie, testUserCookieAndToken.accessToken, testUserCookieAndToken.refreshToken); + await umbracoApi.documentType.ensureNameNotExists(documentTypeName); + await umbracoApi.document.ensureNameNotExists(documentName); + await umbracoApi.userGroup.ensureNameNotExists(userGroupName); +}); + +test('cannot see property values without UI read permission', async ({umbracoApi, umbracoUi}) => { + // Arrange + userGroupId = await umbracoApi.userGroup.createUserGroupWithReadPermissionAndReadPropertyValuePermission(userGroupName, true, false); + await umbracoApi.user.setUserPermissions(testUser.name, testUser.email, testUser.password, userGroupId); + testUserCookieAndToken = await umbracoApi.user.loginToUser(testUser.name, testUser.email, testUser.password); + await umbracoUi.goToBackOffice(); + + // Act + await umbracoUi.content.goToSection(ConstantHelper.sections.content, false); + await umbracoUi.content.goToContentWithName(documentName); + + // Assert + await umbracoUi.content.isPropertyEditorUiWithNameVisible('text-box', false); +}); + +test('can see property values with UI read but not UI write permission', async ({umbracoApi, umbracoUi}) => { + // Arrange + userGroupId = await umbracoApi.userGroup.createUserGroupWithReadPermissionAndReadPropertyValuePermission(userGroupName, true, true); + await umbracoApi.user.setUserPermissions(testUser.name, testUser.email, testUser.password, userGroupId); + testUserCookieAndToken = await umbracoApi.user.loginToUser(testUser.name, testUser.email, testUser.password); + await umbracoUi.goToBackOffice(); + + // Act + await umbracoUi.content.goToSection(ConstantHelper.sections.content, false); + await umbracoUi.content.goToContentWithName(documentName); + + // Assert + await umbracoUi.content.isPropertyEditorUiWithNameReadOnly('text-box'); +}); + +test('cannot open content without document read permission even with UI read permission', async ({umbracoApi, umbracoUi}) => { + // Arrange + userGroupId = await umbracoApi.userGroup.createUserGroupWithReadPermissionAndReadPropertyValuePermission(userGroupName, false, true); + await umbracoApi.user.setUserPermissions(testUser.name, testUser.email, testUser.password, userGroupId); + testUserCookieAndToken = await umbracoApi.user.loginToUser(testUser.name, testUser.email, testUser.password); + await umbracoUi.goToBackOffice(); + + // Act + await umbracoUi.content.goToSection(ConstantHelper.sections.content, false); + await umbracoUi.content.goToContentWithName(documentName); + + // Assert + await umbracoUi.content.doesErrorNotificationHaveText(NotificationConstantHelper.error.permissionDenied); +}); + +test('cannot edit property values without UI write permission', async ({umbracoApi, umbracoUi}) => { + // Arrange + userGroupId = await umbracoApi.userGroup.createUserGroupWithUpdatePermissionAndWritePropertyValuePermission(userGroupName, true, false); + await umbracoApi.user.setUserPermissions(testUser.name, testUser.email, testUser.password, userGroupId); + testUserCookieAndToken = await umbracoApi.user.loginToUser(testUser.name, testUser.email, testUser.password); + await umbracoUi.goToBackOffice(); + + // Act + await umbracoUi.content.goToSection(ConstantHelper.sections.content, false); + await umbracoUi.content.goToContentWithName(documentName); + + // Assert + await umbracoUi.content.isDocumentReadOnly(false); + await umbracoUi.content.isPropertyEditorUiWithNameReadOnly('text-box'); +}); + +// Remove .skip when the front-end is ready. +// Issue link: https://github.com/umbraco/Umbraco-CMS/issues/19395 +test.skip('can edit property values with UI write permission', async ({umbracoApi, umbracoUi}) => { + // Arrange + const updatedText = 'Updated test text'; + userGroupId = await umbracoApi.userGroup.createUserGroupWithUpdatePermissionAndWritePropertyValuePermission(userGroupName, true, false); + await umbracoApi.user.setUserPermissions(testUser.name, testUser.email, testUser.password, userGroupId); + testUserCookieAndToken = await umbracoApi.user.loginToUser(testUser.name, testUser.email, testUser.password); + await umbracoUi.goToBackOffice(); + + // Act + await umbracoUi.content.goToSection(ConstantHelper.sections.content, false); + await umbracoUi.content.goToContentWithName(documentName); + await umbracoUi.content.enterTextstring(updatedText); + await umbracoUi.content.clickSaveButton(); + + // Assert + const documentData = await umbracoApi.document.getByName(documentName); + expect(documentData.values[0].alias).toEqual(AliasHelper.toAlias(dataTypeName)); + expect(documentData.values[0].value).toEqual(updatedText); +}); + +test('cannot see property values with only UI write but no UI read permission', async ({umbracoApi, umbracoUi}) => { + // Arrange + userGroupId = await umbracoApi.userGroup.createUserGroupWithUpdatePermissionAndWritePropertyValuePermission(userGroupName, true, true, false); + await umbracoApi.user.setUserPermissions(testUser.name, testUser.email, testUser.password, userGroupId); + testUserCookieAndToken = await umbracoApi.user.loginToUser(testUser.name, testUser.email, testUser.password); + await umbracoUi.goToBackOffice(); + + // Act + await umbracoUi.content.goToSection(ConstantHelper.sections.content, false); + await umbracoUi.content.goToContentWithName(documentName); + + // Assert + await umbracoUi.content.isPropertyEditorUiWithNameVisible('text-box', false); +}); \ No newline at end of file diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/UserGroup/DocumentPropertyValuePermissionInBlock.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/UserGroup/DocumentPropertyValuePermissionInBlock.spec.ts new file mode 100644 index 0000000000..d04a992c21 --- /dev/null +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/UserGroup/DocumentPropertyValuePermissionInBlock.spec.ts @@ -0,0 +1,150 @@ +import { expect } from '@playwright/test'; +import {ConstantHelper, test} from '@umbraco/playwright-testhelpers'; + +const testUser = ConstantHelper.testUserCredentials; +let testUserCookieAndToken = {cookie: "", accessToken: "", refreshToken: ""}; + +const userGroupName = 'TestPropertyValuePermission'; +let userGroupId = null; + +const documentName = 'TestContent'; +const documentTypeName = 'TestDocumentTypeForContent'; +const customDataTypeName = 'Custom Block List'; +const elementTypeName = 'BlockListElement'; +const propertyInBlock = 'Textstring'; +const groupName = 'testGroup'; +let elementTypeId = ''; + +test.beforeEach(async ({umbracoApi}) => { + await umbracoApi.documentType.ensureNameNotExists(documentTypeName); + await umbracoApi.document.ensureNameNotExists(documentName); + const textStringData = await umbracoApi.dataType.getByName(propertyInBlock); + elementTypeId = await umbracoApi.documentType.createDefaultElementType(elementTypeName, groupName, propertyInBlock, textStringData.id); +}); + +test.afterEach(async ({umbracoApi}) => { + // Ensure we are logged in to admin + await umbracoApi.loginToAdminUser(testUserCookieAndToken.cookie, testUserCookieAndToken.accessToken, testUserCookieAndToken.refreshToken); + await umbracoApi.document.ensureNameNotExists(documentName); + await umbracoApi.documentType.ensureNameNotExists(documentTypeName); + await umbracoApi.documentType.ensureNameNotExists(elementTypeName); + await umbracoApi.dataType.ensureNameNotExists(customDataTypeName); +}); + +test('can see property values in block list with UI read but not UI write permission', async ({umbracoApi, umbracoUi}) => { + // Arrange + await umbracoApi.document.createDefaultDocumentWithABlockListEditor(documentName, elementTypeId, documentTypeName, customDataTypeName); + userGroupId = await umbracoApi.userGroup.createUserGroupWithReadPermissionAndReadPropertyValuePermission(userGroupName, true, true); + await umbracoApi.user.setUserPermissions(testUser.name, testUser.email, testUser.password, userGroupId); + testUserCookieAndToken = await umbracoApi.user.loginToUser(testUser.name, testUser.email, testUser.password); + await umbracoUi.goToBackOffice(); + + // Act + await umbracoUi.content.goToSection(ConstantHelper.sections.content, false); + await umbracoUi.content.goToContentWithName(documentName); + await umbracoUi.content.isPropertyEditorUiWithNameVisible('block-list', true); + await umbracoUi.content.clickEditBlockListBlockButton(); + + // Assert + await umbracoUi.content.isPropertyEditorUiWithNameReadOnly('text-box'); +}); + +// Remove .skip when the front-end is ready. +// Issue link: https://github.com/umbraco/Umbraco-CMS/issues/19395 +test.skip('can edit property values in block list with UI write permission', async ({umbracoApi, umbracoUi}) => { + // Arrange + const updatedText = 'Updated test text'; + await umbracoApi.document.createDefaultDocumentWithABlockListEditor(documentName, elementTypeId, documentTypeName, customDataTypeName); + userGroupId = await umbracoApi.userGroup.createUserGroupWithUpdatePermissionAndWritePropertyValuePermission(userGroupName, true, false); + await umbracoApi.user.setUserPermissions(testUser.name, testUser.email, testUser.password, userGroupId); + testUserCookieAndToken = await umbracoApi.user.loginToUser(testUser.name, testUser.email, testUser.password); + await umbracoUi.goToBackOffice(); + + // Act + await umbracoUi.content.goToSection(ConstantHelper.sections.content, false); + await umbracoUi.content.goToContentWithName(documentName); + await umbracoUi.content.isPropertyEditorUiWithNameVisible('block-list', true); + await umbracoUi.content.clickEditBlockListBlockButton(); + await umbracoUi.content.enterTextstring(updatedText); + await umbracoUi.content.clickUpdateButton(); + await umbracoUi.content.clickSaveButton(); + + // Assert + const documentData = await umbracoApi.document.getByName(documentName); + expect(documentData.values[0].value.contentData[0].values[0].value).toEqual(updatedText); +}); + +test('cannot see property values in block list with only UI write but no UI read permission', async ({umbracoApi, umbracoUi}) => { + // Arrange + await umbracoApi.document.createDefaultDocumentWithABlockListEditor(documentName, elementTypeId, documentTypeName, customDataTypeName); + userGroupId = await umbracoApi.userGroup.createUserGroupWithUpdatePermissionAndWritePropertyValuePermission(userGroupName, true, true, false); + await umbracoApi.user.setUserPermissions(testUser.name, testUser.email, testUser.password, userGroupId); + testUserCookieAndToken = await umbracoApi.user.loginToUser(testUser.name, testUser.email, testUser.password); + await umbracoUi.goToBackOffice(); + + // Act + await umbracoUi.content.goToSection(ConstantHelper.sections.content, false); + await umbracoUi.content.goToContentWithName(documentName); + + // Assert + await umbracoUi.content.isPropertyEditorUiWithNameVisible('block-list', false); +}); + +test('can see property values in block grid with UI read but not UI write permission', async ({umbracoApi, umbracoUi}) => { + // Arrange + await umbracoApi.document.createDefaultDocumentWithABlockGridEditor(documentName, elementTypeId, documentTypeName, customDataTypeName); + userGroupId = await umbracoApi.userGroup.createUserGroupWithReadPermissionAndReadPropertyValuePermission(userGroupName, true, true); + await umbracoApi.user.setUserPermissions(testUser.name, testUser.email, testUser.password, userGroupId); + testUserCookieAndToken = await umbracoApi.user.loginToUser(testUser.name, testUser.email, testUser.password); + await umbracoUi.goToBackOffice(); + + // Act + await umbracoUi.content.goToSection(ConstantHelper.sections.content, false); + await umbracoUi.content.goToContentWithName(documentName); + await umbracoUi.content.isPropertyEditorUiWithNameVisible('block-grid', true); + await umbracoUi.content.clickEditBlockGridBlockButton(); + + // Assert + await umbracoUi.content.isPropertyEditorUiWithNameReadOnly('text-box'); +}); + +// Remove .skip when the front-end is ready. +// Issue link: https://github.com/umbraco/Umbraco-CMS/issues/19395 +test.skip('can edit property values in block grid with UI write permission', async ({umbracoApi, umbracoUi}) => { + // Arrange + const updatedText = 'Updated test text'; + await umbracoApi.document.createDefaultDocumentWithABlockGridEditor(documentName, elementTypeId, documentTypeName, customDataTypeName); + userGroupId = await umbracoApi.userGroup.createUserGroupWithUpdatePermissionAndWritePropertyValuePermission(userGroupName, true, false); + await umbracoApi.user.setUserPermissions(testUser.name, testUser.email, testUser.password, userGroupId); + testUserCookieAndToken = await umbracoApi.user.loginToUser(testUser.name, testUser.email, testUser.password); + await umbracoUi.goToBackOffice(); + + // Act + await umbracoUi.content.goToSection(ConstantHelper.sections.content, false); + await umbracoUi.content.goToContentWithName(documentName); + await umbracoUi.content.isPropertyEditorUiWithNameVisible('block-grid', true); + await umbracoUi.content.clickEditBlockGridBlockButton(); + await umbracoUi.content.enterTextstring(updatedText); + await umbracoUi.content.clickUpdateButton(); + await umbracoUi.content.clickSaveButton(); + + // Assert + const documentData = await umbracoApi.document.getByName(documentName); + expect(documentData.values[0].value.contentData[0].values[0].value).toEqual(updatedText); +}); + +test('cannot see property values in block grid with only UI write but no UI read permission', async ({umbracoApi, umbracoUi}) => { + // Arrange + await umbracoApi.document.createDefaultDocumentWithABlockGridEditor(documentName, elementTypeId, documentTypeName, customDataTypeName); + userGroupId = await umbracoApi.userGroup.createUserGroupWithUpdatePermissionAndWritePropertyValuePermission(userGroupName, true, true, false); + await umbracoApi.user.setUserPermissions(testUser.name, testUser.email, testUser.password, userGroupId); + testUserCookieAndToken = await umbracoApi.user.loginToUser(testUser.name, testUser.email, testUser.password); + await umbracoUi.goToBackOffice(); + + // Act + await umbracoUi.content.goToSection(ConstantHelper.sections.content, false); + await umbracoUi.content.goToContentWithName(documentName); + + // Assert + await umbracoUi.content.isPropertyEditorUiWithNameVisible('block-grid', false); +}); \ No newline at end of file diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/UserGroups.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/UserGroups.spec.ts index 3f554a32ab..375cccdf47 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/UserGroups.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/UserGroups.spec.ts @@ -477,7 +477,7 @@ test('can remove granular permission to a specific document for a user group', a await umbracoApi.documentType.ensureNameNotExists(documentTypeName); const documentTypeId = await umbracoApi.documentType.createDefaultDocumentTypeWithAllowAsRoot(documentTypeName); const documentId = await umbracoApi.document.createDefaultDocument(documentName, documentTypeId); - await umbracoApi.userGroup.createUserGroupWithPermissionsForSpecificDocumentWithBrowseNode(userGroupName, documentId); + await umbracoApi.userGroup.createUserGroupWithPermissionsForSpecificDocumentWithRead(userGroupName, documentId); expect(await umbracoApi.userGroup.doesUserGroupContainGranularPermissionsForDocument(userGroupName, documentId, [allPermissions.verbPermission[0]])).toBeTruthy(); await umbracoUi.userGroup.clickUserGroupsButton(); await umbracoUi.userGroup.clickUserGroupWithName(userGroupName); diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/UserGroupsDefaultConfiguration.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/UserGroupsDefaultConfiguration.spec.ts index d164753ea8..1e34bc65eb 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/UserGroupsDefaultConfiguration.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/UserGroupsDefaultConfiguration.spec.ts @@ -35,6 +35,8 @@ test('the default configuration of Administrators is correct', async ({umbracoAp "Umb.Document.Read", "Umb.Document.CreateBlueprint", "Umb.Document.Notifications", + "Umb.Document.PropertyValue.Read", + "Umb.Document.PropertyValue.Write" ]; const granularPermissions = []; const hasAccessToAllLanguages = true; @@ -86,6 +88,8 @@ test('the default configuration of Editors is correct', async ({umbracoApi, umbr "Umb.Document.Read", "Umb.Document.CreateBlueprint", "Umb.Document.Notifications", + "Umb.Document.PropertyValue.Read", + "Umb.Document.PropertyValue.Write" ]; const granularPermissions = []; const hasAccessToAllLanguages = true; @@ -156,7 +160,9 @@ test('the default configuration of Translators data is correct', async ({umbraco const sections = ["Umb.Section.Translation"]; const fallbackPermissions = [ "Umb.Document.Update", - "Umb.Document.Read" + "Umb.Document.Read", + "Umb.Document.PropertyValue.Read", + "Umb.Document.PropertyValue.Write" ]; const granularPermissions = []; const hasAccessToAllLanguages = true; @@ -193,7 +199,9 @@ test('the default configuration of Writers data is correct', async ({umbracoApi, "Umb.Document.Create", "Umb.Document.Update", "Umb.Document.Read", - "Umb.Document.Notifications" + "Umb.Document.Notifications", + "Umb.Document.PropertyValue.Read", + "Umb.Document.PropertyValue.Write" ]; const granularPermissions = []; const hasAccessToAllLanguages = true;