'use strict'; var fs = require('fs'); describe('front page', function () { beforeEach(function () { browser.ignoreSynchronization = true; browser.get('/'); browser.sleep(1000); }); // based on https://github.com/angular/protractor/issues/114#issuecomment-29046939 afterEach(function () { var currentSpec = jasmine.getEnv().currentSpec; var passed = currentSpec.results().passed(); if (!passed) { var filename = 'exception_' + currentSpec.description + '.png'; browser.takeScreenshot().then(function (png) { var buffer = new Buffer(png, 'base64'); var stream = fs.createWriteStream(filename); stream.write(buffer); stream.end(); }); } }); it('shows the front page', function () { var button = element(by.id('play-btn')); expect(button.getText()).toEqual('Join for free'); }); it('does not login when using wrong credentials', function () { var button = element(by.id('play-btn')); button.click(); browser.sleep(1000); element(by.model('loginUsername')).sendKeys('username'); element(by.model('loginPassword')).sendKeys('pass'); var login = element(by.css('#loginForm input[value="Login"]')); login.click(); var alertDialog = browser.switchTo().alert(); expect(alertDialog.getText()).toMatch('Uh-oh - your username or password is incorrect.\n- Make sure your username or email is typed correctly.\n- You may have signed up with Facebook, not email. Double-check by trying Facebook login.\n- If you forgot your password, click "Forgot Password" on the habitica.com website\'s login form.'); alertDialog.accept(); }); xit('registers a new user', function () { var button = element(by.id('play-btn')); button.click(); browser.sleep(1000); var registerTab = element(by.linkText('Register')); registerTab.click(); element(by.model('registerVals.username')).sendKeys('user'); element(by.model('registerVals.email')).sendKeys('user@example.com'); element(by.model('registerVals.password')).sendKeys('pass'); element(by.model('registerVals.confirmPassword')).sendKeys('pass'); var register = element(by.css('#registrationForm input[value="Register"]')); register.click(); browser.sleep(1000); browser.getCurrentUrl().then(function (url) { expect(url).not.toMatch(/static\/front/); }); }); });