taiga-front/e2e/suites/project-home.e2e.js

158 lines
5.2 KiB
JavaScript

var utils = require('../utils');
var chai = require('chai');
var chaiAsPromised = require('chai-as-promised');
chai.use(chaiAsPromised);
var expect = chai.expect;
describe('project home', function() {
before(async function() {
browser.get(browser.params.glob.host + 'project/project-1/');
await utils.common.waitLoader();
await utils.common.takeScreenshot("project", "home-like");
//reset
let link = $('tg-like-project-button button');
let likeActive = await utils.common.hasClass(link, 'active');
if (!likeActive) {
link.click();
}
await browser.waitForAngular();
});
/*
it('timeline filled', function() {
expect($$('div[tg-user-timeline-item]').count()).to.be.eventually.above(0);
});
it('timeline pagination', async function() {
let startTotal = await $$('div[tg-user-timeline-item]').count();
await browser.executeScript('window.scrollTo(0,document.body.scrollHeight)');
await browser.waitForAngular();
let endTotal = await $$('div[tg-user-timeline-item]').count();
let hasMoreItems = startTotal < endTotal;
expect(hasMoreItems).to.be.equal(true);
});
it('team filled', function() {
expect($$('ul.involved-team a').count()).to.be.eventually.above(0);
});
*/
it('unlike', async function() {
let link = $('tg-like-project-button button');
let likesCounterOld = parseInt(await link.$('.track-button-counter').getText(), 10);
link.click();
await browser.waitForAngular();
let likeActive = await utils.common.hasClass(link, 'active');
let likesCounter = parseInt(await link.$('.track-button-counter').getText(), 10);
expect(likeActive).to.be.false;
expect(likesCounter).to.be.equal(likesCounterOld - 1);
});
it('like', async function() {
let link = $('tg-like-project-button button');
let likesCounterOld = parseInt(await link.$('.track-button-counter').getText(), 10);
link.click();
await browser.waitForAngular();
await utils.common.takeScreenshot("project", "home-like");
let likeActive = await utils.common.hasClass(link, 'active');
let likesCounter = parseInt(await link.$('.track-button-counter').getText(), 10);
expect(likeActive).to.be.true;
expect(likesCounter).to.be.equal(likesCounterOld + 1);
});
it('contact project', async function() {
$('tg-contact-project-button > .e2e-contact-team').click();
let contactProjectLb = $('div[tg-lb-contact-project]');
await utils.lightbox.open(contactProjectLb);
await utils.common.takeScreenshot("project", "contact-form");
let form = $('.e2e-lightbox-contact-project');
await form.$('.e2e-lightbox-contact-project-message').sendKeys('contact');
form.$('.e2e-lightbox-contact-project-button').click();
await utils.notifications.success.open();
});
it('unwatch', async function() {
let link = $('tg-watch-project-button > button');
let watchOptions = $('tg-watch-project-button .watch-options');
let watchCounterOld = parseInt(await link.$('.track-button-counter').getText(), 10);
link.click();
await browser.waitForAngular();
await browser.wait(async () => {
return !await utils.common.hasClass(watchOptions, 'hidden');
}, 4000);
watchOptions.$$('a').last().click();
await browser.wait(async () => {
return await utils.common.hasClass(watchOptions, 'hidden');
}, 4000);
let watchActive = await utils.common.hasClass(link, 'active');
let watchCounter = parseInt(await link.$('.track-button-counter').getText(), 10);
expect(watchActive).to.be.false;
expect(watchCounter).to.be.equal(watchCounterOld - 1);
});
it('watch', async function() {
let link = $('tg-watch-project-button > button');
let watchOptions = $('tg-watch-project-button .watch-options');
let watchCounterOld = parseInt(await link.$('.track-button-counter').getText(), 10);
link.click();
await browser.waitForAngular();
await browser.wait(async () => {
return !await utils.common.hasClass(watchOptions, 'hidden');
}, 4000);
watchOptions.$$('a').first().click();
await browser.wait(async () => {
return await utils.common.hasClass(watchOptions, 'hidden');
}, 4000);
let watchActive = await utils.common.hasClass(link, 'active');
let watchCounter = parseInt(await link.$('.track-button-counter').getText(), 10);
await utils.common.takeScreenshot("project", "home-watch");
expect(watchActive).to.be.true;
expect(watchCounter).to.be.equal(watchCounterOld + 1);
});
it('blocked project', async function() {
browser.get(browser.params.glob.host + 'project/project-6/');
await utils.common.waitLoader();
await utils.common.takeScreenshot("project", "blocked-project");
expect(browser.getCurrentUrl()).to.be.eventually.equal(browser.params.glob.host + 'blocked-project/project-6/');
});
});