diff --git a/frontend/test/e2e/admin.test.js b/frontend/test/e2e/admin.test.js index d2c9f5cd02fad382b8e372334681f14850e698fd..ca004db621ebbca2414b620da4b7bbe5adb0d4fc 100644 --- a/frontend/test/e2e/admin.test.js +++ b/frontend/test/e2e/admin.test.js @@ -118,5 +118,32 @@ module.exports = { .waitForElementNotPresent({selector: "@rows", index: 2}) roles .verify.containsText('@userCount', '2') + }, + 'Assign admin role' : async function(browser){ + const users = browser.page.users(); + const roles = users.section.leftSidebar; + const editUsers = users.section.editUsers; + const newUsername = "newTestUser" + const newPassword = "newTestUser" + const newEmail = "test42@example.net" + users.createUser(newUsername, newPassword, newEmail) + const newTestUser = editUsers.section.newTestUser; + roles + .verify.containsText('@userCount', '3') + .verify.containsText('@adminCount', '1') + newTestUser + .click("@addRole") + .waitForElementVisible("@addRoleInput") + .setValue("@addRoleInput", "admin") + .submitForm("@addRoleInput") + .waitForElementVisible("@save") + .click("@save") + roles + .verify.containsText('@userCount', '3') + .verify.containsText('@adminCount', '2') + browser.refresh() + roles + .verify.containsText('@userCount', '3') + .verify.containsText('@adminCount', '2') } }; diff --git a/frontend/test/pages/users.js b/frontend/test/pages/users.js index 1366106fa7a624c99a532d78c9c438dea394cf5f..14be5cac898b7e0a9eb14391834e4bc4a2ec1681 100644 --- a/frontend/test/pages/users.js +++ b/frontend/test/pages/users.js @@ -107,6 +107,14 @@ module.exports = { selector: "//*[contains(text(),'newTestUser')]//following::div//*[contains(text(), 'Save')]", locateStrategy: 'xpath' }, + addRole: { + selector: "//*[contains(text(),'newTestUser')]//following::div//*[contains(text(), 'Add role')]", + locateStrategy: 'xpath' + }, + addRoleInput: { + selector: "//*[contains(text(),'newTestUser')]//following::div//input[@placeholder='Enter role']", + locateStrategy: 'xpath' + }, delete: { selector: "//*[contains(text(),'newTestUser')]//following::div//*[contains(text(), 'Delete')]", locateStrategy: 'xpath'