V14 QA members section user tests (#17448)

* Added tests for the members

* Cleaned up tests

* Bumped version

* Removed skip
This commit is contained in:
Andreas Zerbst
2024-11-11 09:43:57 +01:00
committed by GitHub
parent 0acdd26850
commit a5479bc96e
3 changed files with 108 additions and 11 deletions

View File

@@ -7,8 +7,8 @@
"name": "acceptancetest",
"hasInstallScript": true,
"dependencies": {
"@umbraco/json-models-builders": "^2.0.23",
"@umbraco/playwright-testhelpers": "^2.0.0-beta.96",
"@umbraco/json-models-builders": "^2.0.25",
"@umbraco/playwright-testhelpers": "^2.0.0-beta.98",
"camelize": "^1.0.0",
"dotenv": "^16.3.1",
"node-fetch": "^2.6.7"
@@ -55,19 +55,21 @@
}
},
"node_modules/@umbraco/json-models-builders": {
"version": "2.0.23",
"resolved": "https://registry.npmjs.org/@umbraco/json-models-builders/-/json-models-builders-2.0.23.tgz",
"integrity": "sha512-48TgQnrdxQ2Oi/NintzgYvVRnlX3JXKq505leuWATo9AH3ffuzR+g7hXoTC/Us9ms5BjTTXssLBwzlgCyHJTJQ==",
"version": "2.0.25",
"resolved": "https://registry.npmjs.org/@umbraco/json-models-builders/-/json-models-builders-2.0.25.tgz",
"integrity": "sha512-bFO4AuXUlkyRtBolqOnAvlW12B7Zh/cee3DHShAb+KaXdAC9LzvHYCSH33yJRk2Qc9KvK6ECAMamhiBcT1cMWw==",
"license": "MIT",
"dependencies": {
"camelize": "^1.0.1"
}
},
"node_modules/@umbraco/playwright-testhelpers": {
"version": "2.0.0-beta.96",
"resolved": "https://registry.npmjs.org/@umbraco/playwright-testhelpers/-/playwright-testhelpers-2.0.0-beta.96.tgz",
"integrity": "sha512-kij2xWXWgrwnqa3dU8ErWd7tFAisewFpVRGHM6tI1LSa/z6/OhGmHJqhk3rIm2bCb/eh2WMQH40x6t5OC8YpOw==",
"version": "2.0.0-beta.98",
"resolved": "https://registry.npmjs.org/@umbraco/playwright-testhelpers/-/playwright-testhelpers-2.0.0-beta.98.tgz",
"integrity": "sha512-gOQoLx5aSa5G0U4aFyp3Hd8xGlnM/x1th0Yv6/zYktZNwzBBfWIhMOBWulAzTNhdvfNcKjuBQCg2opQ4ZZNsew==",
"license": "MIT",
"dependencies": {
"@umbraco/json-models-builders": "2.0.23",
"@umbraco/json-models-builders": "2.0.25",
"node-fetch": "^2.6.7"
}
},

View File

