TwoToc code
[YouAndWeb_TwoToc] / e2e / account / signup / signup.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('Signup View', function() {
7   var page;
8
9   var loadPage = function() {
10     browser.manage().deleteAllCookies();
11     browser.get(config.baseUrl + '/signup');
12     page = require('./signup.po');
13   };
14
15   var testUser = {
16     name: 'Test',
17     email: 'test@example.com',
18     password: 'test'
19   };
20
21   beforeEach(function() {
22     loadPage();
23   });
24
25   it('should include signup form with correct inputs and submit button', function() {
26     expect(page.form.name.getAttribute('type')).toBe('text');
27     expect(page.form.name.getAttribute('name')).toBe('name');
28     expect(page.form.email.getAttribute('type')).toBe('email');
29     expect(page.form.email.getAttribute('name')).toBe('email');
30     expect(page.form.password.getAttribute('type')).toBe('password');
31     expect(page.form.password.getAttribute('name')).toBe('password');
32     expect(page.form.submit.getAttribute('type')).toBe('submit');
33     expect(page.form.submit.getText()).toBe('Sign up');
34   });
35
36   describe('with local auth', function() {
37
38     beforeAll(function(done) {
39       UserModel.removeAsync().then(done);
40     });
41
42     it('should signup a new user, log them in, and redirecting to "/"', function() {
43       page.signup(testUser);
44
45       var navbar = require('../../components/navbar/navbar.po');
46
47       expect(browser.getCurrentUrl()).toBe(config.baseUrl + '/');
48       expect(navbar.navbarAccountGreeting.getText()).toBe('Hello ' + testUser.name);
49     });
50
51     it('should indicate signup failures', function() {
52       page.signup(testUser);
53
54       expect(browser.getCurrentUrl()).toBe(config.baseUrl + '/signup');
55       expect(page.form.email.getAttribute('class')).toContain('ng-invalid-mongoose');
56
57       var helpBlock = page.form.element(by.css('.form-group.has-error .help-block.ng-binding'));
58       expect(helpBlock.getText()).toBe('The specified email address is already in use.');
59     });
60
61   });
62 });