fix cypress

master
Peter Babič 3 years ago
parent 7e7f5fac79
commit 78ea622b02
Signed by: peter.babic
GPG Key ID: 4BB075BC1884BA40
  1. 12
      cypress/integration/spec.js
  2. 117
      package-lock.json
  3. 2
      package.json
  4. 18
      src/App.svelte
  5. 1
      src/Button.svelte

@ -6,7 +6,7 @@ describe("game should", () => {
cy.visit("/")
cy.log("TEST multiple dest positions")
cy.get(".level").contains("1").as("level1").click()
cy.get("[data-cy=levels]").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")
@ -26,7 +26,7 @@ describe("game should", () => {
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("[data-cy=undo]").click()
cy.get(".div3.hole").should("be.visible")
cy.get(".div1.pole").should("be.visible")
cy.get(".div0.pole").should("be.visible")
@ -41,11 +41,11 @@ describe("game should", () => {
cy.get("@victory").should("be.visible")
cy.log("TEST level 1 restart")
cy.get(".restart").as("restart").click()
cy.get("[data-cy=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=levels]").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()
@ -71,7 +71,7 @@ describe("game should", () => {
cy.get("@gameover").should("be.be.visible")
cy.log("TEST level 10 victory")
cy.get(".level").contains("10").as("level10").click()
cy.get("[data-cy=levels]").contains("10").as("level10").click()
cy.get(".div11.pole").click()
cy.get(".div4.dest").click()
cy.get(".div9.pole").click()
@ -93,7 +93,7 @@ describe("game should", () => {
cy.get(".div14.pole").click()
cy.get(".div5.dest").click()
cy.get(".div5.pole").click()
cy.get(".div12.dest").click()
cy.get(".div12.dest").last().click()
cy.get(".div13.pole").click()
cy.get(".div11.dest").click()
cy.get(".div10.pole").click()

117
package-lock.json generated

@ -743,14 +743,15 @@
"dev": true
},
"cypress": {
"version": "6.2.1",
"resolved": "https://registry.npmjs.org/cypress/-/cypress-6.2.1.tgz",
"integrity": "sha512-OYkSgzA4J4Q7eMjZvNf5qWpBLR4RXrkqjL3UZ1UzGGLAskO0nFTi/RomNTG6TKvL3Zp4tw4zFY1gp5MtmkCZrA==",
"version": "6.8.0",
"resolved": "https://registry.npmjs.org/cypress/-/cypress-6.8.0.tgz",
"integrity": "sha512-W2e9Oqi7DmF48QtOD0LfsOLVq6ef2hcXZvJXI/E3PgFNmZXEVwBefhAxVCW9yTPortjYA2XkM20KyC4HRkOm9w==",
"dev": true,
"requires": {
"@cypress/listr-verbose-renderer": "^0.4.1",
"@cypress/request": "^2.88.5",
"@cypress/xvfb": "^1.2.4",
"@types/node": "12.12.50",
"@types/sinonjs__fake-timers": "^6.0.1",
"@types/sizzle": "^2.3.2",
"arch": "^2.1.2",
@ -762,7 +763,8 @@
"cli-table3": "~0.6.0",
"commander": "^5.1.0",
"common-tags": "^1.8.0",
"debug": "^4.1.1",
"dayjs": "^1.9.3",
"debug": "4.3.2",
"eventemitter2": "^6.4.2",
"execa": "^4.0.2",
"executable": "^4.1.1",
@ -776,10 +778,10 @@
"lodash": "^4.17.19",
"log-symbols": "^4.0.0",
"minimist": "^1.2.5",
"moment": "^2.27.0",
"moment": "^2.29.1",
"ospath": "^1.2.2",
"pretty-bytes": "^5.4.1",
"ramda": "~0.26.1",
"ramda": "~0.27.1",
"request-progress": "^3.0.0",
"supports-color": "^7.2.0",
"tmp": "~0.2.1",
@ -788,6 +790,12 @@
"yauzl": "^2.10.0"
},
"dependencies": {
"@types/node": {
"version": "12.12.50",
"resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.50.tgz",
"integrity": "sha512-5ImO01Fb8YsEOYpV+aeyGYztcYcjGsBvN4D7G5r1ef2cuQOpymjWNQi5V0rKHE6PC2ru3HkoUr/Br2/8GUA84w==",
"dev": true
},
"ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
@ -860,10 +868,16 @@
"integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==",
"dev": true
},
"dayjs": {
"version": "1.10.4",
"resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.4.tgz",
"integrity": "sha512-RI/Hh4kqRc1UKLOAf/T5zdMMX5DQIlDxwUe3wSyMMnEbGunnpENCdbUgM+dW7kXidZqCttBrmw7BhN4TMddkCw==",
"dev": true
},
"debug": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
"integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
"version": "4.3.2",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
"integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
"dev": true,
"requires": {
"ms": "2.1.2"
@ -983,9 +997,9 @@
"dev": true
},
"eventemitter2": {
"version": "6.4.3",
"resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.3.tgz",
"integrity": "sha512-t0A2msp6BzOf+QAcI6z9XMktLj52OjGQg+8SJH6v5+3uxNpWYRR3wQmfA+6xtMU9kOC59qk9licus5dYcrYkMQ==",
"version": "6.4.4",
"resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.4.tgz",
"integrity": "sha512-HLU3NDY6wARrLCEwyGKRBvuWYyvW6mHYv72SJJAH3iJN3a6eVUvkjFkcxah1bcTgGVBBrFdIopBJPhCQFMLyXw==",
"dev": true
},
"execa": {
@ -1136,15 +1150,15 @@
"dev": true
},
"fs-extra": {
"version": "9.0.1",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz",
"integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==",
"version": "9.1.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
"integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
"dev": true,
"requires": {
"at-least-node": "^1.0.0",
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
"universalify": "^1.0.0"
"universalify": "^2.0.0"
}
},
"fs.realpath": {
@ -1455,9 +1469,9 @@
}
},
"is-path-inside": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz",
"integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==",
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
"integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
"dev": true
},
"is-promise": {
@ -1487,6 +1501,12 @@
"integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
"dev": true
},
"is-unicode-supported": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
"integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
"dev": true
},
"isarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
@ -1798,12 +1818,13 @@
"dev": true
},
"log-symbols": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz",
"integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==",
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
"integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
"dev": true,
"requires": {
"chalk": "^4.0.0"
"chalk": "^4.1.0",
"is-unicode-supported": "^0.1.0"
},
"dependencies": {
"ansi-styles": {
@ -1925,18 +1946,18 @@
"integrity": "sha512-dhNd1uA2u397uQk3Nv5LM4lm93WYDUXFn3Fu291FJerns4jyTudqhIWe4W04YLy7Uk1tm1Ore04NpjRvQp/NPA=="
},
"mime-db": {
"version": "1.45.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz",
"integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==",
"version": "1.46.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz",
"integrity": "sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==",
"dev": true
},
"mime-types": {
"version": "2.1.28",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz",
"integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==",
"version": "2.1.29",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz",
"integrity": "sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==",
"dev": true,
"requires": {
"mime-db": "1.45.0"
"mime-db": "1.46.0"
}
},
"mimic-fn": {
@ -2270,9 +2291,9 @@
"dev": true
},
"pretty-bytes": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.5.0.tgz",
"integrity": "sha512-p+T744ZyjjiaFlMUZZv6YPC5JrkNj8maRmPaQCWFJFplUAzpIUTRaTcS+7wmZtUoFXHtESJb23ISliaWyz3SHA==",
"version": "5.6.0",
"resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz",
"integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==",
"dev": true
},
"pretty-hrtime": {
@ -2342,9 +2363,9 @@
"dev": true
},
"ramda": {
"version": "0.26.1",
"resolved": "https://registry.npmjs.org/ramda/-/ramda-0.26.1.tgz",
"integrity": "sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ==",
"version": "0.27.1",
"resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.1.tgz",
"integrity": "sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==",
"dev": true
},
"randombytes": {
@ -2535,9 +2556,9 @@
}
},
"rxjs": {
"version": "6.6.3",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz",
"integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==",
"version": "6.6.6",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.6.tgz",
"integrity": "sha512-/oTwee4N4iWzAMAL9xdGKjkEHmIwupR3oXbQjCKywF1BeFohswF3vZdogbmEF6pZkOsXTzWkrZszrWpQTByYVg==",
"dev": true,
"requires": {
"tslib": "^1.9.0"
@ -2694,9 +2715,9 @@
}
},
"string-width": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
"integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
"integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
"dev": true,
"requires": {
"emoji-regex": "^8.0.0",
@ -2981,9 +3002,9 @@
"dev": true
},
"universalify": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz",
"integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==",
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
"integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
"dev": true
},
"untildify": {
@ -2993,9 +3014,9 @@
"dev": true
},
"uri-js": {
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz",
"integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==",
"version": "4.4.1",
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
"integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
"dev": true,
"requires": {
"punycode": "^2.1.0"

@ -10,7 +10,7 @@
"@rollup/plugin-commonjs": "^17.0.0",
"@rollup/plugin-node-resolve": "^11.0.0",
"autoprefixer": "^10.2.5",
"cypress": "^6.2.1",
"cypress": "^6.8.0",
"postcss": "^8.2.7",
"postcss-load-config": "^3.0.1",
"rollup": "^2.3.4",

@ -6,10 +6,10 @@
const jumps = new Graph()
const C_MAX_CIRCLES = 21
const C_POLE = 0
const C_HOLE = 1
const C_PICK = 2
const C_DEST = 3
const C_POLE = "pole"
const C_HOLE = "hole"
const C_PICK = "pick"
const C_DEST = "dest"
const triangular = n => (n <= 1 ? 1 : n + triangular(n - 1))
const leftMost = detph => (detph == 0 ? 0 : triangular(detph))
@ -132,7 +132,7 @@
const getColor = i => colors[i % colors.length]
const getDestColor = _ => circleColors[circles.indexOf(C_PICK)]
$: getCircleColor = i => {
if (circles[i] == C_HOLE) return `hole`
if (circles[i] == C_HOLE) return `bg-gray`
if (circles[i] == C_POLE) return `bg-${circleColors[i]}`
if (circles[i] == C_PICK) return `bg-${circleColors[i]}-lighter`
if (circles[i] == C_DEST) return `bg-${getDestColor()}-darker`
@ -318,7 +318,7 @@
}
.hole {
@apply bg-gray shadow-inner cursor-default;
@apply shadow-inner cursor-default;
}
span {
@ -337,7 +337,7 @@
<div
class="m-auto transform-gpu sm:scale-150 md:scale-175 lg:scale-200 xl:scale-225">
<div class="outer overflow-x-hidden my-4">
<div class="grid grid-cols-5 gap-2 mb-4">
<div data-cy="levels" class="grid grid-cols-5 gap-2 mb-4">
{#each levels as _, i}
<LevelButton {i} {level} on:click={changeLevel} />
{/each}
@ -349,10 +349,10 @@
</div>
<div class="triangle grid grid-cols-9 grid-rows-5 mb-4">
{#each circles as _, i}
{#each circles as type, i}
{#key circles[i]}
<div
class="circle rounded-full cursor-pointer div{i} {getCircleColor(i)}"
class="circle rounded-full cursor-pointer div{i} {type} {getCircleColor(i)}"
on:click={() => change(i)}
in:receive={{ key: i }}
out:send={{ key: i }}>

@ -12,6 +12,7 @@
<button
on:click
data-cy={icon}
class="capitalize flex-auto inline-flex items-center rounded fill-current text-blue-darker px-2 py-2 border-0 border-b-2 bg-gray-lighter border-gray-darker active:text-gray active:bg-gray-darker active:border-t-2 active:border-green-lighter">
{#if icon}
<svg

Loading…
Cancel
Save