V15 QA Added acceptance tests for user group default configuration (#18800)
* Updated userGroup tests due to test helper changes * Added tests for user group default configuration * Bumped version * Fixed due to test helper changes * Reverted npm command
This commit is contained in:
11
tests/Umbraco.Tests.AcceptanceTest/package-lock.json
generated
11
tests/Umbraco.Tests.AcceptanceTest/package-lock.json
generated
@@ -7,8 +7,8 @@
|
||||
"name": "acceptancetest",
|
||||
"hasInstallScript": true,
|
||||
"dependencies": {
|
||||
"@umbraco/json-models-builders": "^2.0.29",
|
||||
"@umbraco/playwright-testhelpers": "^15.0.38",
|
||||
"@umbraco/json-models-builders": "^2.0.31",
|
||||
"@umbraco/playwright-testhelpers": "^15.0.39",
|
||||
"camelize": "^1.0.0",
|
||||
"dotenv": "^16.3.1",
|
||||
"node-fetch": "^2.6.7"
|
||||
@@ -67,10 +67,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@umbraco/playwright-testhelpers": {
|
||||
"version": "15.0.38",
|
||||
"resolved": "https://registry.npmjs.org/@umbraco/playwright-testhelpers/-/playwright-testhelpers-15.0.38.tgz",
|
||||
"integrity": "sha512-eWJdK2qkdcJJ7st4eAMCJAdYprX7pgDOQoTVTEt62uFCkILuBkGd/MpCYUhFu7IMbFMjNEhWW/+sGSBjS5G14g==",
|
||||
"license": "MIT",
|
||||
"version": "15.0.39",
|
||||
"resolved": "https://registry.npmjs.org/@umbraco/playwright-testhelpers/-/playwright-testhelpers-15.0.39.tgz",
|
||||
"integrity": "sha512-dNl+P5LOW4CZrlzt7TnXOKUDeHI3juN/BfG9b0P/selpiFPrseH1HrB0myJVmPfuq4KCa+490VTu46qXHGwGLw==",
|
||||
"dependencies": {
|
||||
"@umbraco/json-models-builders": "2.0.31",
|
||||
"node-fetch": "^2.6.7"
|
||||
|
||||
@@ -20,8 +20,8 @@
|
||||
"typescript": "^4.8.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"@umbraco/json-models-builders": "^2.0.29",
|
||||
"@umbraco/playwright-testhelpers": "^15.0.38",
|
||||
"@umbraco/json-models-builders": "^2.0.31",
|
||||
"@umbraco/playwright-testhelpers": "^15.0.39",
|
||||
"camelize": "^1.0.0",
|
||||
"dotenv": "^16.3.1",
|
||||
"node-fetch": "^2.6.7"
|
||||
|
||||
@@ -136,7 +136,7 @@ test('can add a section to a user group', async ({umbracoApi, umbracoUi}) => {
|
||||
// Assert
|
||||
await umbracoUi.userGroup.doesSuccessNotificationHaveText(NotificationConstantHelper.success.saved);
|
||||
await umbracoUi.userGroup.clickUserGroupsButton();
|
||||
await umbracoUi.userGroup.doesUserGroupHaveSection(userGroupName, 'Content');
|
||||
await umbracoUi.userGroup.doesUserGroupTableHaveSection(userGroupName, 'Content');
|
||||
})
|
||||
|
||||
test('can add multiple sections to a user group', async ({umbracoApi, umbracoUi}) => {
|
||||
@@ -152,8 +152,8 @@ test('can add multiple sections to a user group', async ({umbracoApi, umbracoUi}
|
||||
// Assert
|
||||
await umbracoUi.userGroup.doesSuccessNotificationHaveText(NotificationConstantHelper.success.saved);
|
||||
await umbracoUi.userGroup.clickUserGroupsButton();
|
||||
await umbracoUi.userGroup.doesUserGroupHaveSection(userGroupName, 'Content');
|
||||
await umbracoUi.userGroup.doesUserGroupHaveSection(userGroupName, 'Media');
|
||||
await umbracoUi.userGroup.doesUserGroupTableHaveSection(userGroupName, 'Content');
|
||||
await umbracoUi.userGroup.doesUserGroupTableHaveSection(userGroupName, 'Media');
|
||||
});
|
||||
|
||||
test('can remove a section from a user group', async ({umbracoApi, umbracoUi}) => {
|
||||
@@ -170,7 +170,7 @@ test('can remove a section from a user group', async ({umbracoApi, umbracoUi}) =
|
||||
// Assert
|
||||
await umbracoUi.userGroup.doesSuccessNotificationHaveText(NotificationConstantHelper.success.saved);
|
||||
await umbracoUi.userGroup.clickUserGroupsButton();
|
||||
await umbracoUi.userGroup.doesUserGroupHaveSection(userGroupName, 'Content', false);
|
||||
await umbracoUi.userGroup.doesUserGroupTableHaveSection(userGroupName, 'Content', false);
|
||||
const userGroupData = await umbracoApi.userGroup.getByName(userGroupName);
|
||||
expect(userGroupData.sections).toEqual([]);
|
||||
});
|
||||
|
||||
@@ -0,0 +1,224 @@
|
||||
import {ConstantHelper, test} from '@umbraco/playwright-testhelpers';
|
||||
import {expect} from "@playwright/test";
|
||||
|
||||
test.beforeEach(async ({umbracoUi}) => {
|
||||
await umbracoUi.goToBackOffice();
|
||||
await umbracoUi.userGroup.goToSection(ConstantHelper.sections.users);
|
||||
await umbracoUi.userGroup.clickUserGroupsButton();
|
||||
});
|
||||
|
||||
test('the default configuration of Administrators is correct', async ({umbracoApi, umbracoUi}) => {
|
||||
// Arrange
|
||||
const userGroupName = 'Administrators';
|
||||
const sections = [
|
||||
"Umb.Section.Content",
|
||||
"Umb.Section.Media",
|
||||
"Umb.Section.Members",
|
||||
"Umb.Section.Packages",
|
||||
"Umb.Section.Settings",
|
||||
"Umb.Section.Translation",
|
||||
"Umb.Section.Users"
|
||||
];
|
||||
const fallbackPermissions = [
|
||||
"Umb.Document.Create",
|
||||
"Umb.Document.Update",
|
||||
"Umb.Document.Delete",
|
||||
"Umb.Document.Move",
|
||||
"Umb.Document.Duplicate",
|
||||
"Umb.Document.Sort",
|
||||
"Umb.Document.Rollback",
|
||||
"Umb.Document.PublicAccess",
|
||||
"Umb.Document.CultureAndHostnames",
|
||||
"Umb.Document.Publish",
|
||||
"Umb.Document.Permissions",
|
||||
"Umb.Document.Unpublish",
|
||||
"Umb.Document.Read",
|
||||
"Umb.Document.CreateBlueprint",
|
||||
"Umb.Document.Notifications",
|
||||
];
|
||||
const granularPermissions = [];
|
||||
const hasAccessToAllLanguages = true;
|
||||
const documentRootAccess = true;
|
||||
const mediaRootAccess = true;
|
||||
const uiPermissions = await umbracoApi.userGroup.convertApiPermissionsToUiPermissions(fallbackPermissions);
|
||||
const uiSections = await umbracoApi.userGroup.convertApiSectionsToUiSections(sections);
|
||||
|
||||
// Act
|
||||
await umbracoUi.userGroup.clickUserGroupWithName(userGroupName);
|
||||
|
||||
// Act
|
||||
await umbracoUi.userGroup.doesSettingHaveValue('Assign access', ConstantHelper.userGroupAssignAccessSettings);
|
||||
await umbracoUi.userGroup.doesSettingHaveValue('Default permissions', ConstantHelper.userGroupDefaultPermissionsSettings);
|
||||
await umbracoUi.userGroup.doesSettingHaveValue('Granular permissions', ConstantHelper.userGroupGranularPermissionsSettings);
|
||||
await umbracoUi.userGroup.doesPermissionsSettingsHaveValue(ConstantHelper.userGroupPermissionsSettings);
|
||||
await umbracoUi.userGroup.doesUserGroupHavePermissionEnabled(uiPermissions);
|
||||
await umbracoUi.userGroup.doesUserGroupHaveSections(uiSections);
|
||||
await umbracoUi.userGroup.doesUserGroupSectionsHaveCount(uiSections.length);
|
||||
// Fixme - Uncomment this when the front-end is ready. Currently the sections includes "Umb.Section.Forms" which should be removed.
|
||||
//expect(await umbracoApi.userGroup.doesUserGroupHaveSections(userGroupName, sections)).toBeTruthy();
|
||||
// Fixme - Uncomment this when the front-end is ready. Currently the fallbackPermissions includes some unnecessary values such as ":", "5", "T"
|
||||
//expect(await umbracoApi.userGroup.doesUserGroupHaveFallbackPermissions(userGroupName, fallbackPermissions)).toBeTruthy();
|
||||
const userGroupData = await umbracoApi.userGroup.getByName(userGroupName);
|
||||
expect(userGroupData.hasAccessToAllLanguages).toEqual(hasAccessToAllLanguages);
|
||||
expect(userGroupData.documentRootAccess).toEqual(documentRootAccess);
|
||||
expect(userGroupData.mediaRootAccess).toEqual(mediaRootAccess);
|
||||
expect(userGroupData.permissions).toEqual(granularPermissions);
|
||||
});
|
||||
|
||||
test('the default configuration of Editors is correct', async ({umbracoApi, umbracoUi}) => {
|
||||
// Arrange
|
||||
const userGroupName = 'Editors';
|
||||
const sections = [
|
||||
"Umb.Section.Content",
|
||||
"Umb.Section.Media"
|
||||
];
|
||||
const fallbackPermissions = [
|
||||
"Umb.Document.Create",
|
||||
"Umb.Document.Update",
|
||||
"Umb.Document.Delete",
|
||||
"Umb.Document.Move",
|
||||
"Umb.Document.Duplicate",
|
||||
"Umb.Document.Sort",
|
||||
"Umb.Document.Rollback",
|
||||
"Umb.Document.PublicAccess",
|
||||
"Umb.Document.Publish",
|
||||
"Umb.Document.Unpublish",
|
||||
"Umb.Document.Read",
|
||||
"Umb.Document.CreateBlueprint",
|
||||
"Umb.Document.Notifications",
|
||||
];
|
||||
const granularPermissions = [];
|
||||
const hasAccessToAllLanguages = true;
|
||||
const documentRootAccess = true;
|
||||
const mediaRootAccess = true;
|
||||
const uiPermissions = await umbracoApi.userGroup.convertApiPermissionsToUiPermissions(fallbackPermissions);
|
||||
const uiSections = await umbracoApi.userGroup.convertApiSectionsToUiSections(sections);
|
||||
|
||||
// Act
|
||||
await umbracoUi.userGroup.clickUserGroupWithName(userGroupName);
|
||||
|
||||
// Act
|
||||
await umbracoUi.userGroup.doesSettingHaveValue('Assign access', ConstantHelper.userGroupAssignAccessSettings);
|
||||
await umbracoUi.userGroup.doesSettingHaveValue('Default permissions', ConstantHelper.userGroupDefaultPermissionsSettings);
|
||||
await umbracoUi.userGroup.doesSettingHaveValue('Granular permissions', ConstantHelper.userGroupGranularPermissionsSettings);
|
||||
await umbracoUi.userGroup.doesPermissionsSettingsHaveValue(ConstantHelper.userGroupPermissionsSettings);
|
||||
await umbracoUi.userGroup.doesUserGroupHavePermissionEnabled(uiPermissions);
|
||||
await umbracoUi.userGroup.doesUserGroupHaveSections(uiSections);
|
||||
await umbracoUi.userGroup.doesUserGroupSectionsHaveCount(uiSections.length);
|
||||
// Fixme - Uncomment this when the front-end is ready. Currently the sections includes "Umb.Section.Forms" which should be removed.
|
||||
//expect(await umbracoApi.userGroup.doesUserGroupHaveSections(userGroupName, sections)).toBeTruthy();
|
||||
// Fixme - Uncomment this when the front-end is ready. Currently the fallbackPermissions includes some unnecessary values such as ":", "5", "T"
|
||||
//expect(await umbracoApi.userGroup.doesUserGroupHaveFallbackPermissions(userGroupName, fallbackPermissions)).toBeTruthy();
|
||||
const userGroupData = await umbracoApi.userGroup.getByName(userGroupName);
|
||||
expect(userGroupData.hasAccessToAllLanguages).toEqual(hasAccessToAllLanguages);
|
||||
expect(userGroupData.documentRootAccess).toEqual(documentRootAccess);
|
||||
expect(userGroupData.mediaRootAccess).toEqual(mediaRootAccess);
|
||||
expect(userGroupData.permissions).toEqual(granularPermissions);
|
||||
});
|
||||
|
||||
test('the default configuration of Sensitive data is correct', async ({umbracoApi, umbracoUi}) => {
|
||||
// Arrange
|
||||
const userGroupName = 'Sensitive data';
|
||||
const sections = [];
|
||||
const fallbackPermissions = [];
|
||||
const granularPermissions = [];
|
||||
const hasAccessToAllLanguages = false;
|
||||
const documentRootAccess = false;
|
||||
const mediaRootAccess = false;
|
||||
const uiPermissions = await umbracoApi.userGroup.convertApiPermissionsToUiPermissions(fallbackPermissions);
|
||||
const uiSections = await umbracoApi.userGroup.convertApiSectionsToUiSections(sections);
|
||||
|
||||
// Act
|
||||
await umbracoUi.userGroup.clickUserGroupWithName(userGroupName);
|
||||
|
||||
// Act
|
||||
await umbracoUi.userGroup.doesSettingHaveValue('Assign access', ConstantHelper.userGroupAssignAccessSettings);
|
||||
await umbracoUi.userGroup.doesSettingHaveValue('Default permissions', ConstantHelper.userGroupDefaultPermissionsSettings);
|
||||
await umbracoUi.userGroup.doesSettingHaveValue('Granular permissions', ConstantHelper.userGroupGranularPermissionsSettings);
|
||||
await umbracoUi.userGroup.doesPermissionsSettingsHaveValue(ConstantHelper.userGroupPermissionsSettings);
|
||||
await umbracoUi.userGroup.doesUserGroupHavePermissionEnabled(uiPermissions);
|
||||
await umbracoUi.userGroup.doesUserGroupHaveSections(uiSections);
|
||||
await umbracoUi.userGroup.doesUserGroupSectionsHaveCount(uiSections.length);
|
||||
// Fixme - Uncomment this when the front-end is ready. Currently the sections includes "Umb.Section.Forms" which should be removed.
|
||||
//expect(await umbracoApi.userGroup.doesUserGroupHaveSections(userGroupName, sections)).toBeTruthy();
|
||||
// Fixme - Uncomment this when the front-end is ready. Currently the fallbackPermissions includes some unnecessary values such as ":", "5", "T"
|
||||
//expect(await umbracoApi.userGroup.doesUserGroupHaveFallbackPermissions(userGroupName, fallbackPermissions)).toBeTruthy();
|
||||
const userGroupData = await umbracoApi.userGroup.getByName(userGroupName);
|
||||
expect(userGroupData.hasAccessToAllLanguages).toEqual(hasAccessToAllLanguages);
|
||||
expect(userGroupData.documentRootAccess).toEqual(documentRootAccess);
|
||||
expect(userGroupData.mediaRootAccess).toEqual(mediaRootAccess);
|
||||
expect(userGroupData.permissions).toEqual(granularPermissions);
|
||||
});
|
||||
|
||||
test('the default configuration of Translators data is correct', async ({umbracoApi, umbracoUi}) => {
|
||||
// Arrange
|
||||
const userGroupName = 'Translators';
|
||||
const sections = ["Umb.Section.Translation"];
|
||||
const fallbackPermissions = [
|
||||
"Umb.Document.Update",
|
||||
"Umb.Document.Read"
|
||||
];
|
||||
const granularPermissions = [];
|
||||
const hasAccessToAllLanguages = true;
|
||||
const documentRootAccess = true;
|
||||
const mediaRootAccess = true;
|
||||
const uiPermissions = await umbracoApi.userGroup.convertApiPermissionsToUiPermissions(fallbackPermissions);
|
||||
const uiSections = await umbracoApi.userGroup.convertApiSectionsToUiSections(sections);
|
||||
|
||||
// Act
|
||||
await umbracoUi.userGroup.clickUserGroupWithName(userGroupName);
|
||||
|
||||
// Act
|
||||
await umbracoUi.userGroup.doesSettingHaveValue('Assign access', ConstantHelper.userGroupAssignAccessSettings);
|
||||
await umbracoUi.userGroup.doesSettingHaveValue('Default permissions', ConstantHelper.userGroupDefaultPermissionsSettings);
|
||||
await umbracoUi.userGroup.doesSettingHaveValue('Granular permissions', ConstantHelper.userGroupGranularPermissionsSettings);
|
||||
await umbracoUi.userGroup.doesPermissionsSettingsHaveValue(ConstantHelper.userGroupPermissionsSettings);
|
||||
await umbracoUi.userGroup.doesUserGroupHavePermissionEnabled(uiPermissions);
|
||||
await umbracoUi.userGroup.doesUserGroupHaveSections(uiSections);
|
||||
await umbracoUi.userGroup.doesUserGroupSectionsHaveCount(uiSections.length);
|
||||
expect(await umbracoApi.userGroup.doesUserGroupHaveSections(userGroupName, sections)).toBeTruthy();
|
||||
expect(await umbracoApi.userGroup.doesUserGroupHaveFallbackPermissions(userGroupName, fallbackPermissions)).toBeTruthy();
|
||||
const userGroupData = await umbracoApi.userGroup.getByName(userGroupName);
|
||||
expect(userGroupData.hasAccessToAllLanguages).toEqual(hasAccessToAllLanguages);
|
||||
expect(userGroupData.documentRootAccess).toEqual(documentRootAccess);
|
||||
expect(userGroupData.mediaRootAccess).toEqual(mediaRootAccess);
|
||||
expect(userGroupData.permissions).toEqual(granularPermissions);
|
||||
});
|
||||
|
||||
test('the default configuration of Writers data is correct', async ({umbracoApi, umbracoUi}) => {
|
||||
// Arrange
|
||||
const userGroupName = 'Writers';
|
||||
const sections = ["Umb.Section.Content"];
|
||||
const fallbackPermissions = [
|
||||
"Umb.Document.Create",
|
||||
"Umb.Document.Update",
|
||||
"Umb.Document.Read",
|
||||
"Umb.Document.Notifications"
|
||||
];
|
||||
const granularPermissions = [];
|
||||
const hasAccessToAllLanguages = true;
|
||||
const documentRootAccess = true;
|
||||
const mediaRootAccess = true;
|
||||
const uiPermissions = await umbracoApi.userGroup.convertApiPermissionsToUiPermissions(fallbackPermissions);
|
||||
const uiSections = await umbracoApi.userGroup.convertApiSectionsToUiSections(sections);
|
||||
|
||||
// Act
|
||||
await umbracoUi.userGroup.clickUserGroupWithName(userGroupName);
|
||||
|
||||
// Act
|
||||
await umbracoUi.userGroup.doesSettingHaveValue('Assign access', ConstantHelper.userGroupAssignAccessSettings);
|
||||
await umbracoUi.userGroup.doesSettingHaveValue('Default permissions', ConstantHelper.userGroupDefaultPermissionsSettings);
|
||||
await umbracoUi.userGroup.doesSettingHaveValue('Granular permissions', ConstantHelper.userGroupGranularPermissionsSettings);
|
||||
await umbracoUi.userGroup.doesPermissionsSettingsHaveValue(ConstantHelper.userGroupPermissionsSettings);
|
||||
await umbracoUi.userGroup.doesUserGroupHavePermissionEnabled(uiPermissions);
|
||||
await umbracoUi.userGroup.doesUserGroupHaveSections(uiSections);
|
||||
await umbracoUi.userGroup.doesUserGroupSectionsHaveCount(uiSections.length);
|
||||
expect(await umbracoApi.userGroup.doesUserGroupHaveSections(userGroupName, sections)).toBeTruthy();
|
||||
// Fixme - Uncomment this when the front-end is ready. Currently the fallbackPermissions includes some unnecessary values such as ":", "5", "T"
|
||||
//expect(await umbracoApi.userGroup.doesUserGroupHaveFallbackPermissions(userGroupName, fallbackPermissions)).toBeTruthy();
|
||||
const userGroupData = await umbracoApi.userGroup.getByName(userGroupName);
|
||||
expect(userGroupData.hasAccessToAllLanguages).toEqual(hasAccessToAllLanguages);
|
||||
expect(userGroupData.documentRootAccess).toEqual(documentRootAccess);
|
||||
expect(userGroupData.mediaRootAccess).toEqual(mediaRootAccess);
|
||||
expect(userGroupData.permissions).toEqual(granularPermissions);
|
||||
});
|
||||
Reference in New Issue
Block a user