diff --git a/README.md b/README.md index cea1c58..ab65426 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,4 @@ +[![CircleCI](https://circleci.com/gh/topcoder-platform/admin-app.svg?style=svg)](https://circleci.com/gh/topcoder-platform/admin-app) # support-admin-app Support application @@ -53,6 +54,15 @@ npm run build ## Execute E2E Tests +Before executing the end-to-end (e2e) protractor tests, these environment variables should be set: + +| Name | Description | Default Value | +| --- | --- | --- | +| BUILD_ENV | Deployment configuration to be tested by e2e tests. | See [Configuration](#configuration) for possible values. Defaults to `dev`. | +| TEST_USER | Account username to use for e2e tests. | No default. Must be set. | +| TEST_PASSWORD | Account password to use for e2e tests. | No default. Must be set. | +| TEST_PORT | Port from which to serve the app for e2e tests. | Defaults to `3000`. | + ```npm test``` ## Fallback instruction in case the npm scripts fail diff --git a/circle.yml b/circle.yml index 93fc2e9..131afaf 100644 --- a/circle.yml +++ b/circle.yml @@ -5,7 +5,6 @@ machine: # Add some environment variables environment: - CIRCLE_ENV: dev ## Customize dependencies dependencies: diff --git a/e2e/dashboard.spec.js b/e2e/dashboard.spec.js index 112452a..b6af000 100644 --- a/e2e/dashboard.spec.js +++ b/e2e/dashboard.spec.js @@ -3,17 +3,25 @@ describe('The dashboard view', function () { var page; var mainPage; + var testUser = process.env.TEST_USER; + var testPassword = process.env.TEST_PASSWORD; + var testPort = process.env.TEST_PORT || 3000; beforeEach(function () { - browser.get('http://localhost:3000/'); + browser.get('http://localhost:' + testPort + '/'); page = require('./login.po'); mainPage = require('./main.po'); - page.usernameInput.sendKeys('amy_admin'); - page.passwordInput.sendKeys('topcoder1'); - page.loginButton.click(); + }); + + it('should have environment variables defined', function(){ + expect(testUser).toBeDefined(); + expect(testPassword).toBeDefined(); }); it('should find members', function() { + page.usernameInput.sendKeys(testUser); + page.passwordInput.sendKeys(testPassword); + page.loginButton.click(); mainPage.searchHandleInput.sendKeys('sah2ed'); mainPage.searchButton.click(); expect(mainPage.users.count()).toBe(1); diff --git a/e2e/login.spec.js b/e2e/login.spec.js index 2e46633..ec57407 100644 --- a/e2e/login.spec.js +++ b/e2e/login.spec.js @@ -3,13 +3,21 @@ describe('The login view', function () { var page; var mainPage; + var testUser = process.env.TEST_USER; + var testPassword = process.env.TEST_PASSWORD; + var testPort = process.env.TEST_PORT || 3000; beforeEach(function () { - browser.get('http://localhost:3000/'); + browser.get('http://localhost:' + testPort + '/'); page = require('./login.po'); mainPage = require('./main.po'); }); + it('should have environment variables defined', function(){ + expect(testUser).toBeDefined(); + expect(testPassword).toBeDefined(); + }); + it('should display the correct form heading', function() { expect(page.loginHeader.getText()).toBe('ADMIN APP LOGIN'); //expect(page.imgEl.getAttribute('src')).toMatch(/assets\/images\/yeoman.png$/); @@ -27,20 +35,20 @@ describe('The login view', function () { it('login should succeed for correct credentials', function () { //expect(page.thumbnailEls.count()).toBeGreaterThan(5); - page.usernameInput.sendKeys('amy_admin'); - page.passwordInput.sendKeys('topcoder1'); + page.usernameInput.sendKeys(testUser); + page.passwordInput.sendKeys(testPassword); page.loginButton.click(); expect(mainPage.isUserLoggedIn.isDisplayed()).toBeTruthy(); - expect(mainPage.loggedInUser.getText()).toBe('amy_admin'); + expect(mainPage.loggedInUser.getText()).toBe(testUser); }); it('logout should work after login', function () { //expect(page.thumbnailEls.count()).toBeGreaterThan(5); - page.usernameInput.sendKeys('amy_admin'); - page.passwordInput.sendKeys('topcoder1'); + page.usernameInput.sendKeys(testUser); + page.passwordInput.sendKeys(testPassword); page.loginButton.click(); expect(mainPage.isUserLoggedIn.isDisplayed()).toBeTruthy(); - expect(mainPage.loggedInUser.getText()).toBe('amy_admin'); + expect(mainPage.loggedInUser.getText()).toBe(testUser); mainPage.logout.click(); expect(page.loginHeader.getText()).toBe('ADMIN APP LOGIN'); });