109 lines
3.6 KiB
JavaScript
109 lines
3.6 KiB
JavaScript
const find = require("../../lib/PromiseSelector");
|
|
const $ = find.one;
|
|
const $$ = find.multiple;
|
|
const functions = require("../../lib/functions.js");
|
|
|
|
async function solveLevel() {
|
|
await functions.pause(500);
|
|
await browser.executeAsync((delayFactor, done) => {
|
|
const delay = 100*delayFactor;
|
|
|
|
let promise = Promise.resolve();
|
|
document.querySelectorAll(".segment.segment-parent.rotate-270").forEach(elem => {
|
|
promise = promise.then(() => new Promise(r => {
|
|
elem.dispatchEvent(new MouseEvent("mousedown", {
|
|
bubbles: true
|
|
}));
|
|
elem.dispatchEvent(new MouseEvent("mouseup"));
|
|
setTimeout(r, delay);
|
|
}))
|
|
});
|
|
document.querySelectorAll(".segment.segment-parent.rotate-180").forEach(elem => {
|
|
promise = promise.then(() => new Promise(r => {
|
|
elem.dispatchEvent(new MouseEvent("mousedown", {
|
|
bubbles: true
|
|
}));
|
|
elem.dispatchEvent(new MouseEvent("mouseup"));
|
|
setTimeout(r, delay);
|
|
}))
|
|
promise = promise.then(() => new Promise(r => {
|
|
elem.dispatchEvent(new MouseEvent("mousedown", {
|
|
bubbles: true
|
|
}));
|
|
elem.dispatchEvent(new MouseEvent("mouseup"));
|
|
setTimeout(r, delay);
|
|
}))
|
|
});
|
|
document.querySelectorAll(".segment.segment-parent.rotate-90").forEach(elem => {
|
|
promise = promise.then(() => new Promise(r => {
|
|
elem.dispatchEvent(new MouseEvent("mousedown", {
|
|
bubbles: true
|
|
}));
|
|
elem.dispatchEvent(new MouseEvent("mouseup"));
|
|
setTimeout(r, delay);
|
|
}))
|
|
promise = promise.then(() => new Promise(r => {
|
|
elem.dispatchEvent(new MouseEvent("mousedown", {
|
|
bubbles: true
|
|
}));
|
|
elem.dispatchEvent(new MouseEvent("mouseup"));
|
|
setTimeout(r, delay);
|
|
}))
|
|
promise = promise.then(() => new Promise(r => {
|
|
elem.dispatchEvent(new MouseEvent("mousedown", {
|
|
bubbles: true
|
|
}));
|
|
elem.dispatchEvent(new MouseEvent("mouseup"));
|
|
setTimeout(r, delay);
|
|
}))
|
|
});
|
|
promise.then(() => done());
|
|
}, browser.config.delayFactor)
|
|
|
|
await find.one("#won-text").isDisplayed();
|
|
await find.one("#continue-button").click();
|
|
}
|
|
|
|
describe("fsj suite", () => {
|
|
jasmine.DEFAULT_TIMEOUT_INTERVAL = 3*60*60 * 1000 ;
|
|
|
|
let baseUrl = null;
|
|
beforeAll(async () => {
|
|
if (browser.config.baseUrl.trim() !== "") {
|
|
baseUrl = browser.config.baseUrl;
|
|
} else {
|
|
baseUrl = await browser.getUrl();
|
|
}
|
|
|
|
await browser.setTimeout({
|
|
implicit: 5000
|
|
});
|
|
});
|
|
|
|
beforeEach(async function () {
|
|
await browser.url(baseUrl);
|
|
|
|
await browser.waitUntil(async () => {
|
|
let element = $("#main-content");
|
|
return await element.isDisplayed()
|
|
});
|
|
|
|
// await functions.acceptCookies();
|
|
|
|
await find.one("#play-button").click();
|
|
});
|
|
|
|
it("play all levels", async function () {
|
|
|
|
await find.one("#level .segment").isDisplayed();
|
|
await solveLevel();
|
|
await find.one(".help-action").click();
|
|
while (await find.one("#level").isDisplayed()) {
|
|
await solveLevel();
|
|
}
|
|
|
|
// await functions.pause(5000);
|
|
|
|
});
|
|
});
|