diff --git a/e2e/full/team.e2e.js b/e2e/full/team.e2e.js new file mode 100644 index 00000000..85b50f23 --- /dev/null +++ b/e2e/full/team.e2e.js @@ -0,0 +1,57 @@ +var utils = require('../utils'); +var teamHelper = require('../helpers').team; + +var chai = require('chai'); +var chaiAsPromised = require('chai-as-promised'); + +chai.use(chaiAsPromised); +var expect = chai.expect; + +describe('leaving project', function(){ + before(async function(){ + browser.get('http://localhost:9001/project/project-4/team'); + await utils.common.waitLoader(); + }); + + it('leave project', async function(){ + teamHelper.team().leave(); + await utils.lightbox.confirm.ok(); + await utils.common.takeScreenshot("team", "after-leaving"); + }); +}) + +describe('team', function() { + before(async function(){ + browser.get('http://localhost:9001/project/project-5/team'); + await utils.common.waitLoader(); + }); + + it('screenshot', async function() { + await utils.common.takeScreenshot("team", "team"); + }); + + it('team filled', async function() { + let total = await teamHelper.team().count(); + expect(total).to.be.equal(10); + }); + + it('search username', async function() { + let firstMemberName = await teamHelper.team().firstMember().getText(); + teamHelper.filters().searchText(firstMemberName); + let total = await teamHelper.team().count(); + expect(total).to.be.equal(1); + await utils.common.takeScreenshot("team", "searching-by-name"); + }); + + it('filter role', async function(){ + teamHelper.filters().clearText(); + let total = await teamHelper.team().count(); + let firstRole = await teamHelper.team().firstRole(); + let roleName = await firstRole.getText(); + teamHelper.filters().filterByRole(roleName); + let newTotal = await teamHelper.team().count(); + expect(newTotal).to.be.below(total); + expect(newTotal).to.be.least(1); + await utils.common.takeScreenshot("team", "filtering-by-role"); + }); +}) diff --git a/e2e/helpers/team-helper.js b/e2e/helpers/team-helper.js new file mode 100644 index 00000000..3517cf7e --- /dev/null +++ b/e2e/helpers/team-helper.js @@ -0,0 +1,55 @@ +var utils = require('../utils'); + +var helper = module.exports; + +helper.team = function() { + let el = $('.team'); + + let obj = { + el: el, + firstRole: function() { + return el.$$('section[tg-team-members] .avatar span').first(); + }, + + firstMember: function() { + return el.$$('section[tg-team-members] a.name').first(); + }, + + count: function() { + return el.$$('section[tg-team-members] .row.member').count(); + }, + + leave: function() { + el.$(".hero .username a").click(); + } + }; + + return obj; +}; + +helper.filters = function() { + let el = $('.team-filters-inner'); + + let obj = { + el: el, + filterByRole: function(roleName) { + let roles = el.$$("ul li a"); + roles.filter(function(role) { + return role.getText().then(function(text) { + return text.toLowerCase() === roleName.toLowerCase(); + }); + }).click(); + + }, + + clearText: function(text) { + el.$('input[ng-model="filtersQ"]').clear(); + }, + + searchText: function(text) { + el.$('input[ng-model="filtersQ"]').sendKeys(text); + } + }; + + return obj; +};