From e37cc941126d2e99461368a73c2cf980f36203e1 Mon Sep 17 00:00:00 2001 From: Juanfran Date: Wed, 16 Sep 2015 09:34:52 +0200 Subject: [PATCH] webhooks e2e --- e2e/full/admin/integrations/webhooks.e2e.js | 69 +++++++++++++++++++++ e2e/full/admin/members.e2e.js | 2 +- e2e/helpers/admin-integrations.js | 58 +++++++++++++++++ e2e/helpers/index.js | 1 + e2e/utils/lightbox.js | 2 +- 5 files changed, 130 insertions(+), 2 deletions(-) create mode 100644 e2e/full/admin/integrations/webhooks.e2e.js create mode 100644 e2e/helpers/admin-integrations.js diff --git a/e2e/full/admin/integrations/webhooks.e2e.js b/e2e/full/admin/integrations/webhooks.e2e.js new file mode 100644 index 00000000..4934f8f7 --- /dev/null +++ b/e2e/full/admin/integrations/webhooks.e2e.js @@ -0,0 +1,69 @@ +var utils = require('../../../utils'); + +var adminIntegrationsHelper = require('../../../helpers').adminIntegrations; + +var chai = require('chai'); +var chaiAsPromised = require('chai-as-promised'); + +chai.use(chaiAsPromised); +var expect = chai.expect; + +describe('admin - webhooks', function() { + before(async function(){ + browser.get('http://localhost:9001/project/project-3/admin/third-parties/webhooks'); + + await utils.common.waitLoader(); + + utils.common.takeScreenshot('integrations', 'webhooks'); + }); + + it('error - empty', async function() { + await adminIntegrationsHelper.saveWebHook('', '', ''); + + utils.common.takeScreenshot('integrations', 'webhooks-errors'); + + let errorsCount = await adminIntegrationsHelper.getErrors().count(); + + expect(errorsCount).to.be.equal(3); + }); + + it('error - invalid url', async function() { + await adminIntegrationsHelper.saveWebHook('ooo', 'iii', 'uuuu'); + + utils.common.takeScreenshot('integrations', 'webhooks-invalid-url'); + + let errorsCount = await adminIntegrationsHelper.getErrors().count(); + + expect(errorsCount).to.be.equal(1); + }); + + it('valid', async function() { + await adminIntegrationsHelper.saveWebHook('ooo', 'http://web.fake', 'uuuu'); + + utils.common.takeScreenshot('integrations', 'webhooks-invalid-url'); + + let webHookIsPresent = await adminIntegrationsHelper.currentWebHookIsPresent(); + + expect(webHookIsPresent).to.be.true; + }); + + it('edit', async function() { + adminIntegrationsHelper.openEditModeWebHook(); + + await adminIntegrationsHelper.saveWebHook('111', 'http://web2.fake', '333'); + + await browser.sleep(4000); + + let webHookMode = await adminIntegrationsHelper.getWebHookMode(); + + expect(webHookMode).to.be.equal('read'); + }); + + it('delete', async function() { + await adminIntegrationsHelper.deleteWebhook(); + + let webHookIsPresent = await adminIntegrationsHelper.currentWebHookIsPresent(); + + expect(webHookIsPresent).to.be.false; + }); +}); diff --git a/e2e/full/admin/members.e2e.js b/e2e/full/admin/members.e2e.js index 0f318859..5a1169ae 100644 --- a/e2e/full/admin/members.e2e.js +++ b/e2e/full/admin/members.e2e.js @@ -8,7 +8,7 @@ var chaiAsPromised = require('chai-as-promised'); chai.use(chaiAsPromised); var expect = chai.expect; -describe.only('admin - members', function() { +describe('admin - members', function() { before(async function(){ browser.get('http://localhost:9001/project/project-0/admin/memberships'); diff --git a/e2e/helpers/admin-integrations.js b/e2e/helpers/admin-integrations.js new file mode 100644 index 00000000..63b9d603 --- /dev/null +++ b/e2e/helpers/admin-integrations.js @@ -0,0 +1,58 @@ +var utils = require('../utils'); + +var helper = module.exports; + +helper.saveWebHook = async function(name, email, key) { + let inputs = $$('input[type="text"]'); + + await utils.common.clear(inputs.get(0)); + await utils.common.clear(inputs.get(1)); + await utils.common.clear(inputs.get(2)); + + await inputs.get(0).sendKeys(name); + await inputs.get(1).sendKeys(email); + await inputs.get(2).sendKeys(key); + + let newWebHook = await $('.add-new').isDisplayed(); + + if(newWebHook) { + await $('.add-new').click(); + return browser.waitForAngular(); + } else { + await $('.edit-existing').click(); + return browser.waitForAngular(); + } +}; + +helper.getErrors = function() { + return $$('.checksley-error-list'); +}; + +helper.currentWebHookIsPresent = function() { + return $('div[tg-webhook]').isPresent(); +}; + +helper.deleteWebhook = async function() { + let deleteButton = $('.delete-webhook'); + + await browser.actions().mouseMove(deleteButton).click().perform(); + + await utils.lightbox.confirm.ok(); + + return browser.waitForAngular(); +}; + +helper.openEditModeWebHook = function() { + let editButton = $('.edit-webhook'); + + editButton.click(); +}; + +helper.getWebHookMode = async function() { + let visualizationMode = $('.visualization-mode'); + + let vModeState = await utils.common.hasClass(visualizationMode, 'hidden'); + + if (vModeState) return 'edit'; + else return 'read'; +}; diff --git a/e2e/helpers/index.js b/e2e/helpers/index.js index 5bd5cee6..41d5eee8 100644 --- a/e2e/helpers/index.js +++ b/e2e/helpers/index.js @@ -10,3 +10,4 @@ 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"); +module.exports.adminIntegrations = require("./admin-integrations"); diff --git a/e2e/utils/lightbox.js b/e2e/utils/lightbox.js index 323c2b6e..0108b023 100644 --- a/e2e/utils/lightbox.js +++ b/e2e/utils/lightbox.js @@ -1,4 +1,4 @@ -var common = require('./common') +var common = require('./common'); var lightbox = module.exports; var transition = 300;