diff --git a/tests/end-to-end/ui/12-settings.js b/tests/end-to-end/ui/12-settings.js index 3be5bed38316aedfb23f30291b4b8b9c1c00ec13..3b6e66ab5c69a9f940bc6a9df5c124b4016f4d35 100644 --- a/tests/end-to-end/ui/12-settings.js +++ b/tests/end-to-end/ui/12-settings.js @@ -2,6 +2,7 @@ /* globals expect */ /* eslint no-unused-vars: 0 */ +import loginPage from '../../pageobjects/login.page'; import supertest from 'supertest'; const request = supertest('http://localhost:3000'); const prefix = '/api/v1/'; @@ -9,9 +10,10 @@ const prefix = '/api/v1/'; import flexTab from '../../pageobjects/flex-tab.page'; import mainContent from '../../pageobjects/main-content.page'; import sideNav from '../../pageobjects/side-nav.page'; +import admin from '../../pageobjects/administration.page'; //test data imports -import {checkIfUserIsValid} from '../../data/checks'; +import {checkIfUserIsValid, checkIfUserIsAdmin} from '../../data/checks'; import {targetUser, imgURL} from '../../data/interactions.js'; import {adminUsername, adminEmail, adminPassword, username, email, password} from '../../data/user.js'; @@ -42,7 +44,7 @@ var settingValue = { value : undefined }; -describe('Changing settings via api', () => { +describe.only('Changing settings via api', () => { before((done) => { checkIfUserIsValid(username, email, password); sideNav.spotlightSearch.waitForVisible(10000); @@ -420,5 +422,71 @@ describe('Changing settings via api', () => { }); }); }); + + describe('Manually Approve New Users', () => { + before(() => { + sideNav.accountBoxUserName.waitForVisible(5000); + sideNav.accountBoxUserName.click(); + sideNav.logout.waitForVisible(5000); + sideNav.logout.click(); + + loginPage.open(); + }); + + it('should change the Manually Approve New Users via api', (done) => { + request.post(api('settings/Accounts_ManuallyApproveNewUsers')) + .set(credentials) + .send({'value' : true}) + .expect('Content-Type', 'application/json') + .expect(200) + .expect((res) => { + expect(res.body).to.have.property('success', true); + }) + .end(done); + }); + + it('register the user', () => { + loginPage.registerButton.waitForVisible(5000); + loginPage.registerButton.click(); + loginPage.nameField.waitForVisible(5000); + loginPage.nameField.setValue('setting'+username); + loginPage.emailField.setValue('setting'+email); + loginPage.passwordField.setValue(password); + loginPage.confirmPasswordField.setValue(password); + + loginPage.submit(); + + loginPage.registrationSucceededCard.waitForVisible(5000); + loginPage.registrationSucceededCard.getText().should.equal('Registration Succeeded'); + loginPage.backToLoginButton.click(); + }); + + it('login as admin and go to users', () => { + checkIfUserIsAdmin(adminUsername, adminEmail, adminPassword); + sideNav.accountBoxUserName.click(); + sideNav.admin.waitForVisible(5000); + sideNav.admin.click(); + admin.usersLink.waitForVisible(5000); + admin.usersLink.click(); + admin.usersFilter.waitForVisible(5000); + }); + + it('search the user', () => { + admin.usersFilter.click(); + admin.usersFilter.setValue('setting'+username); + }); + + it('should change the Manually Approve New Users via api', (done) => { + request.post(api('settings/Accounts_ManuallyApproveNewUsers')) + .set(credentials) + .send({'value' : false}) + .expect('Content-Type', 'application/json') + .expect(200) + .expect((res) => { + expect(res.body).to.have.property('success', true); + }) + .end(done); + }); + }); }); diff --git a/tests/pageobjects/login.page.js b/tests/pageobjects/login.page.js index 3bee5a1f6995639db3044a402161b264c7cb623e..b500a9609de7329bc84f4275ad988f72f944d55f 100644 --- a/tests/pageobjects/login.page.js +++ b/tests/pageobjects/login.page.js @@ -18,6 +18,7 @@ class LoginPage extends Page { get emailInvalidText() { return browser.element('[name=email]~.input-error'); } get passwordInvalidText() { return browser.element('[name=pass]~.input-error'); } get confirmPasswordInvalidText() { return browser.element('[name=confirm-pass]~.input-error'); } + get registrationSucceededCard() { return browser.element('#login-card h2'); } open() { super.open('');