changeset 166:8f49ba6cddd9

test: login now as e2e test Basic functionality for login is tested with nightwatch
author Thomas Junk <thomas.junk@intevation.de>
date Fri, 06 Jul 2018 12:00:08 +0200
parents 4bf2173748f3
children a6d7ee20fc96
files client/src/views/Login.vue client/tests/e2e/specs/login.js client/tests/e2e/specs/test.js
diffstat 3 files changed, 72 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/client/src/views/Login.vue	Fri Jul 06 11:04:52 2018 +0200
+++ b/client/src/views/Login.vue	Fri Jul 06 12:00:08 2018 +0200
@@ -8,7 +8,7 @@
     </div>
     <div class="login-wrapper d-flex flex-row justify-content-center">
       <form class="loginform form-signin" @submit.prevent="login">
-           <div v-if="loginFailed" class="loginerrormessage alert alert-danger" role="alert">
+           <div id="alert" v-if="loginFailed" class="loginerrormessage alert alert-danger" role="alert">
              <span class="loginerror"><translate>Login failed</translate></span>
            </div>
         <div class="input-group mb-3 emailgroup">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/tests/e2e/specs/login.js	Fri Jul 06 12:00:08 2018 +0200
@@ -0,0 +1,71 @@
+// For authoring Nightwatch tests, see
+// http://nightwatchjs.org/guide#usage
+
+module.exports = {
+  "Page Load": browser => {
+    browser
+      .url(process.env.VUE_DEV_SERVER_URL)
+      .waitForElementVisible("#app", 5000)
+      .assert.elementPresent(".login")
+      .end();
+  },
+  "Login failed": browser => {
+    browser
+      .url(process.env.VUE_DEV_SERVER_URL)
+      .waitForElementVisible("#app", 5000)
+      .setValue("input[id='inputEmail']", "bla")
+      .setValue("input[id='inputPassword']", "bla")
+      .click("button[type='submit']")
+      .waitForElementVisible("#alert", 2000)
+      .assert.elementPresent(".loginerror")
+      .end();
+  },
+  "Login oana success": browser => {
+    browser
+      .url(process.env.VUE_DEV_SERVER_URL)
+      .waitForElementVisible("#app", 5000)
+      .setValue("input[id='inputEmail']", "oana")
+      .setValue("input[id='inputPassword']", "oa2Na2")
+      .click("button[type='submit']")
+      .pause(1000)
+      .assert.elementPresent(".username")
+      .assert.containsText(".username", "oana")
+      .end();
+  },
+  "Login oana switch url": browser => {
+    browser
+      .url(process.env.VUE_DEV_SERVER_URL)
+      .waitForElementVisible("#app", 5000)
+      .setValue("input[id='inputEmail']", "oana")
+      .setValue("input[id='inputPassword']", "oa2Na2")
+      .click("button[type='submit']")
+      .pause(1000)
+      .assert.elementPresent(".username")
+      .assert.containsText(".username", "oana")
+      .url(process.env.VUE_DEV_SERVER_URL + "#/login")
+      .pause(1000)
+      .url(process.env.VUE_DEV_SERVER_URL + "#/")
+      .assert.elementPresent(".username")
+      .assert.containsText(".username", "oana")
+      .end();
+  },
+  "Login switch user from oana to vanja": browser => {
+    browser
+      .url(process.env.VUE_DEV_SERVER_URL)
+      .waitForElementVisible("#app", 5000)
+      .setValue("input[id='inputEmail']", "oana")
+      .setValue("input[id='inputPassword']", "oa2Na2")
+      .click("button[type='submit']")
+      .pause(1000)
+      .assert.elementPresent(".username")
+      .assert.containsText(".username", "oana")
+      .url(process.env.VUE_DEV_SERVER_URL + "#/login")
+      .setValue("input[id='inputEmail']", "vanja")
+      .setValue("input[id='inputPassword']", "va2Nja3")
+      .click("button[type='submit']")
+      .pause(1000)
+      .assert.elementPresent(".username")
+      .assert.containsText(".username", "vanja")
+      .end();
+  }
+};
--- a/client/tests/e2e/specs/test.js	Fri Jul 06 11:04:52 2018 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-// For authoring Nightwatch tests, see
-// http://nightwatchjs.org/guide#usage
-
-module.exports = {
-  "default e2e tests": browser => {
-    browser
-      .url(process.env.VUE_DEV_SERVER_URL)
-      .waitForElementVisible("#app", 5000)
-      .assert.elementPresent(".login")
-      .end();
-  }
-};