custom-fields admin e2e
parent
a8b3a94618
commit
313ab3cf63
|
@ -0,0 +1,185 @@
|
||||||
|
var utils = require('../utils');
|
||||||
|
var customFieldsHelper = require('../helpers/custom-fields-helper');
|
||||||
|
|
||||||
|
var chai = require('chai');
|
||||||
|
var chaiAsPromised = require('chai-as-promised');
|
||||||
|
|
||||||
|
chai.use(chaiAsPromised);
|
||||||
|
var expect = chai.expect;
|
||||||
|
|
||||||
|
describe('custom-fields', function() {
|
||||||
|
before(async function() {
|
||||||
|
browser.get('http://localhost:9001/project/project-3/admin/project-values/custom-fields');
|
||||||
|
await utils.common.waitLoader();
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('create custom fields', function() {
|
||||||
|
describe('userstories', function() {
|
||||||
|
let typeIndex = 0;
|
||||||
|
|
||||||
|
it('create', async function() {
|
||||||
|
let oldCountCustomFields = await customFieldsHelper.getCustomFiledsByType(typeIndex).count();
|
||||||
|
|
||||||
|
customFieldsHelper.create(typeIndex, 'test1-text', 'desc1', 1);
|
||||||
|
|
||||||
|
// debounce :(
|
||||||
|
await utils.notifications.success.open();
|
||||||
|
await browser.sleep(2000);
|
||||||
|
|
||||||
|
customFieldsHelper.create(typeIndex, 'test1-multi', 'desc1', 3);
|
||||||
|
|
||||||
|
// debounce :(
|
||||||
|
await utils.notifications.success.open();
|
||||||
|
await browser.sleep(2000);
|
||||||
|
|
||||||
|
// customFieldsHelper.create(typeIndex, 'test1-date', 'desc1', 4);
|
||||||
|
|
||||||
|
// // debounce :(
|
||||||
|
// await utils.notifications.success.open();
|
||||||
|
// await browser.sleep(2000);
|
||||||
|
|
||||||
|
let countCustomFields = customFieldsHelper.getCustomFiledsByType(typeIndex).count();
|
||||||
|
|
||||||
|
expect(countCustomFields).to.be.eventually.equal(oldCountCustomFields + 2);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('edit', async function() {
|
||||||
|
customFieldsHelper.edit(typeIndex, 0, 'edit', 'desc2', 2);
|
||||||
|
|
||||||
|
expect(utils.notifications.success.open()).to.be.eventually.true;
|
||||||
|
});
|
||||||
|
|
||||||
|
it('drag', async function() {
|
||||||
|
let nameOld = await customFieldsHelper.getName(typeIndex, 0);
|
||||||
|
|
||||||
|
await customFieldsHelper.drag(typeIndex, 0, 1);
|
||||||
|
|
||||||
|
let nameNew = customFieldsHelper.getName(typeIndex, 1);
|
||||||
|
|
||||||
|
expect(nameNew).to.be.eventually.equal(nameOld);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('delete', async function() {
|
||||||
|
let oldCountCustomFields = await customFieldsHelper.getCustomFiledsByType(typeIndex).count();
|
||||||
|
|
||||||
|
customFieldsHelper.delete(typeIndex, 0);
|
||||||
|
|
||||||
|
let countCustomFields = customFieldsHelper.getCustomFiledsByType(typeIndex).count();
|
||||||
|
|
||||||
|
expect(countCustomFields).to.be.eventually.equal(oldCountCustomFields - 1);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('tasks', function() {
|
||||||
|
let typeIndex = 1;
|
||||||
|
|
||||||
|
it('create', async function() {
|
||||||
|
let oldCountCustomFields = await customFieldsHelper.getCustomFiledsByType(typeIndex).count();
|
||||||
|
|
||||||
|
customFieldsHelper.create(typeIndex, 'test1-text', 'desc1', 1);
|
||||||
|
|
||||||
|
// debounce :(
|
||||||
|
await utils.notifications.success.open();
|
||||||
|
await browser.sleep(2000);
|
||||||
|
|
||||||
|
customFieldsHelper.create(typeIndex, 'test1-multi', 'desc1', 3);
|
||||||
|
|
||||||
|
// debounce :(
|
||||||
|
await utils.notifications.success.open();
|
||||||
|
await browser.sleep(2000);
|
||||||
|
|
||||||
|
// customFieldsHelper.create(typeIndex, 'test1-date', 'desc1', 4);
|
||||||
|
|
||||||
|
// // debounce :(
|
||||||
|
// await utils.notifications.success.open();
|
||||||
|
// await browser.sleep(2000);
|
||||||
|
|
||||||
|
let countCustomFields = customFieldsHelper.getCustomFiledsByType(typeIndex).count();
|
||||||
|
|
||||||
|
expect(countCustomFields).to.be.eventually.equal(oldCountCustomFields + 2);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('edit', async function() {
|
||||||
|
customFieldsHelper.edit(typeIndex, 0, 'edit', 'desc2', 2);
|
||||||
|
|
||||||
|
expect(utils.notifications.success.open()).to.be.eventually.true;
|
||||||
|
});
|
||||||
|
|
||||||
|
it('drag', async function() {
|
||||||
|
let nameOld = await customFieldsHelper.getName(typeIndex, 0);
|
||||||
|
|
||||||
|
await customFieldsHelper.drag(typeIndex, 0, 1);
|
||||||
|
|
||||||
|
let nameNew = customFieldsHelper.getName(typeIndex, 1);
|
||||||
|
|
||||||
|
expect(nameNew).to.be.eventually.equal(nameOld);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('delete', async function() {
|
||||||
|
let oldCountCustomFields = await customFieldsHelper.getCustomFiledsByType(typeIndex).count();
|
||||||
|
|
||||||
|
customFieldsHelper.delete(typeIndex, 0);
|
||||||
|
|
||||||
|
let countCustomFields = customFieldsHelper.getCustomFiledsByType(typeIndex).count();
|
||||||
|
|
||||||
|
expect(countCustomFields).to.be.eventually.equal(oldCountCustomFields - 1);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('issues', function() {
|
||||||
|
let typeIndex = 2;
|
||||||
|
|
||||||
|
it('create', async function() {
|
||||||
|
let oldCountCustomFields = await customFieldsHelper.getCustomFiledsByType(typeIndex).count();
|
||||||
|
|
||||||
|
customFieldsHelper.create(typeIndex, 'test1-text', 'desc1', 1);
|
||||||
|
|
||||||
|
// debounce :(
|
||||||
|
await utils.notifications.success.open();
|
||||||
|
await browser.sleep(2000);
|
||||||
|
|
||||||
|
customFieldsHelper.create(typeIndex, 'test1-multi', 'desc1', 3);
|
||||||
|
|
||||||
|
// debounce :(
|
||||||
|
await utils.notifications.success.open();
|
||||||
|
await browser.sleep(2000);
|
||||||
|
|
||||||
|
// customFieldsHelper.create(typeIndex, 'test1-date', 'desc1', 4);
|
||||||
|
|
||||||
|
// // debounce :(
|
||||||
|
// await utils.notifications.success.open();
|
||||||
|
// await browser.sleep(2000);
|
||||||
|
|
||||||
|
let countCustomFields = customFieldsHelper.getCustomFiledsByType(typeIndex).count();
|
||||||
|
|
||||||
|
expect(countCustomFields).to.be.eventually.equal(oldCountCustomFields + 2);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('edit', async function() {
|
||||||
|
customFieldsHelper.edit(typeIndex, 0, 'edit', 'desc2', 2);
|
||||||
|
|
||||||
|
expect(utils.notifications.success.open()).to.be.eventually.true;
|
||||||
|
});
|
||||||
|
|
||||||
|
it('drag', async function() {
|
||||||
|
let nameOld = await customFieldsHelper.getName(typeIndex, 0);
|
||||||
|
|
||||||
|
await customFieldsHelper.drag(typeIndex, 0, 1);
|
||||||
|
|
||||||
|
let nameNew = customFieldsHelper.getName(typeIndex, 1);
|
||||||
|
|
||||||
|
expect(nameNew).to.be.eventually.equal(nameOld);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('delete', async function() {
|
||||||
|
let oldCountCustomFields = await customFieldsHelper.getCustomFiledsByType(typeIndex).count();
|
||||||
|
|
||||||
|
customFieldsHelper.delete(typeIndex, 0);
|
||||||
|
|
||||||
|
let countCustomFields = customFieldsHelper.getCustomFiledsByType(typeIndex).count();
|
||||||
|
|
||||||
|
expect(countCustomFields).to.be.eventually.equal(oldCountCustomFields - 1);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
|
@ -0,0 +1,71 @@
|
||||||
|
var utils = require('../utils');
|
||||||
|
|
||||||
|
var helper = module.exports;
|
||||||
|
|
||||||
|
helper.create = function(indexType, name, desc, option) {
|
||||||
|
let type = $$('div[tg-project-custom-attributes]').get(indexType);
|
||||||
|
|
||||||
|
type.$('.js-add-custom-field-button').click();
|
||||||
|
|
||||||
|
let form = type.$$('form').last();
|
||||||
|
|
||||||
|
form.$('input[name="name"]').sendKeys(name);
|
||||||
|
form.$('input[name="description"]').sendKeys(desc);
|
||||||
|
form.$(`select option:nth-child(${option})`).click();
|
||||||
|
|
||||||
|
let saveButton = form.$('.js-create-custom-field-button');
|
||||||
|
|
||||||
|
browser.actions()
|
||||||
|
.mouseMove(saveButton)
|
||||||
|
.click()
|
||||||
|
.perform();
|
||||||
|
};
|
||||||
|
|
||||||
|
helper.edit = function(indexType, indexCustomField, name, desc, option) {
|
||||||
|
let form = helper.getCustomFiledsByType(indexType).get(indexCustomField);
|
||||||
|
|
||||||
|
browser.actions()
|
||||||
|
.mouseMove(form.$('.js-edit-custom-field-button'))
|
||||||
|
.click()
|
||||||
|
.perform();
|
||||||
|
|
||||||
|
form.$('input[name="name"]').sendKeys(name);
|
||||||
|
form.$('input[name="description"]').sendKeys(desc);
|
||||||
|
form.$(`select option:nth-child(${option})`).click();
|
||||||
|
|
||||||
|
let saveButton = form.$('.js-update-custom-field-button');
|
||||||
|
|
||||||
|
browser.actions()
|
||||||
|
.mouseMove(saveButton)
|
||||||
|
.click()
|
||||||
|
.perform();
|
||||||
|
};
|
||||||
|
|
||||||
|
helper.drag = function(indexType, indexCustomField, indexNewPosition) {
|
||||||
|
let customField = helper.getCustomFiledsByType(indexType).get(indexCustomField);
|
||||||
|
let newPosition = helper.getCustomFiledsByType(indexType).get(indexNewPosition).getLocation();
|
||||||
|
|
||||||
|
// await browser.actions().mouseMove(customField).perform();
|
||||||
|
|
||||||
|
// let destination = el.$$('div[tg-attachment] .attachment-settings .icon-drag-v').first();
|
||||||
|
|
||||||
|
return utils.common.drag(customField, newPosition, {y: 30});
|
||||||
|
};
|
||||||
|
|
||||||
|
helper.getCustomFiledsByType = function(indexType) {
|
||||||
|
return $$('div[tg-project-custom-attributes]').get(indexType).$$('.js-sortable > div');
|
||||||
|
};
|
||||||
|
|
||||||
|
helper.delete = async function(indexType, indexCustomField) {
|
||||||
|
let customField = helper.getCustomFiledsByType(indexType).get(indexCustomField);
|
||||||
|
|
||||||
|
let count = await helper.getCustomFiledsByType(indexType).count();
|
||||||
|
|
||||||
|
customField.$('.js-delete-custom-field-button').click();
|
||||||
|
|
||||||
|
utils.lightbox.confirm.ok();
|
||||||
|
};
|
||||||
|
|
||||||
|
helper.getName = function(indexType, indexCustomField) {
|
||||||
|
return helper.getCustomFiledsByType(indexType).get(indexCustomField).$('.custom-name span').getText();
|
||||||
|
};
|
|
@ -118,7 +118,7 @@ common.dragEnd = function(elm) {
|
||||||
}, 1000);
|
}, 1000);
|
||||||
};
|
};
|
||||||
|
|
||||||
common.drag = async function(elm, elm2) {
|
common.drag = async function(elm, elm2, offset) {
|
||||||
// this code doesn't have sense (jquery ui + scroll drag + selenium = :( )
|
// this code doesn't have sense (jquery ui + scroll drag + selenium = :( )
|
||||||
await browser.actions()
|
await browser.actions()
|
||||||
.mouseMove(elm)
|
.mouseMove(elm)
|
||||||
|
@ -126,7 +126,7 @@ common.drag = async function(elm, elm2) {
|
||||||
.perform();
|
.perform();
|
||||||
|
|
||||||
await browser.actions()
|
await browser.actions()
|
||||||
.mouseMove(elm2)
|
.mouseMove(elm2, offset)
|
||||||
.perform();
|
.perform();
|
||||||
|
|
||||||
await browser.sleep(60);
|
await browser.sleep(60);
|
||||||
|
|
Loading…
Reference in New Issue