admin membership e2e

stable
Juanfran 2015-09-15 12:37:31 +02:00
parent 72965ff818
commit 6c8b5a2e2f
5 changed files with 202 additions and 2 deletions

View File

@ -8,7 +8,8 @@ exports.config = {
seleniumAddress: 'http://localhost:4444/wd/hub',
framework: 'mocha',
mochaOpts: {
timeout: 30000
timeout: 30000,
compilers: 'js:babel/register'
},
// capabilities: {
// 'browserName': 'firefox'

View File

@ -0,0 +1,132 @@
var utils = require('../../../utils');
var adminMembershipsHelper = require('../../../helpers').adminMemberships;
var chai = require('chai');
var chaiAsPromised = require('chai-as-promised');
chai.use(chaiAsPromised);
var expect = chai.expect;
describe('admin - members', function() {
before(async function(){
browser.get('http://localhost:9001/project/project-0/admin/memberships');
await utils.common.waitLoader();
utils.common.takeScreenshot('memberships', 'memberships');
});
describe('new member', async function() {
let initMembersCount = 0;
let newMemberLightbox = null;
before(async function() {
initMembersCount = await adminMembershipsHelper.getMembers().count();
newMemberLightbox = adminMembershipsHelper.getNewMemberLightbox();
adminMembershipsHelper.openNewMemberLightbox();
await newMemberLightbox.waitOpen();
utils.common.takeScreenshot('memberships', 'new-member');
});
it('add members row', async function() {
newMemberLightbox.newEmail('xxx' + new Date().getTime() + '@xx.es');
newMemberLightbox.newEmail('xxx' + new Date().getTime() + '@xx.es');
newMemberLightbox.newEmail('xxx' + new Date().getTime() + '@xx.es');
let membersRows = await newMemberLightbox.getRows().count();
expect(membersRows).to.be.equal(3 + 1);
});
it('delete members row', async function() {
newMemberLightbox.deleteRow(2);
let membersRows = await newMemberLightbox.getRows().count();
expect(membersRows).to.be.equal(2 + 1);
});
it('submit', async function() {
newMemberLightbox.submit();
await newMemberLightbox.waitClose();
let members = adminMembershipsHelper.getMembers();
let membersCount = await members.count();
expect(membersCount).to.be.equal(initMembersCount + 2);
});
it('the last two should be pending', async function() {
let members = adminMembershipsHelper.getMembers();
let membersCount = await members.count();
let lastMember1 = members.get(membersCount - 1);
let lastMember2 = members.get(membersCount - 2);
let active1 = await adminMembershipsHelper.isActive(lastMember1);
let active2 = await adminMembershipsHelper.isActive(lastMember2);
expect(active1).to.be.false;
expect(active2).to.be.false;
});
});
it('delete member', async function() {
let initMembersCount = await adminMembershipsHelper.getMembers().count();
let member = adminMembershipsHelper.getMembers().last();
adminMembershipsHelper.delete(member);
utils.common.takeScreenshot('memberships', 'delete-member-lb');
await utils.lightbox.confirm.ok();
let membersCount = await adminMembershipsHelper.getMembers().count();
expect(membersCount).to.be.equal(initMembersCount - 1);
});
it('change role', async function() {
let member = adminMembershipsHelper.getMembers().last();
adminMembershipsHelper.setRole(member, 3);
expect(utils.notifications.success.open()).to.be.eventually.true;
});
it('resend invitation', async function() {
let member = adminMembershipsHelper.getMembers().last();
adminMembershipsHelper.sendInvitation();
expect(utils.notifications.success.open()).to.be.eventually.true;
});
it('toggle admin', async function() {
let member = adminMembershipsHelper.getMembers().last();
let isAdmin = await adminMembershipsHelper.isAdmin(member);
if (isAdmin) {
adminMembershipsHelper.toggleAdmin(member);
await browser.waitForAngular();
isAdmin = await adminMembershipsHelper.isAdmin(member);
expect(isAdmin).not.to.be.true;
}
adminMembershipsHelper.toggleAdmin(member);
await browser.waitForAngular();
isAdmin = await adminMembershipsHelper.isAdmin(member);
expect(isAdmin).to.be.true;
});
});

View File

@ -8,7 +8,7 @@ var chaiAsPromised = require('chai-as-promised');
chai.use(chaiAsPromised);
var expect = chai.expect;
describe.only('attributes - types', function() {
describe('attributes - types', function() {
before(async function(){
browser.get('http://localhost:9001/project/project-0/admin/project-values/types');

View File

@ -0,0 +1,66 @@
var utils = require('../utils');
var helper = module.exports;
helper.openNewMemberLightbox = function() {
$('.header-with-actions .button-green').click();
};
helper.getNewMemberLightbox = function() {
let el = $('div[tg-lb-create-members]');
let obj = {
el: el,
waitOpen: function() {
return utils.lightbox.open(el);
},
waitClose: function() {
return utils.lightbox.close(el);
},
newEmail: function(email) {
el.$$('input').last().sendKeys(email);
el.$('.add-fieldset').click();
},
getRows: function() {
return el.$$('.add-member-wrapper');
},
deleteRow: function(index) {
el.$$('.delete-fieldset').get(index).click();
},
submit: function() {
el.$('.submit-button').click();
}
};
return obj;
};
helper.getMembers = function() {
return $$('.admin-membership-table .row');
};
helper.isActive = function(elm) {
return utils.common.hasClass(elm, 'active');
};
helper.delete = function(elm) {
elm.$('.delete').click();
};
helper.isAdmin = async function(elm) {
let isAdmin = await elm.$('.row-admin input').getAttribute('checked');
return (isAdmin === 'true');
};
helper.toggleAdmin = function(elm) {
return elm.$('.row-admin input').click();
};
helper.setRole = function(elm, index) {
return elm.$(`select option:nth-child(${index})`).click();
};
helper.sendInvitation = function(elm) {
$$('.pending').first().click();
};

View File

@ -8,3 +8,4 @@ module.exports.usDetail = require("./us-detail-helper");
module.exports.taskDetail = require("./task-detail-helper");
module.exports.adminAttributes = require("./admin-attributes-helper");
module.exports.common = require("./common-helper");
module.exports.adminMemberships = require("./admin-memberships");