kanban e2e

stable
Juanfran 2015-07-23 15:19:27 +02:00
parent eea81738fe
commit e575f23d06
4 changed files with 328 additions and 1 deletions

275
e2e/full/kanband.e2e.js Normal file
View File

@ -0,0 +1,275 @@
var utils = require('../utils');
var kanbanHelper = require('../helpers').kanban;
var backlogHelper = require('../helpers').backlog;
var chai = require('chai');
var chaiAsPromised = require('chai-as-promised');
chai.use(chaiAsPromised);
var expect = chai.expect;
describe('kanban', function() {
before(async function() {
browser.get('http://localhost:9001/project/project-0/kanban');
await utils.common.waitLoader();
utils.common.takeScreenshot('kanban', 'kanban');
});
describe('create us', function() {
let createUSLightbox = null;
let formFields = {};
before(async function() {
kanbanHelper.openNewUsLb(0);
createUSLightbox = backlogHelper.getCreateEditUsLightbox();
await createUSLightbox.waitOpen();
});
it('capture screen', function() {
utils.common.takeScreenshot('kanban', 'create-us');
});
it('fill form', async function() {
let date = Date.now();
formFields.subject = 'test subject' + date;
formFields.description = 'test description' + date;
// subject
createUSLightbox.subject().sendKeys(formFields.subject);
// roles
createUSLightbox.setRole(1, 3);
createUSLightbox.setRole(2, 3);
createUSLightbox.setRole(3, 3);
createUSLightbox.setRole(4, 3);
let totalPoints = await createUSLightbox.getRolePoints();
expect(totalPoints).to.be.equal('4');
// tags
createUSLightbox.tags().sendKeys('www');
browser.actions().sendKeys(protractor.Key.ENTER).perform();
createUSLightbox.tags().sendKeys('xxx');
browser.actions().sendKeys(protractor.Key.ENTER).perform();
// description
createUSLightbox.description().sendKeys(formFields.description);
//settings
createUSLightbox.settings(1).click();
});
it('send form', async function() {
createUSLightbox.submit();
await utils.lightbox.close(createUSLightbox.el);
let ussTitles = await kanbanHelper.getColumnUssTitles(0);
let findSubject = ussTitles.indexOf(formFields.subject) !== 1;
expect(findSubject).to.be.true;
});
});
describe('edit us', function() {
let createUSLightbox = null;
let formFields = {};
before(async function() {
kanbanHelper.editUs(0, 0);
createUSLightbox = backlogHelper.getCreateEditUsLightbox();
await createUSLightbox.waitOpen();
});
it('capture screen', function() {
utils.common.takeScreenshot('kanban', 'edit-us');
});
it('fill form', async function() {
let date = Date.now();
formFields.subject = 'test subject' + date;
formFields.description = 'test description' + date;
// subject
let subject = createUSLightbox.subject();
utils.common.clear(subject);
subject.sendKeys(formFields.subject);
// roles
createUSLightbox.setRole(1, 3);
createUSLightbox.setRole(2, 3);
createUSLightbox.setRole(3, 3);
createUSLightbox.setRole(4, 3);
let totalPoints = await createUSLightbox.getRolePoints();
expect(totalPoints).to.be.equal('4');
// tags
createUSLightbox.tags().sendKeys('www');
browser.actions().sendKeys(protractor.Key.ENTER).perform();
createUSLightbox.tags().sendKeys('xxx');
browser.actions().sendKeys(protractor.Key.ENTER).perform();
// description
createUSLightbox.description().sendKeys(formFields.description);
//settings
createUSLightbox.settings(1).click();
});
it('send form', async function() {
createUSLightbox.submit();
await utils.lightbox.close(createUSLightbox.el);
let ussTitles = await kanbanHelper.getColumnUssTitles(0);
let findSubject = ussTitles.indexOf(formFields.subject) !== -1;
expect(findSubject).to.be.true;
});
});
describe('bulk create', function() {
let createUSLightbox;
before(async function() {
kanbanHelper.openBulkUsLb(0);
createUSLightbox = backlogHelper.getBulkCreateLightbox();
await createUSLightbox.waitOpen();
});
it('fill form', function() {
createUSLightbox.textarea().sendKeys('aaa');
browser.actions().sendKeys(protractor.Key.ENTER).perform();
createUSLightbox.textarea().sendKeys('bbb');
browser.actions().sendKeys(protractor.Key.ENTER).perform();
});
it('send form', async function() {
let ussCount = await kanbanHelper.getBoxUss(0).count();
createUSLightbox.submit();
await utils.lightbox.close(createUSLightbox.el);
let newUssCount = await kanbanHelper.getBoxUss(0).count();
expect(newUssCount).to.be.equal(ussCount + 2);
});
});
describe('folds', function() {
it('fold column', async function() {
kanbanHelper.foldColumn(0);
utils.common.takeScreenshot('kanban', 'fold-column');
let foldedColumns = await $$('.vfold.task-column').count();
expect(foldedColumns).to.be.equal(1);
});
it('unfold column', async function() {
kanbanHelper.unFoldColumn(0);
let foldedColumns = await $$('.vfold.task-column').count();
expect(foldedColumns).to.be.equal(0);
});
it('fold cars', async function() {
kanbanHelper.foldCards(0);
utils.common.takeScreenshot('kanban', 'fold-cards');
let minimized = await $$('.kanban-task-minimized').count();
expect(minimized).to.be.above(1);
});
it('unfold cars', async function() {
kanbanHelper.unFoldCards(0);
let minimized = await $$('.kanban-task-minimized').count();
expect(minimized).to.be.equal(0);
});
});
it('move us between columns', async function() {
let initOriginUsCount = await kanbanHelper.getBoxUss(0).count();
let initDestinationUsCount = await kanbanHelper.getBoxUss(1).count();
let usOrigin = kanbanHelper.getBoxUss(0).first();
let destination = kanbanHelper.getColumns().get(1);
await utils.common.drag(usOrigin, destination);
browser.waitForAngular();
let originUsCount = await kanbanHelper.getBoxUss(0).count();
let destinationUsCount = await kanbanHelper.getBoxUss(1).count();
expect(originUsCount).to.be.equal(initOriginUsCount - 1);
expect(destinationUsCount).to.be.equal(initDestinationUsCount + 1);
});
describe('archive', function() {
it('move to archive', async function() {
let initOriginUsCount = await kanbanHelper.getBoxUss(3).count();
let usOrigin = kanbanHelper.getBoxUss(3).first();
let destination = kanbanHelper.getColumns().last();
await kanbanHelper.scrollRight();
await utils.common.drag(usOrigin, destination);
browser.waitForAngular();
let originUsCount = await kanbanHelper.getBoxUss(3).count();
utils.common.takeScreenshot('kanban', 'archive');
expect(originUsCount).to.be.equal(initOriginUsCount - 1);
});
it('show archive', async function() {
$('.icon-open-eye').click();
utils.common.takeScreenshot('kanban', 'archive-open');
let usCount = await kanbanHelper.getBoxUss(5).count();
expect(usCount).to.be.above(0);
});
it('close archive', async function() {
$('.icon-closed-eye').click();
let usCount = await kanbanHelper.getBoxUss(5).count();
expect(usCount).to.be.equal(0);
});
});
it.skip('edit assigned to', function() {});
});

