diff --git a/e2e/full/issues/issue-detail.e2e.js b/e2e/full/issues/issue-detail.e2e.js index 626e4166..012d6670 100644 --- a/e2e/full/issues/issue-detail.e2e.js +++ b/e2e/full/issues/issue-detail.e2e.js @@ -16,7 +16,13 @@ describe('Issue detail', function(){ await utils.common.takeScreenshot("issues", "detail"); }); - it('assigned to', utils.detail.assignedToTesting); + it('title edition', utils.detail.titleTesting); + + it('tags edition', utils.detail.tagsTesting); + + it('description edition', utils.detail.descriptionTesting); + + it('assigned to edition', utils.detail.assignedToTesting); it('screenshot', async function() { await utils.common.takeScreenshot("issues", "detail updated"); diff --git a/e2e/full/tasks/task-detail.e2e.js b/e2e/full/tasks/task-detail.e2e.js index d225aea0..4afbde21 100644 --- a/e2e/full/tasks/task-detail.e2e.js +++ b/e2e/full/tasks/task-detail.e2e.js @@ -16,7 +16,13 @@ describe('Task detail', function(){ await utils.common.takeScreenshot("tasks", "detail"); }); - it('assigned to', utils.detail.assignedToTesting); + it('title edition', utils.detail.titleTesting); + + it('tags edition', utils.detail.tagsTesting); + + it('description edition', utils.detail.descriptionTesting); + + it('assigned to edition', utils.detail.assignedToTesting); it('screenshot', async function() { await utils.common.takeScreenshot("tasks", "detail updated"); diff --git a/e2e/full/user-stories/user-story-detail.e2e.js b/e2e/full/user-stories/user-story-detail.e2e.js index 2e344a4b..4002b12f 100644 --- a/e2e/full/user-stories/user-story-detail.e2e.js +++ b/e2e/full/user-stories/user-story-detail.e2e.js @@ -16,7 +16,13 @@ describe('USer story detail', function(){ await utils.common.takeScreenshot("user-stories", "detail"); }); - it('assigned to', utils.detail.assignedToTesting); + it('title edition', utils.detail.titleTesting); + + it('tags edition', utils.detail.tagsTesting); + + it('description edition', utils.detail.descriptionTesting); + + it('assigned to edition', utils.detail.assignedToTesting); it('screenshot', async function() { await utils.common.takeScreenshot("user-stories", "detail updated"); diff --git a/e2e/helpers/detail-helper.js b/e2e/helpers/detail-helper.js index bc44a8f6..ee425d6a 100644 --- a/e2e/helpers/detail-helper.js +++ b/e2e/helpers/detail-helper.js @@ -2,28 +2,115 @@ var utils = require('../utils'); var helper = module.exports; +helper.title = function() { + let el = $('span[tg-editable-subject]'); + + let obj = { + el: el, + + getTitle: function() { + return el.$('.view-subject').getText(); + }, + + setTitle: function(title) { + el.$('.view-subject').click(); + el.$('.edit-subject input').clear().sendKeys(title); + } + }; + + return obj; +} + +helper.description = function(){ + let el = $('section[tg-editable-description]'); + + let obj = { + el: el, + + enabledEditionMode: async function(){ + await el.$(".view-description").click(); + }, + + getInnerHtml: async function(text){ + let html = await el.$(".wysiwyg.editable").getInnerHtml(); + return html; + }, + + setText: async function(text){ + await el.$("textarea").clear().sendKeys(text); + }, + + save: async function(){ + await el.$(".save").click(); + await browser.waitForAngular(); + } + }; + + return obj; +}; + + +helper.tags = function() { + let el = $('div[tg-tag-line]'); + + let obj = { + el:el, + + clearTags: async function() { + let tags = await el.$$('.icon-delete'); + let totalTags = tags.length + while (totalTags > 0) { + el.$$('.icon-delete').first().click(); + await browser.waitForAngular(); + totalTags --; + } + }, + + getTagsText: async function() { + let tags = await el.$$('.tag-name'); + let text = ""; + for (let tag of tags) { + let tagText = await tag.getText(); + text += tagText; + } + return text; + }, + + addTags: async function(tags) { + el.$('.add-tag').click(); + for (let tag of tags){ + el.$('.tag-input').sendKeys(tag); + browser.actions().sendKeys(protractor.Key.ENTER).perform(); + } + } + } + + return obj; +} + helper.assignedTo = function() { - let el = $('.assigned-to'); + let el = $('.assigned-to'); - let obj = { - el: el, - clear: async function() { - el.$('.icon-delete').click(); - await utils.lightbox.confirm.ok(); - await browser.waitForAngular(); - }, + let obj = { + el: el, - assign: function() { - el.$('.user-assigned').click(); - }, + clear: async function() { + el.$('.icon-delete').click(); + await utils.lightbox.confirm.ok(); + await browser.waitForAngular(); + }, - getUserName: function() { - return el.$('.user-assigned').getText(); - } + assign: function() { + el.$('.user-assigned').click(); + }, - }; + getUserName: function() { + return el.$('.user-assigned').getText(); + } - return obj; + }; + + return obj; }; helper.assignToLightbox = function() { diff --git a/e2e/utils/detail.js b/e2e/utils/detail.js index 1ed058f6..fba4c656 100644 --- a/e2e/utils/detail.js +++ b/e2e/utils/detail.js @@ -8,6 +8,39 @@ var expect = chai.expect; var helper = module.exports; +helper.titleTesting = async function() { + let titleHelper = detailHelper.title(); + let title = await titleHelper.getTitle(); + let date = Date.now() + titleHelper.setTitle("New title " + date); + let newTitle = await titleHelper.getTitle(); + expect(newTitle).to.be.not.equal(title); +} + +helper.tagsTesting = async function() { + let tagsHelper = detailHelper.tags(); + let tagsText = await tagsHelper.getTagsText(); + await tagsHelper.clearTags(); + let date = Date.now(); + let tags = [1, 2, 3, 4, 5].map(function(i){ return date + "-" + i}) + tagsHelper.addTags(tags); + await browser.waitForAngular(); + let newtagsText = await tagsHelper.getTagsText(); + expect(newtagsText).to.be.not.equal(tagsText); +} + +helper.descriptionTesting = async function() { + let descriptionHelper = detailHelper.description(); + let description = await descriptionHelper.getInnerHtml(); + let date = Date.now() + descriptionHelper.enabledEditionMode(); + descriptionHelper.setText("New description " + date) + descriptionHelper.save(); + let newDescription = await descriptionHelper.getInnerHtml(); + expect(newDescription).to.be.not.equal(description); +} + + helper.assignedToTesting = async function() { let assignedTo = detailHelper.assignedTo(); let assignToLightbox = detailHelper.assignToLightbox();