From e575f23d063fb97e0e3ebc89f3d2f1eea794e65f Mon Sep 17 00:00:00 2001 From: Juanfran Date: Thu, 23 Jul 2015 15:19:27 +0200 Subject: [PATCH] kanban e2e --- e2e/full/kanband.e2e.js | 275 +++++++++++++++++++++++++++++++++++ e2e/full/taskboard.e2e.js | 2 +- e2e/helpers/index.js | 1 + e2e/helpers/kanban-helper.js | 51 +++++++ 4 files changed, 328 insertions(+), 1 deletion(-) create mode 100644 e2e/full/kanband.e2e.js create mode 100644 e2e/helpers/kanban-helper.js diff --git a/e2e/full/kanband.e2e.js b/e2e/full/kanband.e2e.js new file mode 100644 index 00000000..01e9d84d --- /dev/null +++ b/e2e/full/kanband.e2e.js @@ -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() {}); +}); diff --git a/e2e/full/taskboard.e2e.js b/e2e/full/taskboard.e2e.js index 48ff2077..8cb9144a 100644 --- a/e2e/full/taskboard.e2e.js +++ b/e2e/full/taskboard.e2e.js @@ -67,7 +67,7 @@ describe('taskboard', function() { 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; }); diff --git a/e2e/helpers/index.js b/e2e/helpers/index.js index dfdb1cfc..f5c57163 100644 --- a/e2e/helpers/index.js +++ b/e2e/helpers/index.js @@ -1,5 +1,6 @@ module.exports.backlog = require("./backlog-helper"); module.exports.taskboard = require("./taskboard-helper"); +module.exports.kanban = require("./kanban-helper"); module.exports.team = require("./team-helper"); module.exports.wiki = require("./wiki-helper"); module.exports.detail = require("./detail-helper"); diff --git a/e2e/helpers/kanban-helper.js b/e2e/helpers/kanban-helper.js new file mode 100644 index 00000000..3033fa50 --- /dev/null +++ b/e2e/helpers/kanban-helper.js @@ -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);'); +};