Adding wiki tests
parent
ccf7f67a53
commit
3b086087ae
|
@ -18,7 +18,7 @@ describe('leaving project', function(){
|
|||
await utils.lightbox.confirm.ok();
|
||||
await utils.common.takeScreenshot("team", "after-leaving");
|
||||
});
|
||||
})
|
||||
});
|
||||
|
||||
describe('team', function() {
|
||||
before(async function(){
|
||||
|
@ -54,4 +54,4 @@ describe('team', function() {
|
|||
expect(newTotal).to.be.least(1);
|
||||
await utils.common.takeScreenshot("team", "filtering-by-role");
|
||||
});
|
||||
})
|
||||
});
|
||||
|
|
|
@ -0,0 +1,88 @@
|
|||
var utils = require('../utils');
|
||||
var wikiHelper = require('../helpers').wiki;
|
||||
|
||||
var chai = require('chai');
|
||||
var chaiAsPromised = require('chai-as-promised');
|
||||
|
||||
chai.use(chaiAsPromised);
|
||||
var expect = chai.expect;
|
||||
|
||||
describe('wiki', function() {
|
||||
before(async function(){
|
||||
browser.get('http://localhost:9001/project/project-0/wiki/home');
|
||||
await utils.common.waitLoader();
|
||||
});
|
||||
|
||||
it('screenshot', async function() {
|
||||
await utils.common.takeScreenshot("wiki", "empty");
|
||||
});
|
||||
|
||||
it('add link, follow it, edit and remove everything', async function(){
|
||||
// creation
|
||||
let timestamp = new Date().getTime();
|
||||
let linkText = "Test link" + timestamp;
|
||||
let slug = "test-link" + timestamp;
|
||||
let newLink = await wikiHelper.links().addLink(linkText);
|
||||
|
||||
//Following
|
||||
newLink.click();
|
||||
expect(browser.getCurrentUrl()).to.be.eventually.equal('http://localhost:9001/project/project-0/wiki/' + slug);
|
||||
await utils.common.waitLoader();
|
||||
await utils.common.takeScreenshot("wiki", "new-link-created-with-empty-wiki-page");
|
||||
|
||||
//Removing link
|
||||
wikiHelper.links().deleteLink(newLink);
|
||||
await utils.common.takeScreenshot("wiki", "deleting-the-created-link");
|
||||
|
||||
// Edition
|
||||
let timesEdited = wikiHelper.editor().getTimesEdited();
|
||||
let lastEditionDatetime = wikiHelper.editor().getLastEditionDateTime();
|
||||
wikiHelper.editor().enabledEditionMode();
|
||||
let settingText = "This is the new text" + new Date().getTime()
|
||||
wikiHelper.editor().setText(settingText);
|
||||
|
||||
// Checking preview
|
||||
wikiHelper.editor().preview();
|
||||
await utils.common.takeScreenshot("wiki", "home-edition-preview");
|
||||
|
||||
// Saving
|
||||
wikiHelper.editor().save();
|
||||
let newHtml = await wikiHelper.editor().getInnerHtml();
|
||||
let newTimesEdited = wikiHelper.editor().getTimesEdited();
|
||||
let newLastEditionDatetime = wikiHelper.editor().getLastEditionDateTime();
|
||||
expect(newHtml).to.be.equal("<p>" + settingText + "</p>");
|
||||
expect(newTimesEdited).to.be.eventually.equal(timesEdited+1);
|
||||
expect(newLastEditionDatetime).to.be.not.equal(lastEditionDatetime);
|
||||
await utils.common.takeScreenshot("wiki", "home-edition");
|
||||
|
||||
// Delete
|
||||
await wikiHelper.editor().delete();
|
||||
expect(browser.getCurrentUrl()).to.be.eventually.equal('http://localhost:9001/project/project-0/wiki/home');
|
||||
})
|
||||
|
||||
it('Custom keyboard actions', async function(){
|
||||
wikiHelper.editor().enabledEditionMode();
|
||||
|
||||
wikiHelper.editor().setText("- aa");
|
||||
browser.actions().sendKeys(protractor.Key.ENTER).perform();
|
||||
let text = await wikiHelper.editor().getText();
|
||||
expect(text).to.be.equal("- aa\n- ");
|
||||
|
||||
wikiHelper.editor().setText("- ");
|
||||
browser.actions().sendKeys(protractor.Key.ENTER).perform();
|
||||
text = await wikiHelper.editor().getText();
|
||||
expect(text).to.be.equal("\n");
|
||||
|
||||
wikiHelper.editor().setText("- bbcc");
|
||||
browser.actions().sendKeys(protractor.Key.ARROW_LEFT).sendKeys(protractor.Key.ARROW_LEFT).sendKeys(protractor.Key.ENTER).perform();
|
||||
text = await wikiHelper.editor().getText();
|
||||
expect(text).to.be.equal("- bb\n- cc");
|
||||
|
||||
wikiHelper.editor().setText("- aa");
|
||||
browser.actions().sendKeys(protractor.Key.HOME).sendKeys(protractor.Key.ENTER).perform();
|
||||
text = await wikiHelper.editor().getText();
|
||||
expect(text).to.be.equal("\n- aa");
|
||||
});
|
||||
|
||||
//TODO attachments
|
||||
});
|
|
@ -1,3 +1,4 @@
|
|||
module.exports.backlog = require("./backlog-helper");
|
||||
module.exports.taskboard = require("./taskboard-helper");
|
||||
module.exports.team = require("./team-helper");
|
||||
module.exports.wiki = require("./wiki-helper");
|
||||
|
|
|
@ -0,0 +1,89 @@
|
|||
var utils = require('../utils');
|
||||
|
||||
var helper = module.exports;
|
||||
|
||||
helper.links = function() {
|
||||
let el = $('section[tg-wiki-nav]');
|
||||
|
||||
let obj = {
|
||||
el: el,
|
||||
|
||||
addLink: async function(pageTitle){
|
||||
el.$(".add-button").click();
|
||||
el.$(".new input").sendKeys(pageTitle);
|
||||
browser.actions().sendKeys(protractor.Key.ENTER).perform();
|
||||
await browser.waitForAngular();
|
||||
let newLink = await el.$$(".wiki-link a").last();
|
||||
return newLink;
|
||||
},
|
||||
|
||||
deleteLink: async function(link){
|
||||
link.$(".icon-delete").click();
|
||||
await utils.lightbox.confirm.ok();
|
||||
await browser.waitForAngular();
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
return obj;
|
||||
};
|
||||
|
||||
helper.editor = function(){
|
||||
let el = $('.main.wiki');
|
||||
|
||||
let obj = {
|
||||
el: el,
|
||||
|
||||
enabledEditionMode: async function(){
|
||||
await el.$("section[tg-editable-wiki-content]").click();
|
||||
},
|
||||
|
||||
getTimesEdited: async function(){
|
||||
let total = await el.$(".wiki-times-edited .number").getText();
|
||||
return total;
|
||||
},
|
||||
|
||||
getLastEditionDateTime: async function(){
|
||||
let date = await el.$(".wiki-last-modified .number").getText();
|
||||
return date;
|
||||
},
|
||||
|
||||
getLastEditor: async function(){
|
||||
let editor = await el.$(".wiki-user-modification .username").getText();
|
||||
return editor;
|
||||
},
|
||||
|
||||
getInnerHtml: async function(text){
|
||||
let wikiText = await el.$(".content").getInnerHtml();
|
||||
return wikiText;
|
||||
},
|
||||
|
||||
getText: async function(text){
|
||||
let wikiText = await el.$("textarea").getAttribute('value');
|
||||
return wikiText;
|
||||
},
|
||||
|
||||
setText: async function(text){
|
||||
await el.$("textarea").clear().sendKeys(text);
|
||||
},
|
||||
|
||||
preview: async function(){
|
||||
await el.$(".preview-icon a").click();
|
||||
await browser.waitForAngular();
|
||||
},
|
||||
|
||||
save: async function(){
|
||||
await el.$(".save").click();
|
||||
await browser.waitForAngular();
|
||||
},
|
||||
|
||||
delete: async function(){
|
||||
await el.$('.remove').click();
|
||||
await utils.lightbox.confirm.ok();
|
||||
await browser.waitForAngular();
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
return obj;
|
||||
};
|
Loading…
Reference in New Issue