From 1ee89ee3d51488f0fa40d2634a0dc761aff4ce79 Mon Sep 17 00:00:00 2001 From: Eli <88557639+lishaduck@users.noreply.github.com> Date: Fri, 22 Nov 2024 21:00:25 -0600 Subject: [PATCH] wip: enable code coverage Blocked on denoland/deno#27003. --- deno.json | 2 +- deno.lock | 187 +++++++++++++++++++++++++++++++++++++++++++---- vitest.config.ts | 4 +- 3 files changed, 178 insertions(+), 15 deletions(-) diff --git a/deno.json b/deno.json index c558c52..91d4e3a 100644 --- a/deno.json +++ b/deno.json @@ -9,7 +9,7 @@ "@deno/vite-plugin": "npm:@deno/vite-plugin@^1.0.4", "@effect/vitest": "npm:@effect/vitest@^0.19.0", "@std/assert": "jsr:@std/assert@^1.0.11", - "@vitest/coverage-v8": "npm:@vitest/coverage-v8@^3.0.6", + "@vitest/coverage-istanbul": "npm:@vitest/coverage-istanbul@^3.0.6", "@vitest/ui": "npm:@vitest/ui@^3.0.6", "effect": "npm:effect@^3.13.2", "vitest": "npm:vitest@^3.0.6" diff --git a/deno.lock b/deno.lock index 3618c76..8a37683 100644 --- a/deno.lock +++ b/deno.lock @@ -13,7 +13,7 @@ "npm:@effect/platform@~0.77.2": "0.77.2_effect@3.13.2", "npm:@effect/vitest@0.19": "0.19.0_effect@3.13.2_vitest@3.0.6__@types+node@22.7.3__@vitest+ui@3.0.6___vitest@3.0.6___@types+node@22.7.3__vite@6.1.0___@types+node@22.7.3_@types+node@22.7.3_@vitest+ui@3.0.6__vitest@3.0.6___@types+node@22.7.3___@vitest+ui@3.0.6___vite@6.1.0____@types+node@22.7.3__@types+node@22.7.3", "npm:@types/node@22.7.3": "22.7.3", - "npm:@vitest/coverage-v8@^3.0.6": "3.0.6_vitest@3.0.6__@types+node@22.7.3__@vitest+ui@3.0.6___vitest@3.0.6___@types+node@22.7.3__vite@6.1.0___@types+node@22.7.3_@types+node@22.7.3_@vitest+ui@3.0.6__vitest@3.0.6___@types+node@22.7.3___@vitest+ui@3.0.6___vite@6.1.0____@types+node@22.7.3__@types+node@22.7.3", + "npm:@vitest/coverage-istanbul@^3.0.6": "3.0.6_vitest@3.0.6__@types+node@22.7.3__@vitest+ui@3.0.6___vitest@3.0.6___@types+node@22.7.3__vite@6.1.0___@types+node@22.7.3_@types+node@22.7.3_@vitest+ui@3.0.6__vitest@3.0.6___@types+node@22.7.3___@vitest+ui@3.0.6___vite@6.1.0____@types+node@22.7.3__@types+node@22.7.3", "npm:@vitest/ui@^3.0.6": "3.0.6_vitest@3.0.6__@types+node@22.7.3__@vitest+ui@3.0.6___vitest@3.0.6___@types+node@22.7.3__vite@6.1.0___@types+node@22.7.3_@types+node@22.7.3", "npm:effect@^3.13.2": "3.13.2", "npm:vitest@^3.0.6": "3.0.6_@types+node@22.7.3_@vitest+ui@3.0.6__vitest@3.0.6__@types+node@22.7.3_vite@6.1.0__@types+node@22.7.3" @@ -46,18 +46,115 @@ "@jridgewell/trace-mapping" ] }, + "@babel/code-frame@7.26.2": { + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "dependencies": [ + "@babel/helper-validator-identifier", + "js-tokens", + "picocolors" + ] + }, + "@babel/compat-data@7.26.8": { + "integrity": "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==" + }, + "@babel/core@7.26.9": { + "integrity": "sha512-lWBYIrF7qK5+GjY5Uy+/hEgp8OJWOD/rpy74GplYRhEauvbHDeFB8t5hPOZxCZ0Oxf4Cc36tK51/l3ymJysrKw==", + "dependencies": [ + "@ampproject/remapping", + "@babel/code-frame", + "@babel/generator", + "@babel/helper-compilation-targets", + "@babel/helper-module-transforms", + "@babel/helpers", + "@babel/parser", + "@babel/template", + "@babel/traverse", + "@babel/types", + "convert-source-map", + "debug", + "gensync", + "json5", + "semver@6.3.1" + ] + }, + "@babel/generator@7.26.9": { + "integrity": "sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg==", + "dependencies": [ + "@babel/parser", + "@babel/types", + "@jridgewell/gen-mapping", + "@jridgewell/trace-mapping", + "jsesc" + ] + }, + "@babel/helper-compilation-targets@7.26.5": { + "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", + "dependencies": [ + "@babel/compat-data", + "@babel/helper-validator-option", + "browserslist", + "lru-cache@5.1.1", + "semver@6.3.1" + ] + }, + "@babel/helper-module-imports@7.25.9": { + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "dependencies": [ + "@babel/traverse", + "@babel/types" + ] + }, + "@babel/helper-module-transforms@7.26.0_@babel+core@7.26.9": { + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", + "dependencies": [ + "@babel/core", + "@babel/helper-module-imports", + "@babel/helper-validator-identifier", + "@babel/traverse" + ] + }, "@babel/helper-string-parser@7.25.9": { "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==" }, "@babel/helper-validator-identifier@7.25.9": { "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==" }, + "@babel/helper-validator-option@7.25.9": { + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==" + }, + "@babel/helpers@7.26.9": { + "integrity": "sha512-Mz/4+y8udxBKdmzt/UjPACs4G3j5SshJJEFFKxlCGPydG4JAHXxjWjAwjd09tf6oINvl1VfMJo+nB7H2YKQ0dA==", + "dependencies": [ + "@babel/template", + "@babel/types" + ] + }, "@babel/parser@7.26.9": { "integrity": "sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==", "dependencies": [ "@babel/types" ] }, + "@babel/template@7.26.9": { + "integrity": "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==", + "dependencies": [ + "@babel/code-frame", + "@babel/parser", + "@babel/types" + ] + }, + "@babel/traverse@7.26.9": { + "integrity": "sha512-ZYW7L+pL8ahU5fXmNbPF+iZFHCv5scFak7MZ9bwaRPLUhHh7QQEMjZUg0HevihoqCM5iSYHN61EyCoZvqC+bxg==", + "dependencies": [ + "@babel/code-frame", + "@babel/generator", + "@babel/parser", + "@babel/template", + "@babel/types", + "debug", + "globals" + ] + }, "@babel/types@7.26.9": { "integrity": "sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==", "dependencies": [ @@ -65,9 +162,6 @@ "@babel/helper-validator-identifier" ] }, - "@bcoe/v8-coverage@1.0.2": { - "integrity": "sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==" - }, "@biomejs/biome@1.9.4": { "integrity": "sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog==", "dependencies": [ @@ -403,19 +497,17 @@ "undici-types" ] }, - "@vitest/coverage-v8@3.0.6_vitest@3.0.6__@types+node@22.7.3__@vitest+ui@3.0.6___vitest@3.0.6___@types+node@22.7.3__vite@6.1.0___@types+node@22.7.3_@types+node@22.7.3_@vitest+ui@3.0.6__vitest@3.0.6___@types+node@22.7.3___@vitest+ui@3.0.6___vite@6.1.0____@types+node@22.7.3__@types+node@22.7.3": { - "integrity": "sha512-JRTlR8Bw+4BcmVTICa7tJsxqphAktakiLsAmibVLAWbu1lauFddY/tXeM6sAyl1cgkPuXtpnUgaCPhTdz1Qapg==", + "@vitest/coverage-istanbul@3.0.6_vitest@3.0.6__@types+node@22.7.3__@vitest+ui@3.0.6___vitest@3.0.6___@types+node@22.7.3__vite@6.1.0___@types+node@22.7.3_@types+node@22.7.3_@vitest+ui@3.0.6__vitest@3.0.6___@types+node@22.7.3___@vitest+ui@3.0.6___vite@6.1.0____@types+node@22.7.3__@types+node@22.7.3": { + "integrity": "sha512-e+8HkmVlPpqOZXIWGE8opxex3trTMCeCMHax7yG0JbWOtGRVKBjuNS/GGA/eta89LuXUrCIcQrRfJHLUrWl7Wg==", "dependencies": [ - "@ampproject/remapping", - "@bcoe/v8-coverage", + "@istanbuljs/schema", "debug", "istanbul-lib-coverage", + "istanbul-lib-instrument", "istanbul-lib-report", "istanbul-lib-source-maps", "istanbul-reports", - "magic-string", "magicast", - "std-env", "test-exclude", "tinyrainbow", "vitest" @@ -520,9 +612,21 @@ "fill-range" ] }, + "browserslist@4.24.4": { + "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", + "dependencies": [ + "caniuse-lite", + "electron-to-chromium", + "node-releases", + "update-browserslist-db" + ] + }, "cac@6.7.14": { "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==" }, + "caniuse-lite@1.0.30001695": { + "integrity": "sha512-vHyLade6wTgI2u1ec3WQBxv+2BrTERV28UXQu9LO6lZ9pYeMk34vjXFLOxo1A4UBA8XTL4njRQZdno/yYaSmWw==" + }, "chai@5.2.0": { "integrity": "sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==", "dependencies": [ @@ -545,6 +649,9 @@ "color-name@1.1.4": { "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, + "convert-source-map@2.0.0": { + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" + }, "cross-spawn@7.0.6": { "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dependencies": [ @@ -575,6 +682,9 @@ "fast-check" ] }, + "electron-to-chromium@1.5.87": { + "integrity": "sha512-mPFwmEWmRivw2F8x3w3l2m6htAUN97Gy0kwpO++2m9iT1Gt8RCFVUfv9U/sIbHJ6rY4P6/ooqFL/eL7ock+pPg==" + }, "emoji-regex@8.0.0": { "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, @@ -614,6 +724,9 @@ "@esbuild/win32-x64" ] }, + "escalade@3.2.0": { + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==" + }, "estree-walker@3.0.3": { "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", "dependencies": [ @@ -660,6 +773,9 @@ "fsevents@2.3.3": { "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==" }, + "gensync@1.0.0-beta.2": { + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" + }, "glob@10.4.5": { "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dependencies": [ @@ -671,6 +787,9 @@ "path-scurry" ] }, + "globals@11.12.0": { + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + }, "has-flag@4.0.0": { "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, @@ -698,6 +817,16 @@ "istanbul-lib-coverage@3.2.2": { "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==" }, + "istanbul-lib-instrument@6.0.3": { + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", + "dependencies": [ + "@babel/core", + "@babel/parser", + "@istanbuljs/schema", + "istanbul-lib-coverage", + "semver@7.7.1" + ] + }, "istanbul-lib-report@3.0.1": { "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dependencies": [ @@ -728,12 +857,27 @@ "@pkgjs/parseargs" ] }, + "js-tokens@4.0.0": { + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "jsesc@3.1.0": { + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==" + }, + "json5@2.2.3": { + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==" + }, "loupe@3.1.3": { "integrity": "sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==" }, "lru-cache@10.4.3": { "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" }, + "lru-cache@5.1.1": { + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dependencies": [ + "yallist" + ] + }, "magic-string@0.30.17": { "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", "dependencies": [ @@ -751,7 +895,7 @@ "make-dir@4.0.0": { "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dependencies": [ - "semver" + "semver@7.7.1" ] }, "micromatch@4.0.8": { @@ -788,6 +932,9 @@ "node-addon-api@7.1.1": { "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==" }, + "node-releases@2.0.19": { + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==" + }, "package-json-from-dist@1.0.1": { "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==" }, @@ -797,7 +944,7 @@ "path-scurry@1.11.1": { "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dependencies": [ - "lru-cache", + "lru-cache@10.4.3", "minipass" ] }, @@ -853,6 +1000,9 @@ "fsevents" ] }, + "semver@6.3.1": { + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" + }, "semver@7.7.1": { "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==" }, @@ -967,6 +1117,14 @@ "undici@7.3.0": { "integrity": "sha512-Qy96NND4Dou5jKoSJ2gm8ax8AJM/Ey9o9mz7KN1bb9GP+G0l20Zw8afxTnY2f4b7hmhn/z8aC2kfArVQlAhFBw==" }, + "update-browserslist-db@1.1.2_browserslist@4.24.4": { + "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==", + "dependencies": [ + "browserslist", + "escalade", + "picocolors" + ] + }, "vite-node@3.0.6_@types+node@22.7.3": { "integrity": "sha512-s51RzrTkXKJrhNbUzQRsarjmAae7VmMPAsRT7lppVpIg6mK3zGthP9Hgz0YQQKuNcF+Ii7DfYk3Fxz40jRmePw==", "dependencies": [ @@ -1045,6 +1203,9 @@ }, "ws@8.18.0": { "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==" + }, + "yallist@3.1.1": { + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" } }, "workspace": { @@ -1053,7 +1214,7 @@ "npm:@biomejs/biome@^1.9.4", "npm:@deno/vite-plugin@^1.0.4", "npm:@effect/vitest@0.19", - "npm:@vitest/coverage-v8@^3.0.6", + "npm:@vitest/coverage-istanbul@^3.0.6", "npm:@vitest/ui@^3.0.6", "npm:effect@^3.13.2", "npm:vitest@^3.0.6" diff --git a/vitest.config.ts b/vitest.config.ts index b3b119a..bc63107 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -3,7 +3,9 @@ import { defineConfig } from "vitest/config"; export default defineConfig({ test: { coverage: { - // enabled: true, + enabled: true, + // `v8` does't work. `istanbul` works, but lines are wonky. I don't trust it. + provider: "istanbul", }, sequence: { concurrent: true,