TwoToc code
[YouAndWeb_TwoToc] / e2e / account / login / login.spec.js
diff --git a/e2e/account/login/login.spec.js b/e2e/account/login/login.spec.js
new file mode 100755 (executable)
index 0000000..42e8f29
--- /dev/null
@@ -0,0 +1,62 @@
+'use strict';
+
+var config = browser.params;
+var UserModel = require(config.serverConfig.root + '/server/api/user/user.model');
+
+describe('Login View', function() {
+  var page;
+
+  var loadPage = function() {
+    browser.get(config.baseUrl + '/login');
+    page = require('./login.po');
+  };
+
+  var testUser = {
+    name: 'Test User',
+    email: 'test@example.com',
+    password: 'test'
+  };
+
+  beforeEach(function(done) {
+    UserModel.removeAsync()
+      .then(function() {
+        return UserModel.createAsync(testUser);
+      })
+      .then(loadPage)
+      .finally(done);
+  });
+
+  it('should include login form with correct inputs and submit button', function() {
+    expect(page.form.email.getAttribute('type')).toBe('email');
+    expect(page.form.email.getAttribute('name')).toBe('email');
+    expect(page.form.password.getAttribute('type')).toBe('password');
+    expect(page.form.password.getAttribute('name')).toBe('password');
+    expect(page.form.submit.getAttribute('type')).toBe('submit');
+    expect(page.form.submit.getText()).toBe('Login');
+  });
+
+  describe('with local auth', function() {
+
+    it('should login a user and redirecting to "/"', function() {
+      page.login(testUser);
+
+      var navbar = require('../../components/navbar/navbar.po');
+
+      expect(browser.getCurrentUrl()).toBe(config.baseUrl + '/');
+      expect(navbar.navbarAccountGreeting.getText()).toBe('Hello ' + testUser.name);
+    });
+
+    it('should indicate login failures', function() {
+      page.login({
+        email: testUser.email,
+        password: 'badPassword'
+      });
+
+      expect(browser.getCurrentUrl()).toBe(config.baseUrl + '/login');
+
+      var helpBlock = page.form.element(by.css('.form-group.has-error .help-block.ng-binding'));
+      expect(helpBlock.getText()).toBe('This password is not correct.');
+    });
+
+  });
+});