View File

@ -67,7 +67,7 @@ describe('taskboard', function() {
let tasksSubject = await $$('.task-name').getText(); let tasksSubject = await $$('.task-name').getText();
let findSubject = tasksSubject.indexOf(formFields.subject) !== 1; let findSubject = tasksSubject.indexOf(formFields.subject) !== -1;
expect(findSubject).to.be.true; expect(findSubject).to.be.true;
}); });

View File

@ -1,5 +1,6 @@
module.exports.backlog = require("./backlog-helper"); module.exports.backlog = require("./backlog-helper");
module.exports.taskboard = require("./taskboard-helper"); module.exports.taskboard = require("./taskboard-helper");
module.exports.kanban = require("./kanban-helper");
module.exports.team = require("./team-helper"); module.exports.team = require("./team-helper");
module.exports.wiki = require("./wiki-helper"); module.exports.wiki = require("./wiki-helper");
module.exports.detail = require("./detail-helper"); module.exports.detail = require("./detail-helper");

View File

@ -0,0 +1,51 @@
var utils = require('../utils');
var helper = module.exports;
helper.getHeaderColumns = function() {
return $$('.task-colum-name');
};
helper.openNewUsLb = function(column) {
helper.getHeaderColumns().get(column).$('.icon-plus').click();
};
helper.getColumns = function() {
return $$('.task-column');
};
helper.getColumnUssTitles = function(column) {
return helper.getColumns().$$('.task-name').getText();
};
helper.getBoxUss = function(column) {
return helper.getColumns().get(column).$$('.kanban-task');
};
helper.editUs = function(column, us) {
helper.getColumns().get(column).$$('.icon-edit').get(us).click();
};
helper.openBulkUsLb = function(column) {
$$('.icon-bulk').get(column).click();
};
helper.foldColumn = function(column) {
$$('.hfold').get(column).click();
};
helper.unFoldColumn = function(column) {
$$('.hunfold').get(column).click();
};
helper.foldCards = function(column) {
$$('.icon-vfold').get(column).click();
};
helper.unFoldCards = function(column) {
$$('.icon-vunfold').get(column).click();
};
helper.scrollRight = function() {
return browser.executeScript('$(".kanban-table-body:last").scrollLeft(10000);');
};