81 lines
2.3 KiB
JavaScript
81 lines
2.3 KiB
JavaScript
/* global module expect require process client */
|
|
|
|
const { goHome } = require('./helper.js');
|
|
|
|
// Does no works with arrow func
|
|
module.exports = function () {
|
|
let pages;
|
|
|
|
this.Given(/^a list of page ids and contents$/, (table, callback) => {
|
|
pages = table.raw();
|
|
callback();
|
|
});
|
|
|
|
function processPage(i) {
|
|
const id = `#${pages[i][0]}`;
|
|
const content = pages[i][1];
|
|
client.waitForVisible(id, 10000);
|
|
client.click(id);
|
|
client.waitUntilText('#react-root', content);
|
|
// https://jasmine.github.io/2.3/introduction.html#section-Expectations
|
|
expect(client.getTitle()).toContain(pages[i][1]);
|
|
}
|
|
|
|
function processPageUrl(i) {
|
|
const url = `${pages[i][0]}`;
|
|
const content = pages[i][1];
|
|
client.url(`${process.env.ROOT_URL}/${url}`);
|
|
client.waitForVisible('#react-root', 10000);
|
|
client.waitUntilText('#react-root', content);
|
|
const checkTitle = pages[i][2] === 'true';
|
|
// https://jasmine.github.io/2.3/introduction.html#section-Expectations
|
|
if (checkTitle) {
|
|
expect(client.getTitle()).toContain(pages[i][1]);
|
|
}
|
|
}
|
|
|
|
this.Given(/^a list of non visible pages ids and contents$/, (table, callback) => {
|
|
pages = table.raw();
|
|
callback();
|
|
});
|
|
|
|
this.Then(/^I check that all non visible pages works properly$/, (callback) => {
|
|
for (let i = 0; i < pages.length; i += 1) {
|
|
processPageUrl(i);
|
|
}
|
|
callback();
|
|
});
|
|
|
|
this.Then(/^I check that all pages works properly$/, (callback) => {
|
|
goHome(client);
|
|
if (client.isVisible('#logout')) {
|
|
client.click('#logout');
|
|
}
|
|
for (let i = 0; i < pages.length; i += 1) {
|
|
processPage(i);
|
|
}
|
|
callback();
|
|
});
|
|
|
|
this.Given(/^a list of page urls and contents$/, (table, callback) => {
|
|
pages = table.raw();
|
|
callback();
|
|
});
|
|
|
|
this.Then(/^I check that all page urls works properly$/, (callback) => {
|
|
goHome(client);
|
|
for (let i = 0; i < pages.length; i += 1) {
|
|
processPageUrl(i);
|
|
}
|
|
callback();
|
|
});
|
|
|
|
this.Then(/^they are spiderable$/, (callback) => {
|
|
// Write code here that turns the phrase above into concrete actions
|
|
for (let i = 0; i < pages.length; i += 1) {
|
|
client.url(`${process.env.ROOT_URL}/${pages[i][0]}?_escaped_fragment_=`);
|
|
client.waitUntilText('#react-root', pages[i][1]);
|
|
}
|
|
callback();
|
|
});
|
|
};
|