You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
triangles.fun/cypress/integration/spec.js

117 lines
4.1 KiB

/// <reference types="cypress" />
describe("game should", () => {
it("work as expected", () => {
cy.clearLocalStorage("completedLevels")
cy.visit("/")
cy.log("TEST multiple dest positions")
cy.get(".level").contains("1").as("level1").click()
cy.get("[data-cy=victory]").as("victory").should("not.be.visible")
cy.get(".div0.hole").should("be.visible")
cy.get(".div2.pole").should("be.visible")
cy.get(".div5.pole").should("be.visible").click()
cy.get(".div5.pick").should("be.visible")
cy.get(".div3.dest").should("be.visible")
cy.get(".div0.dest").should("be.visible").click()
cy.log("TEST jump over")
cy.get(".div2.hole").should("be.visible")
cy.get(".div5.hole").should("be.visible")
cy.get(".div0.pole").should("be.visible").click()
cy.get(".div1.pole").should("be.visible")
cy.get(".div3.dest").should("be.visible").click()
cy.log("TEST undo")
cy.get(".div3.pole").should("be.visible")
cy.get(".div1.hole").should("be.visible")
cy.get(".div0.hole").should("be.visible")
cy.get(".undo").click()
cy.get(".div3.hole").should("be.visible")
cy.get(".div1.pole").should("be.visible")
cy.get(".div0.pole").should("be.visible")
cy.log("TEST level 1 victory")
cy.get(".div0.pole").should("be.visible").click()
cy.get(".div3.dest").should("be.visible").click()
cy.get(".div4.pole").should("be.visible")
cy.get(".div3.pole").should("be.visible").click()
cy.get(".div5.dest").should("be.visible").click()
cy.get(".div4.hole").should("be.visible")
cy.get("@victory").should("be.visible")
cy.log("TEST level 1 restart")
cy.get(".restart").as("restart").click()
cy.get(".div2.pole").should("be.visible")
cy.log("TEST level picker")
cy.get(".level").contains("7").as("level7").click()
cy.get("[data-cy=gameover]").as("gameover").should("not.be.visible")
cy.get(".div3.pole").click()
cy.get(".div0.dest").click()
cy.get(".div5.pole").click()
cy.get(".div3.dest").click()
cy.get(".div13.pole").click()
cy.get(".div4.dest").click()
cy.get(".div11.pole").click()
cy.get(".div13.dest").click()
cy.log("TEST multiple destinations present")
cy.get(".div14.pole").click()
cy.get(".div5.dest").should("be.visible")
cy.get(".div12.dest").click()
cy.log("TEST gameover")
cy.get(".div6.pole").click()
cy.get(".div1.dest").click()
cy.get(".div0.pole").click()
cy.get(".div3.dest").click()
cy.get(".div2.pole").click()
cy.get(".div7.dest").click()
cy.get("@gameover").should("be.be.visible")
cy.log("TEST level 10 victory")
cy.get(".level").contains("10").as("level10").click()
cy.get(".div11.pole").click()
cy.get(".div4.dest").click()
cy.get(".div9.pole").click()
cy.get(".div7.dest").click()
cy.get(".div1.pole").click()
cy.get(".div8.dest").click()
cy.get(".div2.pole").click()
cy.get(".div9.dest").click()
cy.get(".div6.pole").click()
cy.get(".div1.dest").click()
cy.get(".div0.pole").click()
cy.get(".div3.dest").click()
cy.get(".div13.pole").click()
cy.get(".div11.dest").click()
cy.get(".div3.pole").click()
cy.get(".div12.dest").click()
cy.get(".div11.pole").click()
cy.get(".div13.dest").click()
cy.get(".div14.pole").click()
cy.get(".div5.dest").click()
cy.get(".div5.pole").click()
cy.get(".div12.dest").click()
cy.get(".div13.pole").click()
cy.get(".div11.dest").click()
cy.get(".div10.pole").click()
cy.get(".div12.dest").click()
cy.get("@victory").should("be.visible")
cy.log("TEST localStorage completedLevels")
cy.get("@level1").should("have.class", "completed")
cy.get("@level7").should("not.have.class", "completed")
cy.get("@level10").should("have.class", "completed")
cy.visit("/")
cy.get("@level1").should("have.class", "completed")
cy.get("@level7").should("not.have.class", "completed")
cy.get("@level10").should("have.class", "completed")
cy.get("@restart")
.click()
.should(() =>
expect(localStorage.getItem("completedLevels")).to.eq("[0,9]")
)
})
})