From 78ea622b02ea495e25a1d0b602bc650a95daba8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peter=20Babi=C4=8D?= Date: Thu, 18 Mar 2021 19:33:10 +0100 Subject: [PATCH] fix cypress --- cypress/integration/spec.js | 12 ++-- package-lock.json | 117 +++++++++++++++++++++--------------- package.json | 2 +- src/App.svelte | 18 +++--- src/Button.svelte | 1 + 5 files changed, 86 insertions(+), 64 deletions(-) diff --git a/cypress/integration/spec.js b/cypress/integration/spec.js index bea1284..7e431d5 100644 --- a/cypress/integration/spec.js +++ b/cypress/integration/spec.js @@ -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() diff --git a/package-lock.json b/package-lock.json index eed95fd..260e3b1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -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" diff --git a/package.json b/package.json index e4f8a87..cbccaf4 100644 --- a/package.json +++ b/package.json @@ -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", diff --git a/src/App.svelte b/src/App.svelte index ced3939..9454a85 100644 --- a/src/App.svelte +++ b/src/App.svelte @@ -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 @@
-
+
{#each levels as _, i} {/each} @@ -349,10 +349,10 @@
- {#each circles as _, i} + {#each circles as type, i} {#key circles[i]}
change(i)} in:receive={{ key: i }} out:send={{ key: i }}> diff --git a/src/Button.svelte b/src/Button.svelte index 89e5533..3e08011 100644 --- a/src/Button.svelte +++ b/src/Button.svelte @@ -12,6 +12,7 @@