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(browser.params.glob.host + '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(); //prevent change to the same value adminMembershipsHelper.setRole(member, 1); adminMembershipsHelper.setRole(member, 3); adminMembershipsHelper.setRole(member, 2); expect(utils.notifications.success.open()).to.be.eventually.true; await utils.notifications.success.close(); }); it('resend invitation', async function() { let member = adminMembershipsHelper.getMembers().last(); adminMembershipsHelper.sendInvitation(); expect(utils.notifications.success.open()).to.be.eventually.true; await utils.notifications.success.close(); }); it('toggle admin', async function() { let member = adminMembershipsHelper.getMembers().get(1); let isAdmin = await adminMembershipsHelper.isAdmin(member); if (isAdmin) { adminMembershipsHelper.toggleAdmin(member); await utils.notifications.success.open(); isAdmin = await adminMembershipsHelper.isAdmin(member); expect(isAdmin).not.to.be.true; } else { adminMembershipsHelper.toggleAdmin(member); await utils.notifications.success.open(); isAdmin = await adminMembershipsHelper.isAdmin(member); expect(isAdmin).to.be.true; } await utils.notifications.success.close(); }); });