Base For Admin Tests

pull/5290/head
Martin Schoeler 10 years ago
parent fb5c06c78f
commit e1ed22af6e
  1. 12
      tests/pageobjects/administration.page.js
  2. 2
      tests/pageobjects/side-nav.page.js
  3. 2
      tests/steps/04-main-elements-render.js
  4. 30
      tests/steps/11-admin.js
  5. 32
      tests/test-data/checks.js

@ -0,0 +1,12 @@
import Page from './Page';
class Administration extends Page {
get flexNav() { return browser.element('.flex-nav'); }
get flexNavContent() { return browser.element('.flex-nav .content'); }
get layoutLink() { return browser.element('.flex-nav .content [href="/admin/Layout"]'); }
get customScriptBtn() { return browser.element('.section:nth-of-type(6) .expand'); }
get customScriptLoggedOutTextArea() { return browser.element('.section:nth-of-type(6) .CodeMirror-scroll'); }
get customScriptLoggedInTextArea() { return browser.element('.CodeMirror.cm-s-default:nth-of-type(2)'); }
}
module.exports = new Administration();

@ -31,9 +31,9 @@ class SideNav extends Page {
get statusBusy() { return browser.element('.busy'); }
get statusOffline() { return browser.element('.offline'); }
get account() { return browser.element('#account'); }
get admin() { return browser.element('#admin'); }
get logout() { return browser.element('#logout'); }
get sideNavBar() { return browser.element('.side-nav '); }
get sideNavBtn() { return browser.element('.fixed-title .burger'); }
get preferences() { return browser.element('.account-link:nth-of-type(1)'); }
get profile() { return browser.element('.account-link:nth-of-type(2)'); }

@ -8,7 +8,7 @@ import sideNav from '../pageobjects/side-nav.page';
//test data imports
import {checkIfUserIsValid} from '../test-data/checks';
import {username, email, password} from '../test-data/user.js';
//Basic usage test start
describe('Main Elements Render', function() {
before(()=>{
checkIfUserIsValid(username, email, password);

@ -0,0 +1,30 @@
/* eslint-env mocha */
/* eslint-disable func-names, prefer-arrow-callback */
import sideNav from '../pageobjects/side-nav.page';
import admin from '../pageobjects/administration.page';
//test data imports
import {checkIfUserIsAdmin} from '../test-data/checks';
import {adminUsername, adminEmail, adminPassword} from '../test-data/user.js';
describe.only('Admin Login', () => {
before(() => {
checkIfUserIsAdmin(adminUsername, adminEmail, adminPassword);
sideNav.getChannelFromList('general').waitForExist(5000);
sideNav.openChannel('general');
});
describe('Enter the admin view', () => {
before(() => {
sideNav.accountBoxUserName.click();
sideNav.admin.waitForVisible(5000);
});
it('Enter the admin view', () => {
sideNav.admin.click();
admin.flexNavContent.waitForVisible(5000);
});
});
});

@ -49,3 +49,35 @@ export function checkIfUserIsValid(username, email, password) {
console.log(' User already logged');
}
}
export function checkIfUserIsAdmin(username, email, password) {
if (!sideNav.accountBoxUserName.isVisible()) {
//if the user is not logged in.
console.log(' User not logged. logging in...');
loginPage.open();
loginPage.login({email, password});
try {
mainContent.mainContent.waitForExist(5000);
} catch (e) {
//if the user dont exist.
console.log(' Admin User dont exist. Creating user...');
loginPage.gotToRegister();
loginPage.registerNewUser({username, email, password});
browser.waitForExist('form#login-card input#username', 5000);
browser.click('.submit > button');
mainContent.mainContent.waitForExist(5000);
}
} else if (!sideNav.accountBoxUserName.getText() === username) {
//if the logged user is not the right one
console.log(' Wrong logged user. Changing user...');
sideNav.accountBoxUserName.waitForVisible(5000);
sideNav.accountBoxUserName.click();
sideNav.logout.waitForVisible(5000);
sideNav.logout.click();
loginPage.open();
loginPage.login({email, password});
} else {
console.log(' User already logged');
}
}

Loading…
Cancel
Save