Startseite und Tests geupdated
This commit is contained in:
parent
b881242a9b
commit
11fe3628a2
@ -1,4 +1,4 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
testcafe firefox test/play.testcafe.js
|
testcafe firefox test/test.testcafe.js
|
||||||
#testcafe firefox test/betaplay.testcafe.js
|
#testcafe chrome test/betaplay.testcafe.js
|
||||||
|
|||||||
@ -12,3 +12,6 @@
|
|||||||
2018-09-23T00:22:31+02:00 ERR (3):
|
2018-09-23T00:22:31+02:00 ERR (3):
|
||||||
2018-09-23T20:42:28+02:00 ERR (3):
|
2018-09-23T20:42:28+02:00 ERR (3):
|
||||||
2018-09-23T20:45:07+02:00 ERR (3):
|
2018-09-23T20:45:07+02:00 ERR (3):
|
||||||
|
2018-09-24T12:26:01+02:00 ERR (3):
|
||||||
|
2018-09-24T12:26:07+02:00 ERR (3):
|
||||||
|
2018-09-24T12:46:47+02:00 ERR (3):
|
||||||
|
|||||||
@ -12,3 +12,6 @@
|
|||||||
2018-09-23T00:22:31+02:00 ERR (3):
|
2018-09-23T00:22:31+02:00 ERR (3):
|
||||||
2018-09-23T20:42:28+02:00 ERR (3):
|
2018-09-23T20:42:28+02:00 ERR (3):
|
||||||
2018-09-23T20:45:07+02:00 ERR (3):
|
2018-09-23T20:45:07+02:00 ERR (3):
|
||||||
|
2018-09-24T12:26:01+02:00 ERR (3):
|
||||||
|
2018-09-24T12:26:07+02:00 ERR (3):
|
||||||
|
2018-09-24T12:46:47+02:00 ERR (3):
|
||||||
|
|||||||
135
public/js/app.js
135
public/js/app.js
@ -5912,8 +5912,8 @@ class MainMenuLevel extends FourWordsLevel{
|
|||||||
saveAsCurrentLevel() {
|
saveAsCurrentLevel() {
|
||||||
}
|
}
|
||||||
|
|
||||||
checkHasWon(delayPromise) {
|
// checkHasWon(delayPromise) {
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
class MenuSite extends WordRotatorBaseSite {
|
class MenuSite extends WordRotatorBaseSite {
|
||||||
@ -5923,9 +5923,85 @@ class MenuSite extends WordRotatorBaseSite {
|
|||||||
this.listener = null;
|
this.listener = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
onStart(args) {
|
||||||
|
let res = super.onStart(args);
|
||||||
|
|
||||||
|
let level = new MainMenuLevel(this.templateContainer);
|
||||||
|
level.setWords(["WORD", "ROTA", "TORW", "ORDR"]);
|
||||||
|
level.createSegments();
|
||||||
|
|
||||||
|
level.getWonPromise().then(() => {
|
||||||
|
console.log("won!");
|
||||||
|
this.startSite(LevelSite);
|
||||||
|
});
|
||||||
|
|
||||||
|
let segment = level.getRootSegment();
|
||||||
|
segment._updateElement();
|
||||||
|
|
||||||
|
let levelSegment = this.findBy("#level");
|
||||||
|
levelSegment.removeAllChildren().appendChild(segment.getElement());
|
||||||
|
|
||||||
|
let rotationsSegments = level.getRotatableSegments();
|
||||||
|
|
||||||
|
let randomRotationFunction = () => {
|
||||||
|
let timeout = Math.random() * 4500 + 1500;
|
||||||
|
setTimeout(() => {
|
||||||
|
let indexBlocked = -1;
|
||||||
|
let indexesNotRight = [];
|
||||||
|
for (let i = 0; i < rotationsSegments.length; i++) {
|
||||||
|
if (rotationsSegments[i].rotation !== 0) {
|
||||||
|
indexesNotRight.push(i);
|
||||||
|
if (indexesNotRight.length >= 2) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (indexesNotRight.length === 1) {
|
||||||
|
indexBlocked = indexesNotRight[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
let index = Math.floor(Math.random() * rotationsSegments.length);
|
||||||
|
if (index === indexBlocked) {
|
||||||
|
index = (index + 1) % rotationsSegments.length;
|
||||||
|
}
|
||||||
|
rotationsSegments[index].rotate();
|
||||||
|
randomRotationFunction();
|
||||||
|
}, timeout);
|
||||||
|
};
|
||||||
|
randomRotationFunction();
|
||||||
|
|
||||||
|
this.listener = async () => {
|
||||||
|
let playButton = this.findBy("#play-button");
|
||||||
|
let levelNumber = this.findBy("#level-number");
|
||||||
|
levelNumber.innerText = Helper.nonNull(localStorage.getItem("levelCounter"), 1);
|
||||||
|
|
||||||
|
let levelSegment = this.findBy("#level");
|
||||||
|
|
||||||
|
let scaleHelper = new ScaleHelper();
|
||||||
|
scaleHelper.scaleToFull(levelSegment, levelSegment.parentElement, false, false, 2, 8, null, false);
|
||||||
|
|
||||||
|
let levelStyle = getComputedStyle(levelSegment);
|
||||||
|
playButton.style.width = levelStyle.getPropertyValue("width");
|
||||||
|
scaleHelper.scaleToFull(playButton.children[0], playButton, null, null, null, null, null, false);
|
||||||
|
|
||||||
|
await scaleHelper.scaleTo(0.15, levelNumber.parentElement, levelNumber.parentElement.parentElement, null, null, null, 10, null, false);
|
||||||
|
scaleHelper.scaleToFull(levelNumber, levelNumber.parentElement, false, false, 8, null, null, false);
|
||||||
|
};
|
||||||
|
|
||||||
|
this.listener();
|
||||||
|
window.addEventListener("resize", this.listener);
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
async onFirstStart() {
|
async onFirstStart() {
|
||||||
super.onFirstStart();
|
super.onFirstStart();
|
||||||
|
|
||||||
|
let playButton = this.findBy("#play-button");
|
||||||
|
playButton.addEventListener("click", () => {
|
||||||
|
this.startSite(LevelSite);
|
||||||
|
});
|
||||||
|
|
||||||
let leafSegmentTemplate = this.findBy("#segment-leaf-template");
|
let leafSegmentTemplate = this.findBy("#segment-leaf-template");
|
||||||
let parentSegmentTemplate = this.findBy("#segment-parent-template");
|
let parentSegmentTemplate = this.findBy("#segment-parent-template");
|
||||||
let rowSegmentTemplate = this.findBy("#segment-row-template");
|
let rowSegmentTemplate = this.findBy("#segment-row-template");
|
||||||
@ -5941,61 +6017,12 @@ class MenuSite extends WordRotatorBaseSite {
|
|||||||
rowSegmentTemplate.remove();
|
rowSegmentTemplate.remove();
|
||||||
triangleTemplate.remove();
|
triangleTemplate.remove();
|
||||||
|
|
||||||
let templateContainer = new TemplateContainer(leafSegmentTemplate, parentSegmentTemplate, rowSegmentTemplate, triangleTemplate);
|
this.templateContainer = new TemplateContainer(leafSegmentTemplate, parentSegmentTemplate, rowSegmentTemplate, triangleTemplate);
|
||||||
let level = new MainMenuLevel(templateContainer);
|
|
||||||
level.setWords(["WORD", "ROTA", "TORW", "ORDR"]);
|
|
||||||
level.createSegments();
|
|
||||||
|
|
||||||
level.getWonPromise().then(() => {
|
|
||||||
console.log("won!");
|
|
||||||
});
|
|
||||||
|
|
||||||
let segment = level.getRootSegment();
|
|
||||||
segment._updateElement();
|
|
||||||
|
|
||||||
let levelSegment = this.findBy("#level");
|
|
||||||
levelSegment.removeAllChildren().appendChild(segment.getElement());
|
|
||||||
|
|
||||||
let playButton = this.findBy("#play-button");
|
|
||||||
playButton.addEventListener("click", () => {
|
|
||||||
this.startSite(LevelSite);
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
this.listener = async () => {
|
|
||||||
let levelNumber = this.findBy("#level-number");
|
|
||||||
levelNumber.innerText = Helper.nonNull(localStorage.getItem("levelCounter"), 1);
|
|
||||||
|
|
||||||
let scaleHelper = new ScaleHelper();
|
|
||||||
scaleHelper.scaleToFull(levelSegment, levelSegment.parentElement, false, false, 2, 8, null, false);
|
|
||||||
|
|
||||||
let levelStyle = getComputedStyle(levelSegment);
|
|
||||||
playButton.style.width = levelStyle.getPropertyValue("width");
|
|
||||||
scaleHelper.scaleToFull(playButton.children[0], playButton, null, null, null, null ,null ,false);
|
|
||||||
|
|
||||||
await scaleHelper.scaleTo(0.15, levelNumber.parentElement, levelNumber.parentElement.parentElement, null, null, null, 10 ,null ,false);
|
|
||||||
scaleHelper.scaleToFull(levelNumber, levelNumber.parentElement, false, false, 8, null, null, false);
|
|
||||||
};
|
|
||||||
|
|
||||||
this.listener();
|
|
||||||
window.addEventListener("resize", this.listener);
|
|
||||||
|
|
||||||
let rotationsSegments = level.getRotatableSegments();
|
|
||||||
|
|
||||||
let randomRotationFunction = () => {
|
|
||||||
let timeout = Math.random()*6000+1500;
|
|
||||||
setTimeout(() => {
|
|
||||||
let index = Math.floor(Math.random()*rotationsSegments.length);
|
|
||||||
rotationsSegments[index].rotate();
|
|
||||||
randomRotationFunction();
|
|
||||||
},timeout);
|
|
||||||
};
|
|
||||||
randomRotationFunction();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
onDestroy() {
|
onPause(args) {
|
||||||
window.removeEventListener("resize", this.listener);
|
window.removeEventListener("resize", this.listener);
|
||||||
super.onDestroy();
|
super.onPause(args);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -12,9 +12,84 @@ export class MenuSite extends WordRotatorBaseSite {
|
|||||||
this.listener = null;
|
this.listener = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
onStart(args) {
|
||||||
|
let res = super.onStart(args);
|
||||||
|
|
||||||
|
let level = new MainMenuLevel(this.templateContainer);
|
||||||
|
level.setWords(["WORD", "ROTA", "TORW", "ORDR"]);
|
||||||
|
level.createSegments();
|
||||||
|
|
||||||
|
level.getWonPromise().then(() => {
|
||||||
|
this.startSite(LevelSite);
|
||||||
|
});
|
||||||
|
|
||||||
|
let segment = level.getRootSegment();
|
||||||
|
segment._updateElement();
|
||||||
|
|
||||||
|
let levelSegment = this.findBy("#level");
|
||||||
|
levelSegment.removeAllChildren().appendChild(segment.getElement());
|
||||||
|
|
||||||
|
let rotationsSegments = level.getRotatableSegments();
|
||||||
|
|
||||||
|
let randomRotationFunction = () => {
|
||||||
|
let timeout = Math.random() * 4500 + 1500;
|
||||||
|
setTimeout(() => {
|
||||||
|
let indexBlocked = -1;
|
||||||
|
let indexesNotRight = [];
|
||||||
|
for (let i = 0; i < rotationsSegments.length; i++) {
|
||||||
|
if (rotationsSegments[i].rotation !== 0) {
|
||||||
|
indexesNotRight.push(i);
|
||||||
|
if (indexesNotRight.length >= 2) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (indexesNotRight.length === 1) {
|
||||||
|
indexBlocked = indexesNotRight[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
let index = Math.floor(Math.random() * rotationsSegments.length);
|
||||||
|
if (index === indexBlocked) {
|
||||||
|
index = (index + 1) % rotationsSegments.length;
|
||||||
|
}
|
||||||
|
rotationsSegments[index].rotate();
|
||||||
|
randomRotationFunction();
|
||||||
|
}, timeout);
|
||||||
|
};
|
||||||
|
randomRotationFunction();
|
||||||
|
|
||||||
|
this.listener = async () => {
|
||||||
|
let playButton = this.findBy("#play-button");
|
||||||
|
let levelNumber = this.findBy("#level-number");
|
||||||
|
levelNumber.innerText = Helper.nonNull(localStorage.getItem("levelCounter"), 1);
|
||||||
|
|
||||||
|
let levelSegment = this.findBy("#level");
|
||||||
|
|
||||||
|
let scaleHelper = new ScaleHelper();
|
||||||
|
scaleHelper.scaleToFull(levelSegment, levelSegment.parentElement, false, false, 2, 8, null, false);
|
||||||
|
|
||||||
|
let levelStyle = getComputedStyle(levelSegment);
|
||||||
|
playButton.style.width = levelStyle.getPropertyValue("width");
|
||||||
|
scaleHelper.scaleToFull(playButton.children[0], playButton, null, null, null, null, null, false);
|
||||||
|
|
||||||
|
await scaleHelper.scaleTo(0.15, levelNumber.parentElement, levelNumber.parentElement.parentElement, null, null, null, 10, null, false);
|
||||||
|
scaleHelper.scaleToFull(levelNumber, levelNumber.parentElement, false, false, 8, null, null, false);
|
||||||
|
};
|
||||||
|
|
||||||
|
this.listener();
|
||||||
|
window.addEventListener("resize", this.listener);
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
async onFirstStart() {
|
async onFirstStart() {
|
||||||
super.onFirstStart();
|
super.onFirstStart();
|
||||||
|
|
||||||
|
let playButton = this.findBy("#play-button");
|
||||||
|
playButton.addEventListener("click", () => {
|
||||||
|
this.startSite(LevelSite);
|
||||||
|
});
|
||||||
|
|
||||||
let leafSegmentTemplate = this.findBy("#segment-leaf-template");
|
let leafSegmentTemplate = this.findBy("#segment-leaf-template");
|
||||||
let parentSegmentTemplate = this.findBy("#segment-parent-template");
|
let parentSegmentTemplate = this.findBy("#segment-parent-template");
|
||||||
let rowSegmentTemplate = this.findBy("#segment-row-template");
|
let rowSegmentTemplate = this.findBy("#segment-row-template");
|
||||||
@ -30,60 +105,11 @@ export class MenuSite extends WordRotatorBaseSite {
|
|||||||
rowSegmentTemplate.remove();
|
rowSegmentTemplate.remove();
|
||||||
triangleTemplate.remove();
|
triangleTemplate.remove();
|
||||||
|
|
||||||
let templateContainer = new TemplateContainer(leafSegmentTemplate, parentSegmentTemplate, rowSegmentTemplate, triangleTemplate);
|
this.templateContainer = new TemplateContainer(leafSegmentTemplate, parentSegmentTemplate, rowSegmentTemplate, triangleTemplate);
|
||||||
let level = new MainMenuLevel(templateContainer);
|
|
||||||
level.setWords(["WORD", "ROTA", "TORW", "ORDR"]);
|
|
||||||
level.createSegments();
|
|
||||||
|
|
||||||
level.getWonPromise().then(() => {
|
|
||||||
console.log("won!");
|
|
||||||
});
|
|
||||||
|
|
||||||
let segment = level.getRootSegment();
|
|
||||||
segment._updateElement();
|
|
||||||
|
|
||||||
let levelSegment = this.findBy("#level");
|
|
||||||
levelSegment.removeAllChildren().appendChild(segment.getElement());
|
|
||||||
|
|
||||||
let playButton = this.findBy("#play-button");
|
|
||||||
playButton.addEventListener("click", () => {
|
|
||||||
this.startSite(LevelSite);
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
this.listener = async () => {
|
|
||||||
let levelNumber = this.findBy("#level-number");
|
|
||||||
levelNumber.innerText = Helper.nonNull(localStorage.getItem("levelCounter"), 1);
|
|
||||||
|
|
||||||
let scaleHelper = new ScaleHelper();
|
|
||||||
scaleHelper.scaleToFull(levelSegment, levelSegment.parentElement, false, false, 2, 8, null, false);
|
|
||||||
|
|
||||||
let levelStyle = getComputedStyle(levelSegment);
|
|
||||||
playButton.style.width = levelStyle.getPropertyValue("width");
|
|
||||||
scaleHelper.scaleToFull(playButton.children[0], playButton, null, null, null, null ,null ,false);
|
|
||||||
|
|
||||||
await scaleHelper.scaleTo(0.15, levelNumber.parentElement, levelNumber.parentElement.parentElement, null, null, null, 10 ,null ,false);
|
|
||||||
scaleHelper.scaleToFull(levelNumber, levelNumber.parentElement, false, false, 8, null, null, false);
|
|
||||||
};
|
|
||||||
|
|
||||||
this.listener();
|
|
||||||
window.addEventListener("resize", this.listener);
|
|
||||||
|
|
||||||
let rotationsSegments = level.getRotatableSegments();
|
|
||||||
|
|
||||||
let randomRotationFunction = () => {
|
|
||||||
let timeout = Math.random()*6000+1500;
|
|
||||||
setTimeout(() => {
|
|
||||||
let index = Math.floor(Math.random()*rotationsSegments.length);
|
|
||||||
rotationsSegments[index].rotate();
|
|
||||||
randomRotationFunction();
|
|
||||||
},timeout);
|
|
||||||
};
|
|
||||||
randomRotationFunction();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
onDestroy() {
|
onPause(args) {
|
||||||
window.removeEventListener("resize", this.listener);
|
window.removeEventListener("resize", this.listener);
|
||||||
super.onDestroy();
|
super.onPause(args);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -9,6 +9,6 @@ export class MainMenuLevel extends FourWordsLevel{
|
|||||||
saveAsCurrentLevel() {
|
saveAsCurrentLevel() {
|
||||||
}
|
}
|
||||||
|
|
||||||
checkHasWon(delayPromise) {
|
// checkHasWon(delayPromise) {
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
@ -1,5 +1,5 @@
|
|||||||
import { Selector } from 'testcafe';
|
import { Selector } from 'testcafe';
|
||||||
import {mainTest} from "./test";
|
import {loadLastLevelTest, mainTest} from "./test";
|
||||||
|
|
||||||
|
|
||||||
fixture `betaPlay`
|
fixture `betaPlay`
|
||||||
@ -9,8 +9,10 @@ fixture `betaPlay`
|
|||||||
password: '20luxl200'
|
password: '20luxl200'
|
||||||
});
|
});
|
||||||
test('Play', async t => {
|
test('Play', async t => {
|
||||||
|
|
||||||
await t.wait(20000);
|
await t.wait(20000);
|
||||||
await mainTest(t);
|
await mainTest(t);
|
||||||
|
});
|
||||||
|
test('LoadLastLevel', async t => {
|
||||||
|
await t.wait(20000);
|
||||||
|
await loadLastLevelTest(t);
|
||||||
});
|
});
|
||||||
@ -1,10 +0,0 @@
|
|||||||
import {Selector} from 'testcafe';
|
|
||||||
import {mainTest} from "./test";
|
|
||||||
|
|
||||||
fixture`Play`
|
|
||||||
.page`https://127.0.0.1/pwa/wordRotator/publicTest/`;
|
|
||||||
|
|
||||||
test('Play', async t => {
|
|
||||||
|
|
||||||
await mainTest(t);
|
|
||||||
});
|
|
||||||
16
test/test.js
16
test/test.js
@ -3,6 +3,7 @@ import { Selector } from 'testcafe';
|
|||||||
export async function mainTest(t){
|
export async function mainTest(t){
|
||||||
const coinsPerLevel = 5;
|
const coinsPerLevel = 5;
|
||||||
const dragDimen = 250;
|
const dragDimen = 250;
|
||||||
|
const helpCost = 25;
|
||||||
|
|
||||||
const SEGMENT = {
|
const SEGMENT = {
|
||||||
ONE: 0,
|
ONE: 0,
|
||||||
@ -261,7 +262,7 @@ export async function mainTest(t){
|
|||||||
.click(Selector('.segment-parent').nth(SEGMENT.EIGHT))
|
.click(Selector('.segment-parent').nth(SEGMENT.EIGHT))
|
||||||
.click(Selector('.segment-parent').nth(SEGMENT.SEVEN))
|
.click(Selector('.segment-parent').nth(SEGMENT.SEVEN))
|
||||||
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
|
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
|
||||||
.click(Selector('.segment-parent').nth(SEGMENT.THIRTEEN))
|
// .click(Selector('.segment-parent').nth(SEGMENT.THIRTEEN))
|
||||||
.click(Selector('.segment-parent').nth(SEGMENT.FIVE))
|
.click(Selector('.segment-parent').nth(SEGMENT.FIVE))
|
||||||
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
|
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
|
||||||
.click(Selector('.segment-parent').nth(SEGMENT.SEVEN))
|
.click(Selector('.segment-parent').nth(SEGMENT.SEVEN))
|
||||||
@ -277,12 +278,21 @@ export async function mainTest(t){
|
|||||||
offsetX: 50,
|
offsetX: 50,
|
||||||
offsetY: 73
|
offsetY: 73
|
||||||
})
|
})
|
||||||
.click(Selector('.segment-parent').nth(SEGMENT.THIRTEEN))
|
// .click(Selector('.segment-parent').nth(SEGMENT.THIRTEEN))
|
||||||
|
.click(Selector('#help-button'))
|
||||||
.wait(5000)
|
.wait(5000)
|
||||||
.expect(Selector('.coin-counter').innerText).eql(""+coinsPerLevel*7)
|
.expect(Selector('.coin-counter').innerText).eql(""+(coinsPerLevel*7-helpCost))
|
||||||
|
|
||||||
.expect(Selector('#won-text').visible).eql(true)
|
.expect(Selector('#won-text').visible).eql(true)
|
||||||
.expect(Selector('#continue-button').visible).eql(true)
|
.expect(Selector('#continue-button').visible).eql(true)
|
||||||
.click(Selector('#continue-button'))
|
.click(Selector('#continue-button'))
|
||||||
.expect(Selector('#site-content').childElementCount).eql(1);
|
.expect(Selector('#site-content').childElementCount).eql(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export async function beforeLoadLastLevelTest(){
|
||||||
|
|
||||||
|
}
|
||||||
|
export async function loadLastLevelTest(t){
|
||||||
|
|
||||||
}
|
}
|
||||||
319
test/test.testcafe.js
Normal file
319
test/test.testcafe.js
Normal file
@ -0,0 +1,319 @@
|
|||||||
|
import {Selector} from 'testcafe';
|
||||||
|
import {ClientFunction} from 'testcafe';
|
||||||
|
|
||||||
|
let isLocal = true;
|
||||||
|
if (isLocal) {
|
||||||
|
fixture`Play`
|
||||||
|
.page`https://127.0.0.1/pwa/wordRotator/publicTest/`;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
fixture`betaPlay`
|
||||||
|
.page`http://beta.wordrotator.silas.link`
|
||||||
|
.httpAuth({
|
||||||
|
username: 'admin',
|
||||||
|
password: '20luxl200'
|
||||||
|
}).beforeEach(async t => {
|
||||||
|
await t.wait(20000);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
const testLocalStorageSet = ClientFunction((key, value) => { localStorage.setItem(key, value)});
|
||||||
|
|
||||||
|
const coinsPerLevel = 5;
|
||||||
|
const dragDimen = 250;
|
||||||
|
const helpCost = 25;
|
||||||
|
|
||||||
|
const SEGMENT = {
|
||||||
|
ONE: 0,
|
||||||
|
TWO: 1,
|
||||||
|
THREE: 2,
|
||||||
|
FOUR: 3,
|
||||||
|
FIVE: 4,
|
||||||
|
SIX : 5,
|
||||||
|
SEVEN: 6,
|
||||||
|
EIGHT : 7,
|
||||||
|
NINE: 8,
|
||||||
|
TEN: 9,
|
||||||
|
ELEVEN: 10,
|
||||||
|
TWELVE: 11,
|
||||||
|
THIRTEEN: 12,
|
||||||
|
FOURTEEN: 13,
|
||||||
|
FIFTEEN: 14,
|
||||||
|
SIXTEEN: 15,
|
||||||
|
SEVENTEEN: 16,
|
||||||
|
EIGHTEEN:17,
|
||||||
|
NINETEEN: 18,
|
||||||
|
TWENTY:19,
|
||||||
|
TWENTYONE:20
|
||||||
|
};
|
||||||
|
|
||||||
|
test('Play', async t => {
|
||||||
|
await t
|
||||||
|
//Main Menu
|
||||||
|
.click(Selector('#play-button'))
|
||||||
|
|
||||||
|
//first Level
|
||||||
|
.expect(Selector('.segment.segment-parent.rotate-90').nth(0).getStyleProperty('transform')).eql("matrix(0, 1, -1, 0, 0, 0)")
|
||||||
|
.expect(Selector('.segment.segment-parent.rotate-90').nth(1).getStyleProperty('transform')).eql("matrix(0, 1, -1, 0, 0, 0)")
|
||||||
|
.expect(Selector('.segment.segment-parent.rotate-270').getStyleProperty('transform')).eql("matrix(0, -1, 1, 0, 0, 0)")
|
||||||
|
.expect(Selector('#won-text').visible).eql(false)
|
||||||
|
.expect(Selector('#continue-button').visible).eql(false)
|
||||||
|
.expect(Selector('#level-number').textContent).eql("1")
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.THREE))
|
||||||
|
.expect(Selector('.segment.segment-parent.rotate-360').getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)")
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.ONE))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.TWO))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.ONE))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.TWO))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.ONE))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.TWO))
|
||||||
|
.expect(Selector('.segment.segment-parent.rotate-360').nth(1).getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)")
|
||||||
|
.expect(Selector('#won-text').visible).eql(true)
|
||||||
|
.expect(Selector('#continue-button').visible).eql(true)
|
||||||
|
.click(Selector('#continue-button'))
|
||||||
|
.expect(Selector('.coin-counter').innerText).eql(""+coinsPerLevel)
|
||||||
|
|
||||||
|
//TWOLevel
|
||||||
|
.expect(Selector('.segment.segment-parent.rotate-270').nth(0).textContent).eql("BOAL")
|
||||||
|
.expect(Selector('.segment.segment-parent.rotate-180').textContent).eql("DEAR")
|
||||||
|
.expect(Selector('.segment.segment-parent.rotate-360').textContent).eql("NSMR")
|
||||||
|
.expect(Selector('.segment.segment-parent.rotate-270').nth(1).textContent).eql("EEUF")
|
||||||
|
.expect(Selector('.segment.segment-parent.rotate-270').nth(0).getStyleProperty('transform')).eql("matrix(0, -1, 1, 0, 0, 0)")
|
||||||
|
.expect(Selector('.segment.segment-parent.rotate-180').getStyleProperty('transform')).eql("matrix(-1, 0, 0, -1, 0, 0)")
|
||||||
|
.expect(Selector('.segment.segment-parent.rotate-360').getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)")
|
||||||
|
.expect(Selector('.segment.segment-parent.rotate-270').nth(1).getStyleProperty('transform')).eql("matrix(0, -1, 1, 0, 0, 0)")
|
||||||
|
.expect(Selector('#continue-button').visible).eql(false)
|
||||||
|
.expect(Selector('#level-number').textContent).eql("2")
|
||||||
|
.expect(Selector('#won-text').visible).eql(false)
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.TWO))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.ONE))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.TWO))
|
||||||
|
.expect(Selector('.segment-parent').nth(SEGMENT.TWO).getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)")
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.TWO))
|
||||||
|
.expect(Selector('.segment-parent').nth(SEGMENT.TWO).getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)")
|
||||||
|
.expect(Selector('#won-text').visible).eql(true)
|
||||||
|
.expect(Selector('#continue-button').visible).eql(true)
|
||||||
|
.click(Selector('#continue-button'))
|
||||||
|
.expect(Selector('.coin-counter').innerText).eql(""+coinsPerLevel*2)
|
||||||
|
|
||||||
|
//THREE Level
|
||||||
|
.expect(Selector('.segment-parent').nth(SEGMENT.ONE).textContent).eql("ZEHO")
|
||||||
|
.expect(Selector('.segment-parent').nth(SEGMENT.TWO).textContent).eql("ITCH")
|
||||||
|
.expect(Selector('.segment-parent').nth(SEGMENT.THREE).textContent).eql("STSA")
|
||||||
|
.expect(Selector('.segment-parent').nth(SEGMENT.FOUR).textContent).eql("RAIS")
|
||||||
|
.expect(Selector('.segment-parent').nth(SEGMENT.FIVE).textContent).eql("FEON")
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.ONE))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.FIVE))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.THREE))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.ONE))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.FIVE))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.ONE))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.FIVE))
|
||||||
|
.click(Selector('#continue-button'))
|
||||||
|
.expect(Selector('.coin-counter').innerText).eql(""+coinsPerLevel*3)
|
||||||
|
|
||||||
|
//4. Level
|
||||||
|
.expect(Selector('.segment-parent').nth(SEGMENT.ONE).textContent).eql("FERÜINCKPHREYSSI")
|
||||||
|
.expect(Selector('.segment-parent').nth(SEGMENT.TWO).textContent).eql("FERÜ")
|
||||||
|
.expect(Selector('.segment-parent').nth(SEGMENT.THREE).textContent).eql("INCK")
|
||||||
|
.expect(Selector('.segment-parent').nth(SEGMENT.FOUR).textContent).eql("PHRE")
|
||||||
|
.expect(Selector('.segment-parent').nth(SEGMENT.FIVE).textContent).eql("YSSI")
|
||||||
|
.expect(Selector('.segment-parent').nth(SEGMENT.SIX).textContent).eql("BEHE")
|
||||||
|
.expect(Selector('.segment-parent').nth(SEGMENT.SEVEN).textContent).eql("RARZ")
|
||||||
|
.expect(Selector('.segment-parent').nth(SEGMENT.EIGHT).textContent).eql("GUFA")
|
||||||
|
.expect(Selector('.segment-parent').nth(SEGMENT.NINE).textContent).eql("SSLL")
|
||||||
|
.expect(Selector('.segment-parent').nth(SEGMENT.TEN).textContent).eql("IKDEERNZTULANGND")
|
||||||
|
.expect(Selector('.segment-parent').nth(SEGMENT.ELEVEN).textContent).eql("IKDE")
|
||||||
|
.expect(Selector('.segment-parent').nth(SEGMENT.TWELVE).textContent).eql("ERNZ")
|
||||||
|
.expect(Selector('.segment-parent').nth(SEGMENT.THIRTEEN).textContent).eql("TULA")
|
||||||
|
.expect(Selector('.segment-parent').nth(SEGMENT.FOURTEEN).textContent).eql("NGND")
|
||||||
|
.drag(Selector('.segment-parent').nth(SEGMENT.TEN), dragDimen, 4, {
|
||||||
|
offsetX: 54,
|
||||||
|
offsetY: 17
|
||||||
|
})
|
||||||
|
.drag(Selector('.segment-parent').nth(SEGMENT.ONE), dragDimen, 3, {
|
||||||
|
offsetX: 54,
|
||||||
|
offsetY: 17
|
||||||
|
})
|
||||||
|
.drag(Selector('.segment-parent').nth(SEGMENT.TEN).find('div').withText('I'), dragDimen, 4, {
|
||||||
|
offsetX: 27,
|
||||||
|
offsetY: 41
|
||||||
|
})
|
||||||
|
.drag(Selector('.segment-parent').nth(SEGMENT.ONE).find('div').withText('S'), 10, dragDimen, {
|
||||||
|
offsetX: 64,
|
||||||
|
offsetY: 32
|
||||||
|
})
|
||||||
|
.drag(Selector('.segment-parent').nth(SEGMENT.TEN), dragDimen, 4, {
|
||||||
|
offsetX: 27,
|
||||||
|
offsetY: 41
|
||||||
|
})
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.NINE))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.EIGHT))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.NINE))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.ELEVEN))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.ELEVEN))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.FIVE))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.ELEVEN))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.TWELVE))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.FIVE))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.SIX))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.TWELVE))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.SEVEN))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.SIX))
|
||||||
|
.expect(Selector('#continue-button').visible).eql(true)
|
||||||
|
.expect(Selector('#won-text').visible).eql(true)
|
||||||
|
.click(Selector('#continue-button'))
|
||||||
|
.expect(Selector('.coin-counter').innerText).eql(""+coinsPerLevel*4)
|
||||||
|
|
||||||
|
//5. Level
|
||||||
|
.expect(Selector('#level-number').textContent).eql("5")
|
||||||
|
.expect(Selector('.segment-parent').nth(SEGMENT.ONE).textContent).eql("BEANTOBEALBALEUM")
|
||||||
|
.expect(Selector('.segment-parent').nth(SEGMENT.SIX).textContent).eql("NUTUNGNGRGHAIEUS")
|
||||||
|
.expect(Selector('.segment-parent').nth(SEGMENT.ONE).getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)")
|
||||||
|
.expect(Selector('.segment-parent').nth(SEGMENT.SIX).getStyleProperty('transform')).eql("matrix(0, 1, -1, 0, 0, 0)")
|
||||||
|
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.THREE))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.TWO))
|
||||||
|
.drag(Selector('.segment-parent').nth(SEGMENT.SIX).find('div').withText('U'), 3, dragDimen, {
|
||||||
|
offsetX: 69,
|
||||||
|
offsetY: 150
|
||||||
|
})
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.SEVEN))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.THREE))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.FIVE))
|
||||||
|
.drag(Selector('.segment-parent').nth(SEGMENT.SIX), 3, dragDimen, {
|
||||||
|
offsetX: 86,
|
||||||
|
offsetY: 133
|
||||||
|
})
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.THREE))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.SEVEN))
|
||||||
|
.drag(Selector('.segment-parent').nth(SEGMENT.SIX), 10, dragDimen, {
|
||||||
|
offsetX: 60,
|
||||||
|
offsetY: 137
|
||||||
|
})
|
||||||
|
.expect(Selector('#won-text').visible).eql(true)
|
||||||
|
.expect(Selector('#continue-button').visible).eql(true)
|
||||||
|
.click(Selector('#continue-button'))
|
||||||
|
.expect(Selector('.coin-counter').innerText).eql(""+coinsPerLevel*5)
|
||||||
|
|
||||||
|
|
||||||
|
//Level 6
|
||||||
|
.expect(Selector('#level-number').textContent).eql("6")
|
||||||
|
.expect(Selector('.segment-parent').nth(SEGMENT.ONE).textContent).eql("FEGEHLISARBEBERE")
|
||||||
|
.expect(Selector('.segment-parent').nth(SEGMENT.ONE).getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)")
|
||||||
|
.expect(Selector('.segment-parent').nth(SEGMENT.TEN).getStyleProperty('transform')).eql("matrix(-1, 0, 0, -1, 0, 0)")
|
||||||
|
.expect(Selector('.segment-parent').nth(SEGMENT.TEN).textContent).eql("ITITSPSCIKARAROT")
|
||||||
|
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.SEVEN))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.NINE))
|
||||||
|
.drag(Selector('.segment-parent').nth(SEGMENT.TEN).find('div').withText('A'), dragDimen, -4, {
|
||||||
|
offsetX: 33,
|
||||||
|
offsetY: 18
|
||||||
|
})
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.SIX))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.TWENTY))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.TWELVE))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.NINE))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.THIRTEEN))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.TWENTYONE))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.TWO))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.EIGHT))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.ELEVEN))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.NINE))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.TWELVE))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.FOURTEEN))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.SEVEN))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.SIXTEEN))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.TWELVE))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.NINETEEN))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.TWENTYONE))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.TWENTY))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.THIRTEEN))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.TWENTY))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.SEVENTEEN))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.SIXTEEN))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.FOURTEEN))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.NINETEEN))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.TWENTYONE))
|
||||||
|
.drag(Selector('.segment-parent').nth(SEGMENT.TEN).find('div').withText('P'), dragDimen, -3, {
|
||||||
|
offsetX: 22,
|
||||||
|
offsetY: 16
|
||||||
|
})
|
||||||
|
.expect(Selector('div').withText('P').nth(11).find('.segment.segment-parent.layer-2.rotate-360').getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)")
|
||||||
|
.expect(Selector('#continue-button').visible).eql(true)
|
||||||
|
.expect(Selector('#won-text').visible).eql(true)
|
||||||
|
.click(Selector('#continue-button'))
|
||||||
|
.expect(Selector('.coin-counter').innerText).eql(""+coinsPerLevel*6)
|
||||||
|
|
||||||
|
|
||||||
|
//Level 7
|
||||||
|
.expect(Selector('.segment-parent').nth(SEGMENT.SIX).getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)")
|
||||||
|
.expect(Selector('.segment-row > .child-container').childElementCount).eql(3)
|
||||||
|
|
||||||
|
.drag(Selector('.segment-parent').nth(SEGMENT.ONE), 4, dragDimen, {
|
||||||
|
offsetX: 50,
|
||||||
|
offsetY: 73
|
||||||
|
})
|
||||||
|
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.SEVEN))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.THIRTEEN))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.TWO))
|
||||||
|
.drag(Selector('.segment-parent').nth(SEGMENT.ELEVEN), 14, dragDimen, {
|
||||||
|
offsetX: 55,
|
||||||
|
offsetY: 57
|
||||||
|
})
|
||||||
|
.drag(Selector('.segment-parent').nth(SEGMENT.ONE), 4, dragDimen, {
|
||||||
|
offsetX: 50,
|
||||||
|
offsetY: 73
|
||||||
|
})
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.THREE))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.EIGHT))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.SEVEN))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
|
||||||
|
// .click(Selector('.segment-parent').nth(SEGMENT.THIRTEEN))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.FIVE))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.SEVEN))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.THREE))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.EIGHT))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.NINE))
|
||||||
|
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
|
||||||
|
.drag(Selector('.segment-parent').nth(SEGMENT.ELEVEN), 14, dragDimen, {
|
||||||
|
offsetX: 55,
|
||||||
|
offsetY: 57
|
||||||
|
})
|
||||||
|
.drag(Selector('.segment-parent').nth(SEGMENT.ONE), 4, dragDimen, {
|
||||||
|
offsetX: 50,
|
||||||
|
offsetY: 73
|
||||||
|
})
|
||||||
|
// .click(Selector('.segment-parent').nth(SEGMENT.THIRTEEN))
|
||||||
|
.click(Selector('#help-button'))
|
||||||
|
.wait(5000)
|
||||||
|
.expect(Selector('.coin-counter').innerText).eql(""+(coinsPerLevel*7-helpCost))
|
||||||
|
|
||||||
|
.expect(Selector('#won-text').visible).eql(true)
|
||||||
|
.expect(Selector('#continue-button').visible).eql(true)
|
||||||
|
.click(Selector('#continue-button'))
|
||||||
|
.expect(Selector('#site-content').childElementCount).eql(1);
|
||||||
|
});
|
||||||
|
test('LoadLastLevel', async t => {
|
||||||
|
await t.click(Selector('#play-button'))
|
||||||
|
.expect(Selector('.segment-parent').nth(SEGMENT.ONE).hasClass('locked')).ok()
|
||||||
|
.expect(Selector('.segment-parent').nth(SEGMENT.ONE).getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)")
|
||||||
|
.expect(Selector('.segment-parent').nth(SEGMENT.TWO).getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)")
|
||||||
|
.expect(Selector('.segment-parent').nth(SEGMENT.THREE).getStyleProperty('transform')).eql("matrix(0, -1, 1, 0, 0, 0)")
|
||||||
|
}).before(async t => {
|
||||||
|
// await t.
|
||||||
|
await testLocalStorageSet("currentLevel", "{\"id\":15,\"rotations\":[0,0,270],\"locks\":[false,true,true]}");
|
||||||
|
});
|
||||||
Loading…
x
Reference in New Issue
Block a user