V14 QA members section user tests (#17448)
* Added tests for the members * Cleaned up tests * Bumped version * Removed skip
This commit is contained in:
20
tests/Umbraco.Tests.AcceptanceTest/package-lock.json
generated
20
tests/Umbraco.Tests.AcceptanceTest/package-lock.json
generated
@@ -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"
|
||||
}
|
||||
},
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
Reference in New Issue
Block a user