issues list e2e

stable
Juanfran 2015-09-17 12:18:55 +02:00
parent eec61ef202
commit 0443a67492
2 changed files with 261 additions and 10 deletions

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('issues list', function() { describe('issues list', function() {
before(async function() { before(async function() {
browser.get('http://localhost:9001/project/project-3/issues'); browser.get('http://localhost:9001/project/project-3/issues');
await utils.common.waitLoader(); await utils.common.waitLoader();
@ -104,9 +104,9 @@ describe.only('issues list', function() {
await assignToLightbox.waitOpen(); await assignToLightbox.waitOpen();
assignToLightbox.select(1); let newUserName = await assignToLightbox.getName(2);
let newUserName = await assignToLightbox.getName(1); assignToLightbox.select(2);
await assignToLightbox.waitClose(); await assignToLightbox.waitClose();
@ -115,18 +115,201 @@ describe.only('issues list', function() {
expect(issueUserName).to.be.equal(newUserName); expect(issueUserName).to.be.equal(newUserName);
}); });
it('pagination', async function() { describe('filters', function() {
it('by ref', async function() {
let issues = issuesHelper.getIssues();
let issue = issues.get(0);
let table = issuesHelper.getTable(); let table = issuesHelper.getTable();
let htmlChanges = await utils.common.outerHtmlChanges(table);
let htmlChanges = await utils.common.outerHtmlChanges(table); issue = await issuesHelper.parseIssue(issue);
issuesHelper.clickPagination(1); let filterInput = issuesHelper.getFilterInput();
await htmlChanges(); await filterInput.sendKeys(issue.ref);
let url = await browser.getCurrentUrl(); await htmlChanges();
expect(url).to.contain('page=2'); let newIssuesCount = await issues.count();
expect(newIssuesCount).to.be.equal(1);
await utils.common.clear(filterInput);
});
it('by subject', async function() {
let oldIssuesCount = await $$('.row.table-main').count();
let issues = issuesHelper.getIssues();
let issue = issues.get(0);
let table = issuesHelper.getTable();
let htmlChanges = await utils.common.outerHtmlChanges(table);
issue = await issuesHelper.parseIssue(issue);
let filterInput = issuesHelper.getFilterInput();
await filterInput.sendKeys(issue.subject);
await htmlChanges();
let newIssuesCount = await issues.count();
expect(newIssuesCount).not.to.be.equal(oldIssuesCount);
expect(newIssuesCount).to.be.above(0);
await utils.common.clear(filterInput);
});
it('by type', async function() {
let table = issuesHelper.getTable();
let htmlChanges = await utils.common.outerHtmlChanges(table);
issuesHelper.filtersCats().get(0).click();
issuesHelper.selectFilter(0);
await htmlChanges();
issuesHelper.backToFilters();
await issuesHelper.removeFilters();
});
it('by status', async function() {
let table = issuesHelper.getTable();
let htmlChanges = await utils.common.outerHtmlChanges(table);
issuesHelper.filtersCats().get(1).click();
issuesHelper.selectFilter(0);
await htmlChanges();
issuesHelper.backToFilters();
await issuesHelper.removeFilters();
});
it('by severity', async function() {
let table = issuesHelper.getTable();
let htmlChanges = await utils.common.outerHtmlChanges(table);
issuesHelper.filtersCats().get(2).click();
issuesHelper.selectFilter(0);
await htmlChanges();
issuesHelper.backToFilters();
await issuesHelper.removeFilters();
});
it('by priorities', async function() {
let table = issuesHelper.getTable();
let htmlChanges = await utils.common.outerHtmlChanges(table);
issuesHelper.filtersCats().get(3).click();
issuesHelper.selectFilter(0);
await htmlChanges();
issuesHelper.backToFilters();
await issuesHelper.removeFilters();
});
it('by tags', async function() {
let table = issuesHelper.getTable();
let htmlChanges = await utils.common.outerHtmlChanges(table);
issuesHelper.filtersCats().get(4).click();
issuesHelper.selectFilter(0);
await htmlChanges();
issuesHelper.backToFilters();
await issuesHelper.removeFilters();
});
it('by assigned to', async function() {
let table = issuesHelper.getTable();
let htmlChanges = await utils.common.outerHtmlChanges(table);
issuesHelper.filtersCats().get(5).click();
issuesHelper.selectFilter(0);
await htmlChanges();
issuesHelper.backToFilters();
await issuesHelper.removeFilters();
});
it('by created by', async function() {
let table = issuesHelper.getTable();
let htmlChanges = await utils.common.outerHtmlChanges(table);
issuesHelper.filtersCats().get(6).click();
issuesHelper.selectFilter(0);
await htmlChanges();
issuesHelper.backToFilters();
await issuesHelper.removeFilters();
});
it('empty', async function() {
let table = issuesHelper.getTable();
let htmlChanges = await utils.common.outerHtmlChanges(table);
let filterInput = issuesHelper.getFilterInput();
await filterInput.sendKeys(new Date().getTime());
await htmlChanges();
let newIssuesCount = await issuesHelper.getIssues().count();
expect(newIssuesCount).to.be.equal(0);
await utils.common.takeScreenshot('issues', 'empty-issues');
await utils.common.clear(filterInput);
});
it('save custom filter', async function() {
issuesHelper.filtersCats().get(1).click();
issuesHelper.selectFilter(0);
await browser.waitForAngular();
await issuesHelper.saveFilter('custom');
expect(issuesHelper.getCustomFilters().count()).to.be.eventually.equal(1);
await issuesHelper.removeFilters();
issuesHelper.backToFilters();
});
it('apply custom filter', async function() {
let table = issuesHelper.getTable();
let htmlChanges = await utils.common.outerHtmlChanges(table);
issuesHelper.filtersCats().get(7).click();
issuesHelper.selectFilter(0);
await htmlChanges();
await issuesHelper.removeFilters();
});
it('remove custom filter', async function() {
await issuesHelper.removeCustomFilters();
expect(issuesHelper.getCustomFilters().count()).to.be.eventually.equal(0);
});
}); });
}); });

View File

@ -76,3 +76,71 @@ helper.getAssignTo = function(index) {
helper.clickPagination = function(index) { helper.clickPagination = function(index) {
$$('.paginator li').get(index).click(); $$('.paginator li').get(index).click();
}; };
helper.getIssues = function() {
return $$('.row.table-main');
};
helper.parseIssue = async function(elm) {
let obj = {};
obj.ref = await elm.$$('.subject span').get(0).getText();
obj.ref = obj.ref.replace('#', '');
obj.subject = await elm.$$('.subject span').get(1).getText();
return obj;
};
helper.getFilterInput = function() {
return $$('sidebar[tg-issues-filters] input').get(0);
};
helper.filtersCats = function() {
return $$('.filters-cats li');
};
helper.filtersList = function() {
return $$('.filter-list a');
};
helper.selectFilter = async function(index) {
helper.filtersList().get(index).click();
};
helper.saveFilter = async function(name) {
$('.filters-step-cat .save-filters').click();
await $('.filter-list input').sendKeys(name);
return browser.actions().sendKeys(protractor.Key.ENTER).perform();
};
helper.backToFilters = function() {
$$('.breadcrumb a').get(0).click();
};
helper.removeFilters = async function() {
let count = await $$('.filters-applied .icon-delete').count();
while(count) {
$$('.filters-applied .icon-delete').get(0).click();
count = await $$('.filters-applied .icon-delete').count();
}
};
helper.getCustomFilters = function() {
return $$('.filter-list a[data-type="myFilters"]');
};
helper.removeCustomFilters = async function() {
let count = await $$('.filter-list .icon-delete').count();
while(count) {
$$('.filter-list .icon-delete').get(0).click();
await utils.lightbox.confirm.ok();
count = await $$('.filter-list .icon-delete').count();
}
};