From 554685f34b064332f6b05391b812e263da7c32c9 Mon Sep 17 00:00:00 2001 From: Juanfran Date: Tue, 15 Sep 2015 14:45:47 +0200 Subject: [PATCH] admin roles e2e --- e2e/full/admin/attributes/role.e2e.js | 76 +++++++++++++++++++++++++++ e2e/helpers/admin-permissions.js | 63 ++++++++++++++++++++++ e2e/helpers/index.js | 1 + 3 files changed, 140 insertions(+) create mode 100644 e2e/full/admin/attributes/role.e2e.js create mode 100644 e2e/helpers/admin-permissions.js diff --git a/e2e/full/admin/attributes/role.e2e.js b/e2e/full/admin/attributes/role.e2e.js new file mode 100644 index 00000000..caad2a80 --- /dev/null +++ b/e2e/full/admin/attributes/role.e2e.js @@ -0,0 +1,76 @@ +var utils = require('../../../utils'); + +var adminPermissionsHelper = require('../../../helpers').adminPermissions; + +var chai = require('chai'); +var chaiAsPromised = require('chai-as-promised'); + +chai.use(chaiAsPromised); +var expect = chai.expect; + +describe('admin - roles', function() { + before(async function(){ + browser.get('http://localhost:9001/project/project-0/admin/roles'); + + await utils.common.waitLoader(); + + utils.common.takeScreenshot('permissions', 'permissions'); + }); + + it('new role', async function() { + let oldRolesCount = await adminPermissionsHelper.getRoles().count(); + + await adminPermissionsHelper.newRole('test'); + + let newRolesCount = await adminPermissionsHelper.getRoles().count(); + + expect(newRolesCount).to.be.equal(oldRolesCount + 1); + }); + + it('edit role name', async function() { + await adminPermissionsHelper.editRole('2'); + + expect(utils.notifications.success.open()).to.be.eventually.true; + }); + + it('toggle, estimation role', async function() { + adminPermissionsHelper.toggleEstimationRole(); + + expect(utils.notifications.success.open()).to.be.eventually.true; + }); + + it('toggle, category permission', async function() { + await adminPermissionsHelper.openCategory(0); + + let permission = await adminPermissionsHelper.getPermissionsCategory(0).get(0); + let oldValue = await adminPermissionsHelper.getCategoryPermissionValue(permission); + + adminPermissionsHelper.toggleCategoryPermission(permission); + + await utils.notifications.success.open(); + + let newValue = await adminPermissionsHelper.getCategoryPermissionValue(permission); + + expect(newValue).not.be.equal(oldValue); + + await utils.notifications.success.close(); + }); + + it('delete', async function() { + let oldRolesCount = await adminPermissionsHelper.getRoles().count(); + + adminPermissionsHelper.delete(); + + let el = $('.lightbox-ask-choice'); + + await utils.lightbox.open(el); + + utils.common.takeScreenshot('attributes', 'delete-type'); + + el.$('.button-green').click(); + + let newRolesCount = await adminPermissionsHelper.getRoles().count(); + + expect(newRolesCount).to.be.equal(oldRolesCount - 1); + }); +}); diff --git a/e2e/helpers/admin-permissions.js b/e2e/helpers/admin-permissions.js new file mode 100644 index 00000000..165abd8d --- /dev/null +++ b/e2e/helpers/admin-permissions.js @@ -0,0 +1,63 @@ +var utils = require('../utils'); + +var helper = module.exports; + +helper.newRole = async function(roleName) { + $('div[tg-new-role] .add-button').click(); + + await $('div[tg-new-role] input').sendKeys(roleName); + + + await browser.actions().sendKeys(protractor.Key.ENTER).perform(); +}; + +helper.getRoles = function() { + return $$('.admin-submenu-roles li'); +}; + +helper.editRole = async function(roleName) { + let elm = $('div[tg-edit-role]'); + let editButton = elm.$('.icon-edit'); + + await browser.actions() + .mouseMove(editButton) + .click() + .perform(); + + await elm.$('.edit-role input').sendKeys(roleName); + await elm.$('.save').click(); +}; + +helper.toggleEstimationRole = function() { + $('.general-category input').click(); +}; + +helper.openCategory = function(index) { + let category = $$('.category-config').get(index); + + category.click(); + + let cateogoryItems = category.$('.category-items'); + + return utils.common.waitTransitionTime(cateogoryItems); +}; + +helper.getPermissionsCategory = function(index) { + let category = $$('.category-config').get(index); + + return category.$$('.category-item'); +}; + +helper.toggleCategoryPermission = function(elm) { + elm.$('input').click(); +}; + +helper.getCategoryPermissionValue = async function(elm) { + let ok = await elm.$('input').getAttribute('checked'); + + return (ok === 'true'); +}; + +helper.delete = function() { + $('.action-buttons .delete-role').click(); +}; diff --git a/e2e/helpers/index.js b/e2e/helpers/index.js index e1f1e86b..5bd5cee6 100644 --- a/e2e/helpers/index.js +++ b/e2e/helpers/index.js @@ -9,3 +9,4 @@ 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"); +module.exports.adminPermissions = require("./admin-permissions");