@@ -20,8 +20,8 @@
"typescript": "^4.8.3"
},
"dependencies": {
"@umbraco/json-models-builders": "^2.0.23",
"@umbraco/playwright-testhelpers": "^2.0.0-beta.96",
"@umbraco/json-models-builders": "^2.0.25",
"@umbraco/playwright-testhelpers": "^2.0.0-beta.98",
"camelize": "^1.0.0",
"dotenv": "^16.3.1",
"node-fetch": "^2.6.7"

View File

@@ -0,0 +1,95 @@
import {ConstantHelper, NotificationConstantHelper, test} from '@umbraco/playwright-testhelpers';
import {expect} from "@playwright/test";
const testUser = ConstantHelper.testUserCredentials;
let testUserCookieAndToken = {cookie: "", accessToken: "", refreshToken: ""};
const userGroupName = 'TestUserGroup';
let userGroupId = null;
let memberId = '';
let memberTypeId = '';
const memberName = 'Test Member';
const memberTypeName = 'Test Member Type';
const comment = 'This is test comment';
const username = 'testmember';
const email = 'testmember@acceptance.test';
const password = '0123456789';
test.beforeEach(async ({umbracoApi}) => {
await umbracoApi.memberType.ensureNameNotExists(memberTypeName);
await umbracoApi.member.ensureNameNotExists(memberName);
await umbracoApi.user.ensureNameNotExists(testUser.name);
await umbracoApi.userGroup.ensureNameNotExists(userGroupName);
});
test.afterEach(async ({umbracoApi}) => {
// Ensure we are logged in to admin
await umbracoApi.loginToAdminUser(testUserCookieAndToken.cookie, testUserCookieAndToken.accessToken, testUserCookieAndToken.refreshToken);
await umbracoApi.memberType.ensureNameNotExists(memberTypeName);
await umbracoApi.member.ensureNameNotExists(memberName);
await umbracoApi.userGroup.ensureNameNotExists(userGroupName);
});
test('can access members section with section enabled', async ({umbracoApi, umbracoUi}) => {
// Arrange
userGroupId = await umbracoApi.userGroup.createUserGroupWithMemberSection(userGroupName);
await umbracoApi.user.setUserPermissions(testUser.name, testUser.email, testUser.password, userGroupId, [], true, [], false, 'en-us');
testUserCookieAndToken = await umbracoApi.user.loginToUser(testUser.name, testUser.email, testUser.password);
await umbracoUi.goToBackOffice();
// Act
await umbracoUi.member.goToSection(ConstantHelper.sections.members, false);
// Assert
await umbracoUi.user.isSectionWithNameVisible(ConstantHelper.sections.content, false);
await umbracoUi.member.doesErrorNotificationHaveText(NotificationConstantHelper.error.noAccessToResource, false);
});
test('can create member with members section set', async ({umbracoApi, umbracoUi}) => {
// Arrange
userGroupId = await umbracoApi.userGroup.createUserGroupWithMemberSection(userGroupName);
await umbracoApi.user.setUserPermissions(testUser.name, testUser.email, testUser.password, userGroupId, [], true, [], false, 'en-us');
testUserCookieAndToken = await umbracoApi.user.loginToUser(testUser.name, testUser.email, testUser.password);
await umbracoUi.goToBackOffice();
await umbracoUi.member.goToSection(ConstantHelper.sections.members, false);
// Act
await umbracoUi.member.clickCreateButton();
await umbracoUi.member.enterMemberName(memberName);
await umbracoUi.member.enterUsername(username);
await umbracoUi.member.enterEmail(email);
await umbracoUi.member.enterPassword(password);
await umbracoUi.member.enterConfirmPassword(password);
await umbracoUi.member.clickDetailsTab();
await umbracoUi.member.enterComments(comment);
await umbracoUi.member.clickSaveButton();
// Assert
await umbracoUi.member.doesSuccessNotificationHaveText(NotificationConstantHelper.success.created);
await umbracoUi.member.doesErrorNotificationHaveText(NotificationConstantHelper.error.noAccessToResource, false);
expect(await umbracoApi.member.doesNameExist(memberName)).toBeTruthy();
});
test('can update member with members section set', async ({umbracoApi, umbracoUi}) => {
// Arrange
userGroupId = await umbracoApi.userGroup.createUserGroupWithMemberSection(userGroupName);
memberTypeId = await umbracoApi.memberType.createDefaultMemberType(memberTypeName);
memberId = await umbracoApi.member.createDefaultMember(memberName, memberTypeId, email, username, password);
const updatedUsername = 'updatedusername';
await umbracoApi.user.setUserPermissions(testUser.name, testUser.email, testUser.password, userGroupId, [], true, [], false, 'en-us');
testUserCookieAndToken = await umbracoApi.user.loginToUser(testUser.name, testUser.email, testUser.password);
await umbracoUi.goToBackOffice();
await umbracoUi.member.goToSection(ConstantHelper.sections.members, false);
// Act
await umbracoUi.member.clickMemberLinkByName(memberName);
await umbracoUi.member.enterUsername(updatedUsername);
await umbracoUi.member.clickSaveButton();
// Assert
await umbracoUi.member.doesSuccessNotificationHaveText(NotificationConstantHelper.success.saved);
await umbracoUi.member.doesErrorNotificationHaveText(NotificationConstantHelper.error.noAccessToResource, false);
const memberData = await umbracoApi.member.get(memberId);
expect(memberData.username).toBe(updatedUsername);
});