TwoToc code
[YouAndWeb_TwoToc] / e2e / account / login / login.spec.js
1 'use strict';
2
3 var config = browser.params;
4 var UserModel = require(config.serverConfig.root + '/server/api/user/user.model');
5
6 describe('Login View', function() {
7   var page;
8
9   var loadPage = function() {
10     browser.get(config.baseUrl + '/login');
11     page = require('./login.po');
12   };
13
14   var testUser = {
15     name: 'Test User',
16     email: 'test@example.com',
17     password: 'test'
18   };
19
20   beforeEach(function(done) {
21     UserModel.removeAsync()
22       .then(function() {
23         return UserModel.createAsync(testUser);
24       })
25       .then(loadPage)
26       .finally(done);
27   });
28
29   it('should include login form with correct inputs and submit button', function() {
30     expect(page.form.email.getAttribute('type')).toBe('email');
31     expect(page.form.email.getAttribute('name')).toBe('email');
32     expect(page.form.password.getAttribute('type')).toBe('password');
33     expect(page.form.password.getAttribute('name')).toBe('password');
34     expect(page.form.submit.getAttribute('type')).toBe('submit');
35     expect(page.form.submit.getText()).toBe('Login');
36   });
37
38   describe('with local auth', function() {
39
40     it('should login a user and redirecting to "/"', function() {
41       page.login(testUser);
42
43       var navbar = require('../../components/navbar/navbar.po');
44
45       expect(browser.getCurrentUrl()).toBe(config.baseUrl + '/');
46       expect(navbar.navbarAccountGreeting.getText()).toBe('Hello ' + testUser.name);
47     });
48
49     it('should indicate login failures', function() {
50       page.login({
51         email: testUser.email,
52         password: 'badPassword'
53       });
54
55       expect(browser.getCurrentUrl()).toBe(config.baseUrl + '/login');
56
57       var helpBlock = page.form.element(by.css('.form-group.has-error .help-block.ng-binding'));
58       expect(helpBlock.getText()).toBe('This password is not correct.');
59     });
60
61   });
62 });