webhooks e2e

stable
Juanfran 2015-09-16 09:34:52 +02:00
parent c440b0ca8c
commit e37cc94112
5 changed files with 130 additions and 2 deletions

View File

@ -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;
});
});

View File

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

View File

@ -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';
};

View File

@ -10,3 +10,4 @@ module.exports.adminAttributes = require("./admin-attributes-helper");
module.exports.common = require("./common-helper"); module.exports.common = require("./common-helper");
module.exports.adminMemberships = require("./admin-memberships"); module.exports.adminMemberships = require("./admin-memberships");
module.exports.adminPermissions = require("./admin-permissions"); module.exports.adminPermissions = require("./admin-permissions");
module.exports.adminIntegrations = require("./admin-integrations");

View File

@ -1,4 +1,4 @@
var common = require('./common') var common = require('./common');
var lightbox = module.exports; var lightbox = module.exports;
var transition = 300; var transition = 300;