From 0217fe0a440046779ea2ae392876cb8132fa1607 Mon Sep 17 00:00:00 2001
From: Mark <mark@openappstack.net>
Date: Thu, 14 Nov 2019 11:42:20 +0100
Subject: [PATCH] Add assign admin role test case

---
 frontend/test/e2e/admin.test.js | 27 +++++++++++++++++++++++++++
 frontend/test/pages/users.js    |  8 ++++++++
 2 files changed, 35 insertions(+)

diff --git a/frontend/test/e2e/admin.test.js b/frontend/test/e2e/admin.test.js
index d2c9f5c..ca004db 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 1366106..14be5ca 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'
-- 
GitLab