From 2157e9bec60d0ad7ae7f77d89b553f3d88baf701 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 17 Jan 2024 13:42:52 +0000 Subject: [PATCH 01/13] feat(e2e): add `cucumber` test runner --- examples/app-cucumber/app.vue | 5 + examples/app-cucumber/cucumber.json | 19 + examples/app-cucumber/nuxt.config.ts | 4 + examples/app-cucumber/package.json | 26 + .../features/home/features/home.feature | 6 + .../playwright.given-steps.ts | 6 + .../test/acceptance/features/support/hooks.ts | 8 + examples/app-cucumber/tsconfig.json | 3 + package.json | 5 + pnpm-lock.yaml | 515 ++++++++++++++++-- src/core/setup/cucumber.ts | 12 + src/core/setup/index.ts | 2 + src/core/types.ts | 2 +- 13 files changed, 566 insertions(+), 47 deletions(-) create mode 100644 examples/app-cucumber/app.vue create mode 100644 examples/app-cucumber/cucumber.json create mode 100644 examples/app-cucumber/nuxt.config.ts create mode 100644 examples/app-cucumber/package.json create mode 100644 examples/app-cucumber/test/acceptance/features/home/features/home.feature create mode 100644 examples/app-cucumber/test/acceptance/features/playwright/step-definitions/playwright.given-steps.ts create mode 100644 examples/app-cucumber/test/acceptance/features/support/hooks.ts create mode 100644 examples/app-cucumber/tsconfig.json create mode 100644 src/core/setup/cucumber.ts diff --git a/examples/app-cucumber/app.vue b/examples/app-cucumber/app.vue new file mode 100644 index 000000000..a495b7573 --- /dev/null +++ b/examples/app-cucumber/app.vue @@ -0,0 +1,5 @@ + diff --git a/examples/app-cucumber/cucumber.json b/examples/app-cucumber/cucumber.json new file mode 100644 index 000000000..2f2328825 --- /dev/null +++ b/examples/app-cucumber/cucumber.json @@ -0,0 +1,19 @@ +{ + "default": { + "paths": [ + "test/acceptance/features/**/*.feature" + ], + "import": [ + "test/acceptance/**/*.ts" + ], + "publish": false, + "format": [ + "summary", + "progress-bar", + "html:tests/acceptance/reports/cucumber-report.html", + "junit:tests/acceptance/reports/junit.xml", + "json:tests/acceptance/reports/report.json", + "message:tests/acceptance/reports/message.json" + ] + } +} diff --git a/examples/app-cucumber/nuxt.config.ts b/examples/app-cucumber/nuxt.config.ts new file mode 100644 index 000000000..8851e7746 --- /dev/null +++ b/examples/app-cucumber/nuxt.config.ts @@ -0,0 +1,4 @@ +// https://nuxt.com/docs/api/configuration/nuxt-config +export default defineNuxtConfig({ + devtools: { enabled: true } +}) diff --git a/examples/app-cucumber/package.json b/examples/app-cucumber/package.json new file mode 100644 index 000000000..23cd8bc7b --- /dev/null +++ b/examples/app-cucumber/package.json @@ -0,0 +1,26 @@ +{ + "name": "nuxt-app-cucumber", + "private": true, + "type": "module", + "scripts": { + "build": "nuxt build", + "dev": "nuxt dev", + "generate": "nuxt generate", + "preview": "nuxt preview", + "postinstall": "nuxt prepare", + "test": "NODE_OPTIONS='--loader ts-node/esm' NODE_ENV=test cucumber-js --config cucumber.json" + }, + "dependencies": { + "nuxt": "^3.9.1", + "vue": "^3.4.7", + "vue-router": "^4.2.5" + }, + "devDependencies": { + "@cucumber/cucumber": "^10.2.1", + "@nuxt/test-utils": "latest", + "globby": "^14.0.0", + "happy-dom": "^12.10.3", + "ts-node": "^10.9.2", + "typescript": "^5.3.3" + } +} diff --git a/examples/app-cucumber/test/acceptance/features/home/features/home.feature b/examples/app-cucumber/test/acceptance/features/home/features/home.feature new file mode 100644 index 000000000..35607b802 --- /dev/null +++ b/examples/app-cucumber/test/acceptance/features/home/features/home.feature @@ -0,0 +1,6 @@ +@tag-home-page + +Feature: 🏠 Home Page + + Scenario: 🏠 Home Page is displayed + Given the user goes on the home page \ No newline at end of file diff --git a/examples/app-cucumber/test/acceptance/features/playwright/step-definitions/playwright.given-steps.ts b/examples/app-cucumber/test/acceptance/features/playwright/step-definitions/playwright.given-steps.ts new file mode 100644 index 000000000..810a33e2b --- /dev/null +++ b/examples/app-cucumber/test/acceptance/features/playwright/step-definitions/playwright.given-steps.ts @@ -0,0 +1,6 @@ +import { Given } from '@cucumber/cucumber' +import { createPage } from '@nuxt/test-utils/e2e' + +Given(/^the user goes on the home page$/u, async function (): Promise { + await createPage('/') +}) diff --git a/examples/app-cucumber/test/acceptance/features/support/hooks.ts b/examples/app-cucumber/test/acceptance/features/support/hooks.ts new file mode 100644 index 000000000..695301ba2 --- /dev/null +++ b/examples/app-cucumber/test/acceptance/features/support/hooks.ts @@ -0,0 +1,8 @@ +import { fileURLToPath } from 'node:url' +import { setup } from '@nuxt/test-utils/e2e' + +await setup({ + runner: 'cucumber', + server: true, + rootDir: fileURLToPath(new URL('../../../..', import.meta.url)) +}) diff --git a/examples/app-cucumber/tsconfig.json b/examples/app-cucumber/tsconfig.json new file mode 100644 index 000000000..4b34df157 --- /dev/null +++ b/examples/app-cucumber/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "./.nuxt/tsconfig.json" +} diff --git a/package.json b/package.json index 10dafd877..2e87e707c 100644 --- a/package.json +++ b/package.json @@ -63,6 +63,7 @@ "vitest-environment-nuxt": "^1.0.0" }, "devDependencies": { + "@cucumber/cucumber": "^10.2.1", "@jest/globals": "29.7.0", "@nuxt/devtools": "1.0.8", "@nuxt/eslint-config": "0.2.0", @@ -93,6 +94,7 @@ "vue-tsc": "1.8.27" }, "peerDependencies": { + "@cucumber/cucumber": "^10.2.1", "@jest/globals": "^29.5.0", "@testing-library/vue": "^7.0.0 || ^8.0.1", "@vitest/ui": "^0.34.6 || ^1.0.0", @@ -107,6 +109,9 @@ "vue-router": "^4.0.0" }, "peerDependenciesMeta": { + "@cucumber/cucumber": { + "optional": true + }, "@testing-library/vue": { "optional": true }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 711db2927..18967f255 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -92,6 +92,9 @@ importers: specifier: ^3.3.4 version: 3.4.7(typescript@5.3.3) devDependencies: + '@cucumber/cucumber': + specifier: ^10.2.1 + version: 10.3.1 '@jest/globals': specifier: 29.7.0 version: 29.7.0 @@ -177,6 +180,37 @@ importers: specifier: 1.8.27 version: 1.8.27(typescript@5.3.3) + examples/app-cucumber: + dependencies: + nuxt: + specifier: ^3.9.1 + version: 3.9.1(@types/node@20.10.5)(eslint@8.56.0)(rollup@4.9.5)(typescript@5.3.3)(vite@5.0.11)(vue-tsc@1.8.27) + vue: + specifier: ^3.4.7 + version: 3.4.7(typescript@5.3.3) + vue-router: + specifier: ^4.2.5 + version: 4.2.5(vue@3.4.7) + devDependencies: + '@cucumber/cucumber': + specifier: ^10.2.1 + version: 10.3.1 + '@nuxt/test-utils': + specifier: workspace:* + version: link:../.. + globby: + specifier: ^14.0.0 + version: 14.0.0 + happy-dom: + specifier: ^12.10.3 + version: 12.10.3 + ts-node: + specifier: ^10.9.2 + version: 10.9.2(@types/node@20.10.5)(typescript@5.3.3) + typescript: + specifier: ^5.3.3 + version: 5.3.3 + examples/app-jest: dependencies: nuxt: @@ -404,7 +438,7 @@ packages: '@babel/traverse': 7.23.6 '@babel/types': 7.23.6 convert-source-map: 2.0.0 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -771,7 +805,7 @@ packages: '@babel/helper-split-export-declaration': 7.22.6 '@babel/parser': 7.23.6 '@babel/types': 7.23.6 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -793,6 +827,13 @@ packages: dependencies: mime: 3.0.0 + /@colors/colors@1.5.0: + resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} + engines: {node: '>=0.1.90'} + requiresBuild: true + dev: true + optional: true + /@cspotcode/source-map-support@0.8.1: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} @@ -800,6 +841,140 @@ packages: '@jridgewell/trace-mapping': 0.3.9 dev: true + /@cucumber/ci-environment@10.0.0: + resolution: {integrity: sha512-lRkiehckosIOdc7p1L44nZsttO5dVHFjpwKKWZ07x8SeoAdV/sPuGe1PISe0AmAowFGza62nMOgG4KaroGzwFQ==} + dev: true + + /@cucumber/cucumber-expressions@17.0.1: + resolution: {integrity: sha512-reR7/sNRmDWgdz8BtFuHEwpksPnAkHty7gxUC2n0iaUPmckv9G5I5i+Vonc6xwUHDb/hmHPz/DyUL+Iv4Ao96w==} + dependencies: + regexp-match-indices: 1.0.2 + dev: true + + /@cucumber/cucumber@10.3.1: + resolution: {integrity: sha512-0H0NkOXcYTCG1qCh3o0p1HPSMODGJmlHi1rm5yfoiMx5tJbBjxVNI2VVD2xtPWA+D6ehHQD9asewuzjMXrbPIw==} + engines: {node: 18 || >=20} + hasBin: true + dependencies: + '@cucumber/ci-environment': 10.0.0 + '@cucumber/cucumber-expressions': 17.0.1 + '@cucumber/gherkin': 27.0.0 + '@cucumber/gherkin-streams': 5.0.1(@cucumber/gherkin@27.0.0)(@cucumber/message-streams@4.0.1)(@cucumber/messages@24.0.1) + '@cucumber/gherkin-utils': 8.0.5 + '@cucumber/html-formatter': 21.2.0(@cucumber/messages@24.0.1) + '@cucumber/message-streams': 4.0.1(@cucumber/messages@24.0.1) + '@cucumber/messages': 24.0.1 + '@cucumber/tag-expressions': 6.1.0 + assertion-error-formatter: 3.0.0 + capital-case: 1.0.4 + chalk: 4.1.2 + cli-table3: 0.6.3 + commander: 10.0.1 + debug: 4.3.4(supports-color@8.1.1) + error-stack-parser: 2.1.4 + figures: 3.2.0 + glob: 10.3.10 + has-ansi: 4.0.1 + indent-string: 4.0.0 + is-installed-globally: 0.4.0 + is-stream: 2.0.1 + knuth-shuffle-seeded: 1.0.6 + lodash.merge: 4.6.2 + lodash.mergewith: 4.6.2 + luxon: 3.2.1 + mkdirp: 2.1.6 + mz: 2.7.0 + progress: 2.0.3 + read-pkg-up: 7.0.1 + resolve-pkg: 2.0.0 + semver: 7.5.3 + string-argv: 0.3.1 + strip-ansi: 6.0.1 + supports-color: 8.1.1 + tmp: 0.2.1 + type-fest: 4.9.0 + util-arity: 1.1.0 + xmlbuilder: 15.1.1 + yaml: 2.3.4 + yup: 1.2.0 + dev: true + + /@cucumber/gherkin-streams@5.0.1(@cucumber/gherkin@27.0.0)(@cucumber/message-streams@4.0.1)(@cucumber/messages@24.0.1): + resolution: {integrity: sha512-/7VkIE/ASxIP/jd4Crlp4JHXqdNFxPGQokqWqsaCCiqBiu5qHoKMxcWNlp9njVL/n9yN4S08OmY3ZR8uC5x74Q==} + hasBin: true + peerDependencies: + '@cucumber/gherkin': '>=22.0.0' + '@cucumber/message-streams': '>=4.0.0' + '@cucumber/messages': '>=17.1.1' + dependencies: + '@cucumber/gherkin': 27.0.0 + '@cucumber/message-streams': 4.0.1(@cucumber/messages@24.0.1) + '@cucumber/messages': 24.0.1 + commander: 9.1.0 + source-map-support: 0.5.21 + dev: true + + /@cucumber/gherkin-utils@8.0.5: + resolution: {integrity: sha512-kxM1OCDjYddF26VKc892PF0GokW4wUIl1PUz3TIXsPZgS39ExM1pF8oww8mlGFD2B0+4op/cSE3SSIME5H3aNw==} + hasBin: true + dependencies: + '@cucumber/gherkin': 26.2.0 + '@cucumber/messages': 22.0.0 + '@teppeis/multimaps': 3.0.0 + commander: 10.0.1 + source-map-support: 0.5.21 + dev: true + + /@cucumber/gherkin@26.2.0: + resolution: {integrity: sha512-iRSiK8YAIHAmLrn/mUfpAx7OXZ7LyNlh1zT89RoziSVCbqSVDxJS6ckEzW8loxs+EEXl0dKPQOXiDmbHV+C/fA==} + dependencies: + '@cucumber/messages': 22.0.0 + dev: true + + /@cucumber/gherkin@27.0.0: + resolution: {integrity: sha512-j5rCsjqzRiC3iVTier3sa0kzyNbkcAmF7xr7jKnyO7qDeK3Z8Ye1P3KSVpeQRMY+KCDJ3WbTDdyxH0FwfA/fIw==} + dependencies: + '@cucumber/messages': 22.0.0 + dev: true + + /@cucumber/html-formatter@21.2.0(@cucumber/messages@24.0.1): + resolution: {integrity: sha512-4OcSa12Y0v5e4ySDl67+QFTxCG/Y9fxGSkFqvm98ggpTvS7b75whwzupu+lM2lMBw+h3H6P8ZURQr0xQIAwE2A==} + peerDependencies: + '@cucumber/messages': '>=18' + dependencies: + '@cucumber/messages': 24.0.1 + dev: true + + /@cucumber/message-streams@4.0.1(@cucumber/messages@24.0.1): + resolution: {integrity: sha512-Kxap9uP5jD8tHUZVjTWgzxemi/0uOsbGjd4LBOSxcJoOCRbESFwemUzilJuzNTB8pcTQUh8D5oudUyxfkJOKmA==} + peerDependencies: + '@cucumber/messages': '>=17.1.1' + dependencies: + '@cucumber/messages': 24.0.1 + dev: true + + /@cucumber/messages@22.0.0: + resolution: {integrity: sha512-EuaUtYte9ilkxcKmfqGF9pJsHRUU0jwie5ukuZ/1NPTuHS1LxHPsGEODK17RPRbZHOFhqybNzG2rHAwThxEymg==} + dependencies: + '@types/uuid': 9.0.1 + class-transformer: 0.5.1 + reflect-metadata: 0.1.13 + uuid: 9.0.0 + dev: true + + /@cucumber/messages@24.0.1: + resolution: {integrity: sha512-dKfNkvgc6stSQIyeHk7p/221iqEZe1BP+e/Js8XKtSmc0sS8khKMvbSBwYVeonn/67/vYKiAyo6Eo0SzXd5Plw==} + dependencies: + '@types/uuid': 9.0.7 + class-transformer: 0.5.1 + reflect-metadata: 0.2.1 + uuid: 9.0.1 + dev: true + + /@cucumber/tag-expressions@6.1.0: + resolution: {integrity: sha512-+3DwRumrCJG27AtzCIL37A/X+A/gSfxOPLg8pZaruh5SLumsTmpvilwroVWBT2fPzmno/tGXypeK5a7NHU4RzA==} + dev: true + /@es-joy/jsdoccomment@0.41.0: resolution: {integrity: sha512-aKUhyn1QI5Ksbqcr3fFJj16p99QdjUxXAEuFst1Z47DRyoiMwivIH9MV/ARcJOCXVjPfjITciej8ZD2O/6qUmw==} engines: {node: '>=16'} @@ -1209,7 +1384,7 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) espree: 9.6.1 globals: 13.23.0 ignore: 5.3.0 @@ -1233,7 +1408,7 @@ packages: engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 2.0.1 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -1326,7 +1501,7 @@ packages: '@intlify/shared': 9.8.0 '@rollup/pluginutils': 5.1.0(rollup@4.9.5) '@vue/compiler-sfc': 3.4.7 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) fast-glob: 3.3.2 js-yaml: 4.1.0 json5: 2.2.3 @@ -1670,7 +1845,7 @@ packages: /@kwsites/file-exists@1.1.1: resolution: {integrity: sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==} dependencies: - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -1887,7 +2062,6 @@ packages: transitivePeerDependencies: - rollup - supports-color - dev: true /@nuxt/devtools-wizard@1.0.6: resolution: {integrity: sha512-44G+t2sQQii3TPnmktlrZryC4pw7t77GUV7wneEicLGU+w5I5ib7taVMJy8+yBC3kpTs5eYHOmqI63Dqvr73tw==} @@ -1918,7 +2092,6 @@ packages: prompts: 2.4.2 rc9: 2.1.1 semver: 7.5.4 - dev: true /@nuxt/devtools@1.0.6(idb-keyval@6.2.1)(nuxt@3.9.1)(rollup@4.9.5)(vite@5.0.11): resolution: {integrity: sha512-3P914IHBvKl2aYSrwaCAU9E1ndVNnGJR0Jn0XKUFktsbjU5kGlwLGrtRKXAw4Yz1VNiSZPrapVrFOQWbXRGRvg==} @@ -1986,6 +2159,7 @@ packages: - supports-color - utf-8-validate - xml2js + dev: true /@nuxt/devtools@1.0.6(nuxt@3.9.1)(rollup@4.9.5)(vite@5.0.11): resolution: {integrity: sha512-3P914IHBvKl2aYSrwaCAU9E1ndVNnGJR0Jn0XKUFktsbjU5kGlwLGrtRKXAw4Yz1VNiSZPrapVrFOQWbXRGRvg==} @@ -2103,7 +2277,6 @@ packages: - rollup - supports-color - utf-8-validate - dev: true /@nuxt/eslint-config@0.2.0(eslint@8.56.0): resolution: {integrity: sha512-NeJX8TLcnNAjQFiDs3XhP+9CHKK8jaKsP7eUyCSrQdgY7nqWe7VJx64lwzx5FTT4cW3RHMEyH+Y0qzLGYYoa/A==} @@ -2403,7 +2576,7 @@ packages: '@nuxt/kit': 3.9.1(rollup@4.9.5) '@rollup/plugin-yaml': 4.1.2(rollup@4.9.5) '@vue/compiler-sfc': 3.4.7 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) defu: 6.1.4 estree-walker: 3.0.3 is-https: 4.0.0 @@ -2905,6 +3078,11 @@ packages: resolution: {integrity: sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==} dev: true + /@teppeis/multimaps@3.0.0: + resolution: {integrity: sha512-ID7fosbc50TbT0MK0EG12O+gAP3W3Aa/Pz4DaTtQtEvlc9Odaqi0de+xuZ7Li2GtK4HzEX7IuRWS/JmZLksR3Q==} + engines: {node: '>=14'} + dev: true + /@testing-library/dom@9.3.3: resolution: {integrity: sha512-fB0R+fa3AUqbLHWyxXa2kGVtf1Fe1ZZFr0Zp6AIbIAzXb2mKbEXl+PCQNUOaq5lbTab5tfctfXRNsWXxa2f7Aw==} engines: {node: '>=14'} @@ -3106,6 +3284,14 @@ packages: resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==} dev: true + /@types/uuid@9.0.1: + resolution: {integrity: sha512-rFT3ak0/2trgvp4yYZo5iKFEPsET7vKydKF+VRCxlQ9bpheehyAJH89dAkaLEq/j/RZXJIqcgsmPJKUP1Z28HA==} + dev: true + + /@types/uuid@9.0.7: + resolution: {integrity: sha512-WUtIVRUZ9i5dYXefDEAI7sh9/O7jGvHg7Df/5O/gtH3Yabe5odI3UWopVR1qbPXQtvOxWu3mM4XxlYeZtMWF4g==} + dev: true + /@types/web-bluetooth@0.0.20: resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} dev: true @@ -3137,7 +3323,7 @@ packages: '@typescript-eslint/type-utils': 6.9.1(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/utils': 6.9.1(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/visitor-keys': 6.9.1 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) eslint: 8.56.0 graphemer: 1.4.0 ignore: 5.3.0 @@ -3163,7 +3349,7 @@ packages: '@typescript-eslint/types': 6.9.1 '@typescript-eslint/typescript-estree': 6.9.1(typescript@5.3.3) '@typescript-eslint/visitor-keys': 6.9.1 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) eslint: 8.56.0 typescript: 5.3.3 transitivePeerDependencies: @@ -3190,7 +3376,7 @@ packages: dependencies: '@typescript-eslint/typescript-estree': 6.9.1(typescript@5.3.3) '@typescript-eslint/utils': 6.9.1(eslint@8.56.0)(typescript@5.3.3) - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) eslint: 8.56.0 ts-api-utils: 1.0.3(typescript@5.3.3) typescript: 5.3.3 @@ -3214,7 +3400,7 @@ packages: dependencies: '@typescript-eslint/types': 6.9.1 '@typescript-eslint/visitor-keys': 6.9.1 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 @@ -3644,7 +3830,7 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} dependencies: - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -3652,7 +3838,7 @@ packages: resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==} engines: {node: '>= 14'} dependencies: - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -3681,6 +3867,11 @@ packages: dependencies: type-fest: 0.21.3 + /ansi-regex@4.1.1: + resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==} + engines: {node: '>=6'} + dev: true + /ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -3849,6 +4040,14 @@ packages: is-shared-array-buffer: 1.0.2 dev: true + /assertion-error-formatter@3.0.0: + resolution: {integrity: sha512-6YyAVLrEze0kQ7CmJfUgrLHb+Y7XghmL2Ie7ijVa2Y9ynP3LV+VDiwFk62Dn0qtqbmY0BT0ss6p1xxpiF2PYbQ==} + dependencies: + diff: 4.0.2 + pad-right: 0.2.2 + repeat-string: 1.6.1 + dev: true + /assertion-error@1.1.0: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} dev: true @@ -4147,6 +4346,14 @@ packages: /caniuse-lite@1.0.30001570: resolution: {integrity: sha512-+3e0ASu4sw1SWaoCtvPeyXp+5PsjigkSt8OXZbF9StH5pQWbxEjLAZE3n8Aup5udop1uRiKA7a4utUk/uoSpUw==} + /capital-case@1.0.4: + resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + upper-case-first: 2.0.2 + dev: true + /ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} dev: true @@ -4267,6 +4474,10 @@ packages: resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==} dev: true + /class-transformer@0.5.1: + resolution: {integrity: sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw==} + dev: true + /clean-regexp@1.0.0: resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} engines: {node: '>=4'} @@ -4281,6 +4492,15 @@ packages: /clear@0.1.0: resolution: {integrity: sha512-qMjRnoL+JDPJHeLePZJuao6+8orzHMGP04A8CdwCNsKhRbOnKRjefxONR7bwILT3MHecxKBjHkKL/tkZ8r4Uzw==} + /cli-table3@0.6.3: + resolution: {integrity: sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==} + engines: {node: 10.* || >= 12.*} + dependencies: + string-width: 4.2.3 + optionalDependencies: + '@colors/colors': 1.5.0 + dev: true + /clipboardy@3.0.0: resolution: {integrity: sha512-Su+uU5sr1jkUy1sGRpLKjKrvEOVXgSgiSInwa/qeID6aJ07yh+5NWc3h2QfjHjBnfX4LhtFcuAWKUsJ3r+fjbg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -4371,6 +4591,11 @@ packages: resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} engines: {node: '>= 12'} + /commander@9.1.0: + resolution: {integrity: sha512-i0/MaqBtdbnJ4XQs4Pmyb+oFQl+q0lsAmokVUH92SlSw4fkeAcG3bVon+Qt7hmtF+u3Het6o4VgrcY3qAoEB6w==} + engines: {node: ^12.20.0 || >=14} + dev: true + /comment-parser@1.4.1: resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} engines: {node: '>= 12.0.0'} @@ -4613,7 +4838,7 @@ packages: ms: 2.1.3 dev: true - /debug@4.3.4: + /debug@4.3.4(supports-color@8.1.1): resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} peerDependencies: @@ -4623,6 +4848,7 @@ packages: optional: true dependencies: ms: 2.1.2 + supports-color: 8.1.1 /decimal.js@10.4.3: resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} @@ -4906,7 +5132,7 @@ packages: resolution: {integrity: sha512-9Z0qLB0NIisTRt1DZ/8U2k12RJn8yls/nXMZLn+/N8hANT3TcYjKFKcwbw5zFQiN4NTde3TSY9zb79e1ij6j9Q==} dependencies: '@socket.io/component-emitter': 3.1.0 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) engine.io-parser: 5.2.1 ws: 8.11.0 xmlhttprequest-ssl: 2.0.0 @@ -4948,6 +5174,12 @@ packages: /error-stack-parser-es@0.1.1: resolution: {integrity: sha512-g/9rfnvnagiNf+DRMHEVGuGuIBlCIMDFoTA616HaP2l9PlCjGjVhD98PNbVSJvmK4TttqT5mV5tInMhoFgi+aA==} + /error-stack-parser@2.1.4: + resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} + dependencies: + stackframe: 1.3.4 + dev: true + /es-abstract@1.22.3: resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} engines: {node: '>= 0.4'} @@ -5210,7 +5442,7 @@ packages: '@es-joy/jsdoccomment': 0.41.0 are-docs-informative: 0.0.2 comment-parser: 1.4.1 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) escape-string-regexp: 4.0.0 eslint: 8.56.0 esquery: 1.5.0 @@ -5298,7 +5530,7 @@ packages: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -5489,6 +5721,13 @@ packages: resolution: {integrity: sha512-/exOvEuc+/iaUm105QIiOt4LpBdMTWsXxqR0HDF35vx3fmaKzw7354gTilCh5rkzEt8WYyG//ku3h3nRmd7CHQ==} dev: true + /figures@3.2.0: + resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} + engines: {node: '>=8'} + dependencies: + escape-string-regexp: 1.0.5 + dev: true + /file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -5769,6 +6008,13 @@ packages: dependencies: ini: 4.1.1 + /global-dirs@3.0.1: + resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} + engines: {node: '>=10'} + dependencies: + ini: 2.0.0 + dev: true + /globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} @@ -5860,6 +6106,13 @@ packages: whatwg-encoding: 2.0.0 whatwg-mimetype: 3.0.0 + /has-ansi@4.0.1: + resolution: {integrity: sha512-Qr4RtTm30xvEdqUXbSBVWDu+PrTokJOwe/FU+VdfJPk+MXAPoeOzKpRyrDTnZIJwAkQ4oBLTU53nu0HrkF/Z2A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 4.1.1 + dev: true + /has-bigints@1.0.2: resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} dev: true @@ -6038,7 +6291,7 @@ packages: engines: {node: '>= 14'} dependencies: agent-base: 7.1.0 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -6051,7 +6304,7 @@ packages: engines: {node: '>= 6'} dependencies: agent-base: 6.0.2 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -6060,7 +6313,7 @@ packages: engines: {node: '>= 14'} dependencies: agent-base: 7.1.0 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -6137,6 +6390,11 @@ packages: /ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + /ini@2.0.0: + resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} + engines: {node: '>=10'} + dev: true + /ini@4.1.1: resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -6156,7 +6414,7 @@ packages: dependencies: '@ioredis/commands': 1.2.0 cluster-key-slot: 1.1.2 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) denque: 2.1.0 lodash.defaults: 4.2.0 lodash.isarguments: 3.1.0 @@ -6299,6 +6557,14 @@ packages: dependencies: is-docker: 3.0.0 + /is-installed-globally@0.4.0: + resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} + engines: {node: '>=10'} + dependencies: + global-dirs: 3.0.1 + is-path-inside: 3.0.3 + dev: true + /is-installed-globally@1.0.0: resolution: {integrity: sha512-K55T22lfpQ63N4KEN57jZUAaAYqYHEe8veb/TycJRk9DdSCLLcovXz/mL6mOnhQaZsQGwPhuFopdQIlqGSEjiQ==} engines: {node: '>=18'} @@ -6493,7 +6759,7 @@ packages: resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} engines: {node: '>=10'} dependencies: - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) istanbul-lib-coverage: 3.2.1 source-map: 0.6.1 transitivePeerDependencies: @@ -7088,6 +7354,12 @@ packages: /knitwork@1.0.0: resolution: {integrity: sha512-dWl0Dbjm6Xm+kDxhPQJsCBTxrJzuGl0aP9rhr+TG8D3l+GL90N8O8lYUi7dTSAN2uuDqCtNgb6aEuQH5wsiV8Q==} + /knuth-shuffle-seeded@1.0.6: + resolution: {integrity: sha512-9pFH0SplrfyKyojCLxZfMcvkhf5hH0d+UwR9nTVJ/DDQJGuzcXjTwB7TP7sDfehSudlGGaOLblmEWqv04ERVWg==} + dependencies: + seed-random: 2.2.0 + dev: true + /kolorist@1.8.0: resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} @@ -7184,6 +7456,10 @@ packages: /lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + /lodash.mergewith@4.6.2: + resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} + dev: true + /lodash.pick@4.4.0: resolution: {integrity: sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==} @@ -7203,6 +7479,12 @@ packages: get-func-name: 2.0.2 dev: true + /lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + dependencies: + tslib: 2.6.2 + dev: true + /lru-cache@10.0.3: resolution: {integrity: sha512-B7gr+F6MkqB3uzINHXNctGieGsRTMwIBgxkp0yq/5BwcuDzD4A8wQpHQW6vDAm1uKSLQghmRdD9sKqf2vJ1cEg==} engines: {node: 14 || >=16.14} @@ -7218,6 +7500,11 @@ packages: dependencies: yallist: 4.0.0 + /luxon@3.2.1: + resolution: {integrity: sha512-QrwPArQCNLAKGO/C+ZIilgIuDnEnKx5QYODdDtbFaxzsbZcc/a7WFq7MhsVYgRlwawLtvOUESTlfJ+hc/USqPg==} + engines: {node: '>=12'} + dev: true + /lz-string@1.5.0: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true @@ -7667,7 +7954,7 @@ packages: resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} dependencies: '@types/debug': 4.1.12 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) decode-named-character-reference: 1.0.2 devlop: 1.1.0 micromark-core-commonmark: 2.0.0 @@ -7825,6 +8112,12 @@ packages: engines: {node: '>=10'} hasBin: true + /mkdirp@2.1.6: + resolution: {integrity: sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==} + engines: {node: '>=10'} + hasBin: true + dev: true + /mkdist@1.3.0(typescript@5.3.3): resolution: {integrity: sha512-ZQrUvcL7LkRdzMREpDyg9AT18N9Tl5jc2qeKAUeEw0KGsgykbHbuRvysGAzTuGtwuSg0WQyNit5jh/k+Er3JEg==} hasBin: true @@ -7992,6 +8285,13 @@ packages: - idb-keyval - supports-color + /no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + dependencies: + lower-case: 2.0.2 + tslib: 2.6.2 + dev: true + /node-addon-api@7.0.0: resolution: {integrity: sha512-vgbBJTS4m5/KkE16t5Ly0WW9hz46swAstv0hYYwMtbG7AznRhNyfLRe8HZAiWIpcHzoO7HxhLuBQj9rJ/Ho0ZA==} @@ -8306,7 +8606,7 @@ packages: optional: true dependencies: '@nuxt/devalue': 2.0.2 - '@nuxt/devtools': 1.0.6(idb-keyval@6.2.1)(nuxt@3.9.1)(rollup@4.9.5)(vite@5.0.11) + '@nuxt/devtools': 1.0.8(nuxt@3.9.1)(rollup@4.9.5)(vite@5.0.11) '@nuxt/kit': 3.9.1(rollup@4.9.5) '@nuxt/schema': 3.9.1(rollup@4.9.5) '@nuxt/telemetry': 2.5.3(rollup@4.9.5) @@ -8340,11 +8640,11 @@ packages: nypm: 0.3.4 ofetch: 1.3.3 ohash: 1.1.3 - pathe: 1.1.1 + pathe: 1.1.2 perfect-debounce: 1.0.0 pkg-types: 1.0.3 radix3: 1.1.0 - scule: 1.1.1 + scule: 1.2.0 std-env: 3.7.0 strip-literal: 2.0.0 ufo: 1.3.2 @@ -8410,7 +8710,7 @@ packages: optional: true dependencies: '@nuxt/devalue': 2.0.2 - '@nuxt/devtools': 1.0.6(nuxt@3.9.1)(rollup@4.9.5)(vite@5.0.11) + '@nuxt/devtools': 1.0.8(nuxt@3.9.1)(rollup@4.9.5)(vite@5.0.11) '@nuxt/kit': 3.9.1(rollup@4.9.5) '@nuxt/schema': 3.9.1(rollup@4.9.5) '@nuxt/telemetry': 2.5.3(rollup@4.9.5) @@ -8444,11 +8744,11 @@ packages: nypm: 0.3.4 ofetch: 1.3.3 ohash: 1.1.3 - pathe: 1.1.1 + pathe: 1.1.2 perfect-debounce: 1.0.0 pkg-types: 1.0.3 radix3: 1.1.0 - scule: 1.1.1 + scule: 1.2.0 std-env: 3.7.0 strip-literal: 2.0.0 ufo: 1.3.2 @@ -8714,6 +9014,13 @@ packages: - bluebird - supports-color + /pad-right@0.2.2: + resolution: {integrity: sha512-4cy8M95ioIGolCoMmm2cMntGR1lPLEbOMzOKu8bzjuJP6JpzEMQcDHmh7hHLYGgob+nKe1YHFMaG4V59HQa89g==} + engines: {node: '>=0.10.0'} + dependencies: + repeat-string: 1.6.1 + dev: true + /parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} @@ -9163,6 +9470,11 @@ packages: /process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + /progress@2.0.3: + resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} + engines: {node: '>=0.4.0'} + dev: true + /promise-inflight@1.0.1: resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} peerDependencies: @@ -9185,6 +9497,10 @@ packages: kleur: 3.0.3 sisteransi: 1.0.5 + /property-expr@2.0.6: + resolution: {integrity: sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==} + dev: true + /property-information@6.4.0: resolution: {integrity: sha512-9t5qARVofg2xQqKtytzt+lZ4d1Qvj8t5B8fEwXK6qOfgRLgH/b13QlgEyDh033NOS31nXeFbYv7CLUDG1CeifQ==} dev: true @@ -9318,10 +9634,24 @@ packages: dependencies: redis-errors: 1.2.0 + /reflect-metadata@0.1.13: + resolution: {integrity: sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==} + dev: true + + /reflect-metadata@0.2.1: + resolution: {integrity: sha512-i5lLI6iw9AU3Uu4szRNPPEkomnkjRTaVt9hy/bn5g/oSzekBSMeLZblcjP74AW0vBabqERLLIrz+gR8QYR54Tw==} + dev: true + /regenerator-runtime@0.14.0: resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} dev: true + /regexp-match-indices@1.0.2: + resolution: {integrity: sha512-DwZuAkt8NF5mKwGGER1EGh2PRqyvhRhhLviH+R8y8dIuaQROlUfXjt4s9ZTXstIsSkptf06BSvwcEmmfheJJWQ==} + dependencies: + regexp-tree: 0.1.27 + dev: true + /regexp-tree@0.1.27: resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} hasBin: true @@ -9465,6 +9795,11 @@ packages: unified: 11.0.4 dev: true + /repeat-string@1.6.1: + resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} + engines: {node: '>=0.10'} + dev: true + /require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -9487,6 +9822,13 @@ packages: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} + /resolve-pkg@2.0.0: + resolution: {integrity: sha512-+1lzwXehGCXSeryaISr6WujZzowloigEofRB+dj75y9RRa/obVcYgbHJd53tdYw8pvZj8GojXaaENws8Ktw/hQ==} + engines: {node: '>=8'} + dependencies: + resolve-from: 5.0.0 + dev: true + /resolve.exports@2.0.2: resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} engines: {node: '>=10'} @@ -9619,6 +9961,10 @@ packages: /scule@1.2.0: resolution: {integrity: sha512-CRCmi5zHQnSoeCik9565PONMg0kfkvYmcSqrbOJY4txFfy1wvVULV4FDaiXhUblUgahdqz3F2NwHZ8i4eBTwUw==} + /seed-random@2.2.0: + resolution: {integrity: sha512-34EQV6AAHQGhoc0tn/96a9Fsi6v2xdqe/dMUwljGRaFOzR3EgRmECvD0O8vi8X+/uQ50LGHfkNu/Eue5TPKZkQ==} + dev: true + /semver@5.7.2: resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} hasBin: true @@ -9628,6 +9974,14 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true + /semver@7.5.3: + resolution: {integrity: sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + /semver@7.5.4: resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} engines: {node: '>=10'} @@ -9769,7 +10123,7 @@ packages: dependencies: '@kwsites/file-exists': 1.1.1 '@kwsites/promise-deferred': 1.1.1 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -9778,10 +10132,9 @@ packages: dependencies: '@kwsites/file-exists': 1.1.1 '@kwsites/promise-deferred': 1.1.1 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color - dev: true /sirv@2.0.4: resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} @@ -9831,7 +10184,7 @@ packages: engines: {node: '>=10.0.0'} dependencies: '@socket.io/component-emitter': 3.1.0 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) engine.io-client: 6.5.3 socket.io-parser: 4.2.4 transitivePeerDependencies: @@ -9845,7 +10198,7 @@ packages: engines: {node: '>=10.0.0'} dependencies: '@socket.io/component-emitter': 3.1.0 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color dev: true @@ -9855,7 +10208,7 @@ packages: engines: {node: '>= 14'} dependencies: agent-base: 7.1.0 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) socks: 2.7.1 transitivePeerDependencies: - supports-color @@ -9942,6 +10295,10 @@ packages: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} dev: true + /stackframe@1.3.4: + resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} + dev: true + /standard-as-callback@2.1.0: resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} @@ -9965,6 +10322,11 @@ packages: fast-fifo: 1.3.2 queue-tick: 1.0.1 + /string-argv@0.3.1: + resolution: {integrity: sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==} + engines: {node: '>=0.6.19'} + dev: true + /string-length@4.0.2: resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} engines: {node: '>=10'} @@ -10124,7 +10486,6 @@ packages: engines: {node: '>=10'} dependencies: has-flag: 4.0.0 - dev: true /supports-color@9.4.0: resolution: {integrity: sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==} @@ -10210,6 +10571,10 @@ packages: any-promise: 1.3.0 dev: true + /tiny-case@1.0.3: + resolution: {integrity: sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==} + dev: true + /tiny-invariant@1.3.1: resolution: {integrity: sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==} @@ -10231,6 +10596,13 @@ packages: resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} engines: {node: '>=12'} + /tmp@0.2.1: + resolution: {integrity: sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==} + engines: {node: '>=8.17.0'} + dependencies: + rimraf: 3.0.2 + dev: true + /tmpl@1.0.5: resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} dev: true @@ -10249,6 +10621,10 @@ packages: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} + /toposort@2.0.2: + resolution: {integrity: sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==} + dev: true + /tosource@2.0.0-alpha.3: resolution: {integrity: sha512-KAB2lrSS48y91MzFPFuDg4hLbvDiyTjOVgaK7Erw+5AmZXNq4sFRVn8r6yxSLuNs15PaokrDRpS61ERY9uZOug==} engines: {node: '>=10'} @@ -10371,12 +10747,16 @@ packages: strip-bom: 3.0.0 dev: true + /tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + dev: true + /tuf-js@2.1.0: resolution: {integrity: sha512-eD7YPPjVlMzdggrOeE8zwoegUaG/rt6Bt3jwoQPunRiNVzgcCE009UDFJKJjG+Gk9wFu6W/Vi+P5d/5QpdD9jA==} engines: {node: ^16.14.0 || >=18.0.0} dependencies: '@tufjs/models': 2.0.0 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) make-fetch-happen: 13.0.0 transitivePeerDependencies: - supports-color @@ -10410,10 +10790,20 @@ packages: engines: {node: '>=8'} dev: true + /type-fest@2.19.0: + resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} + engines: {node: '>=12.20'} + dev: true + /type-fest@3.13.1: resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} engines: {node: '>=14.16'} + /type-fest@4.9.0: + resolution: {integrity: sha512-KS/6lh/ynPGiHD/LnAobrEFq3Ad4pBzOlJ1wAnJx9N4EYoqFhMfLIBjUT2UEx4wg5ZE+cC1ob6DCSpppVo+rtg==} + engines: {node: '>=16'} + dev: true + /typed-array-buffer@1.0.0: resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} engines: {node: '>= 0.4'} @@ -10773,6 +11163,12 @@ packages: escalade: 3.1.1 picocolors: 1.0.0 + /upper-case-first@2.0.2: + resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==} + dependencies: + tslib: 2.6.2 + dev: true + /uqr@0.1.2: resolution: {integrity: sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==} @@ -10790,9 +11186,23 @@ packages: /urlpattern-polyfill@8.0.2: resolution: {integrity: sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==} + /util-arity@1.1.0: + resolution: {integrity: sha512-kkyIsXKwemfSy8ZEoaIz06ApApnWsk5hQO0vLjZS6UkBiGiW++Jsyb8vSBoc0WKlffGoGs5yYy/j5pp8zckrFA==} + dev: true + /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + /uuid@9.0.0: + resolution: {integrity: sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==} + hasBin: true + dev: true + + /uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true + dev: true + /v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} dev: true @@ -10846,7 +11256,7 @@ packages: hasBin: true dependencies: cac: 6.7.14 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) pathe: 1.1.2 picocolors: 1.0.0 vite: 5.0.11(@types/node@20.10.5) @@ -10867,7 +11277,7 @@ packages: hasBin: true dependencies: cac: 6.7.14 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) pathe: 1.1.2 picocolors: 1.0.0 vite: 5.0.11(@types/node@20.10.5) @@ -11000,7 +11410,7 @@ packages: '@antfu/utils': 0.7.7 '@nuxt/kit': 3.9.1(rollup@4.9.5) '@rollup/pluginutils': 5.1.0(rollup@4.9.5) - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) error-stack-parser-es: 0.1.1 fs-extra: 11.2.0 open: 9.1.0 @@ -11098,7 +11508,7 @@ packages: acorn-walk: 8.3.1 cac: 6.7.14 chai: 4.3.10 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) execa: 8.0.1 happy-dom: 12.10.3 jsdom: 23.0.1 @@ -11189,7 +11599,7 @@ packages: peerDependencies: eslint: '>=6.0.0' dependencies: - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) eslint: 8.56.0 eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 @@ -11486,7 +11896,6 @@ packages: optional: true utf-8-validate: optional: true - dev: true /xml-name-validator@4.0.0: resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} @@ -11497,6 +11906,11 @@ packages: resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} engines: {node: '>=18'} + /xmlbuilder@15.1.1: + resolution: {integrity: sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==} + engines: {node: '>=8.0'} + dev: true + /xmlchars@2.2.0: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} @@ -11558,6 +11972,15 @@ packages: engines: {node: '>=12.20'} dev: true + /yup@1.2.0: + resolution: {integrity: sha512-PPqYKSAXjpRCgLgLKVGPA33v5c/WgEx3wi6NFjIiegz90zSwyMpvTFp/uGcVnnbx6to28pgnzp/q8ih3QRjLMQ==} + dependencies: + property-expr: 2.0.6 + tiny-case: 1.0.3 + toposort: 2.0.2 + type-fest: 2.19.0 + dev: true + /zhead@2.2.4: resolution: {integrity: sha512-8F0OI5dpWIA5IGG5NHUg9staDwz/ZPxZtvGVf01j7vHqSyZ0raHY+78atOVxRqb73AotX22uV1pXt3gYSstGag==} diff --git a/src/core/setup/cucumber.ts b/src/core/setup/cucumber.ts new file mode 100644 index 000000000..6830a86f7 --- /dev/null +++ b/src/core/setup/cucumber.ts @@ -0,0 +1,12 @@ +import type { TestHooks } from '../types' + +export default async function setupJest (hooks: TestHooks) { + const { After, AfterAll, Before, BeforeAll } = await import('@cucumber/cucumber') + + BeforeAll({ timeout: hooks.ctx.options.setupTimeout }, hooks.setup) + Before({}, hooks.beforeEach) + + After(hooks.afterEach) + AfterAll(hooks.afterAll) +} + diff --git a/src/core/setup/index.ts b/src/core/setup/index.ts index f03a94868..0e91d5b2c 100644 --- a/src/core/setup/index.ts +++ b/src/core/setup/index.ts @@ -3,10 +3,12 @@ import { buildFixture, loadFixture } from '../nuxt' import { startServer, stopServer } from '../server' import { createBrowser } from '../browser' import type { TestHooks, TestOptions } from '../types' +import setupCucumber from './cucumber' import setupJest from './jest' import setupVitest from './vitest' export const setupMaps = { + cucumber: setupCucumber, jest: setupJest, vitest: setupVitest } diff --git a/src/core/types.ts b/src/core/types.ts index c994cc997..0873d55a6 100644 --- a/src/core/types.ts +++ b/src/core/types.ts @@ -2,7 +2,7 @@ import type { Nuxt, NuxtConfig } from '@nuxt/schema' import type { ExecaChildProcess } from 'execa' import type { Browser, LaunchOptions } from 'playwright-core' -export type TestRunner = 'vitest' | 'jest' +export type TestRunner = 'vitest' | 'jest' | 'cucumber' export interface TestOptions { testDir: string From 5637c201d7d94f9ad26fd9e0a7cb14366dcfe5da Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 17 Jan 2024 13:59:57 +0000 Subject: [PATCH 02/13] refactor: fix function name --- src/core/setup/cucumber.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/setup/cucumber.ts b/src/core/setup/cucumber.ts index 6830a86f7..6cc781698 100644 --- a/src/core/setup/cucumber.ts +++ b/src/core/setup/cucumber.ts @@ -1,6 +1,6 @@ import type { TestHooks } from '../types' -export default async function setupJest (hooks: TestHooks) { +export default async function setupCucumber (hooks: TestHooks) { const { After, AfterAll, Before, BeforeAll } = await import('@cucumber/cucumber') BeforeAll({ timeout: hooks.ctx.options.setupTimeout }, hooks.setup) From 1a2e3e62b26189ed9d8febcd9e0fa39260f6827a Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 17 Jan 2024 14:03:00 +0000 Subject: [PATCH 03/13] test: try removing cucumber format options --- examples/app-cucumber/cucumber.json | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/examples/app-cucumber/cucumber.json b/examples/app-cucumber/cucumber.json index 2f2328825..31b5ffa04 100644 --- a/examples/app-cucumber/cucumber.json +++ b/examples/app-cucumber/cucumber.json @@ -8,12 +8,7 @@ ], "publish": false, "format": [ - "summary", - "progress-bar", - "html:tests/acceptance/reports/cucumber-report.html", - "junit:tests/acceptance/reports/junit.xml", - "json:tests/acceptance/reports/report.json", - "message:tests/acceptance/reports/message.json" + "summary" ] } } From 797653c11e33bbfb602355fe0667df59965c64ed Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 17 Jan 2024 14:11:01 +0000 Subject: [PATCH 04/13] chore: simplify --- examples/app-cucumber/package.json | 7 ++----- pnpm-lock.yaml | 9 --------- 2 files changed, 2 insertions(+), 14 deletions(-) diff --git a/examples/app-cucumber/package.json b/examples/app-cucumber/package.json index 23cd8bc7b..0fe0add86 100644 --- a/examples/app-cucumber/package.json +++ b/examples/app-cucumber/package.json @@ -8,7 +8,7 @@ "generate": "nuxt generate", "preview": "nuxt preview", "postinstall": "nuxt prepare", - "test": "NODE_OPTIONS='--loader ts-node/esm' NODE_ENV=test cucumber-js --config cucumber.json" + "test": "NODE_OPTIONS='--loader ts-node/esm' NODE_ENV=test cucumber-js" }, "dependencies": { "nuxt": "^3.9.1", @@ -18,9 +18,6 @@ "devDependencies": { "@cucumber/cucumber": "^10.2.1", "@nuxt/test-utils": "latest", - "globby": "^14.0.0", - "happy-dom": "^12.10.3", - "ts-node": "^10.9.2", - "typescript": "^5.3.3" + "ts-node": "^10.9.2" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f1886c903..70d62b59d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -198,18 +198,9 @@ importers: '@nuxt/test-utils': specifier: workspace:* version: link:../.. - globby: - specifier: ^14.0.0 - version: 14.0.0 - happy-dom: - specifier: ^12.10.3 - version: 12.10.3 ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@20.10.5)(typescript@5.3.3) - typescript: - specifier: ^5.3.3 - version: 5.3.3 examples/app-jest: dependencies: From 3938a1eccc0a4a524c85e62bb30e29aa00f00f9e Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 17 Jan 2024 14:11:47 +0000 Subject: [PATCH 05/13] chore: debug --- examples/app-cucumber/package.json | 2 +- src/core/setup/cucumber.ts | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/examples/app-cucumber/package.json b/examples/app-cucumber/package.json index 0fe0add86..aaaf32c1e 100644 --- a/examples/app-cucumber/package.json +++ b/examples/app-cucumber/package.json @@ -8,7 +8,7 @@ "generate": "nuxt generate", "preview": "nuxt preview", "postinstall": "nuxt prepare", - "test": "NODE_OPTIONS='--loader ts-node/esm' NODE_ENV=test cucumber-js" + "test": "DEBUG=* NODE_OPTIONS='--loader ts-node/esm' NODE_ENV=test cucumber-js" }, "dependencies": { "nuxt": "^3.9.1", diff --git a/src/core/setup/cucumber.ts b/src/core/setup/cucumber.ts index 6cc781698..ff6a988b8 100644 --- a/src/core/setup/cucumber.ts +++ b/src/core/setup/cucumber.ts @@ -3,7 +3,13 @@ import type { TestHooks } from '../types' export default async function setupCucumber (hooks: TestHooks) { const { After, AfterAll, Before, BeforeAll } = await import('@cucumber/cucumber') - BeforeAll({ timeout: hooks.ctx.options.setupTimeout }, hooks.setup) + BeforeAll({ timeout: hooks.ctx.options.setupTimeout }, async () => { + try { + await hooks.setup() + } catch (error) { + console.error(error) + } + }) Before({}, hooks.beforeEach) After(hooks.afterEach) From ca96ff9a6c272f8040fd9240bebd5e159df8889e Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 17 Jan 2024 14:13:35 +0000 Subject: [PATCH 06/13] chore: update lockfile --- pnpm-lock.yaml | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 70d62b59d..da0ef6e2d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2044,6 +2044,7 @@ packages: transitivePeerDependencies: - rollup - supports-color + dev: true /@nuxt/devtools-kit@1.0.8(nuxt@3.9.1)(rollup@4.9.5)(vite@5.0.11): resolution: {integrity: sha512-j7bNZmoAXQ1a8qv6j6zk4c/aekrxYqYVQM21o/Hy4XHCUq4fajSgpoc8mjyWJSTfpkOmuLyEzMexpDWiIVSr6A==} @@ -2074,6 +2075,7 @@ packages: prompts: 2.4.2 rc9: 2.1.1 semver: 7.5.4 + dev: true /@nuxt/devtools-wizard@1.0.8: resolution: {integrity: sha512-RxyOlM7Isk5npwXwDJ/rjm9ekX5sTNG0LS0VOBMdSx+D5nlRPMRr/r9yO+9WQDyzPLClLzHaXRHBWLPlRX3IMw==} @@ -2224,6 +2226,7 @@ packages: - supports-color - utf-8-validate - xml2js + dev: true /@nuxt/devtools@1.0.8(nuxt@3.9.1)(rollup@4.9.5)(vite@5.0.11): resolution: {integrity: sha512-o6aBFEBxc8OgVHV4OPe2g0q9tFIe9HiTxRiJnlTJ+jHvOQsBLS651ArdVtwLChf9UdMouFlpLLJ1HteZqTbtsQ==} @@ -2501,6 +2504,7 @@ packages: - vls - vti - vue-tsc + dev: true /@nuxt/vite-builder@3.9.1(eslint@8.56.0)(rollup@4.9.5)(typescript@5.3.3)(vue-tsc@1.8.27)(vue@3.4.7): resolution: {integrity: sha512-V0GxTYuajNlf+kX3ak7klaFnkQ43MkXY2mAYqdAuUytvjx/S0O4hESy6gU1r/3no7IZAdoaEN27KLB4OOJ7vag==} @@ -3680,6 +3684,7 @@ packages: path-browserify: 1.0.1 typescript: 5.3.3 vue-template-compiler: 2.7.15 + dev: true /@vue/language-core@1.8.27(typescript@5.3.3): resolution: {integrity: sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==} @@ -8497,7 +8502,7 @@ packages: optional: true dependencies: '@nuxt/devalue': 2.0.2 - '@nuxt/devtools': 1.0.6(nuxt@3.9.1)(rollup@4.9.5)(vite@5.0.11) + '@nuxt/devtools': 1.0.8(nuxt@3.9.1)(rollup@4.9.5)(vite@5.0.11) '@nuxt/kit': 3.9.1(rollup@4.9.5) '@nuxt/schema': 3.9.1(rollup@4.9.5) '@nuxt/telemetry': 2.5.3(rollup@4.9.5) @@ -8532,11 +8537,11 @@ packages: nypm: 0.3.4 ofetch: 1.3.3 ohash: 1.1.3 - pathe: 1.1.1 + pathe: 1.1.2 perfect-debounce: 1.0.0 pkg-types: 1.0.3 radix3: 1.1.0 - scule: 1.1.1 + scule: 1.2.0 std-env: 3.7.0 strip-literal: 2.0.0 ufo: 1.3.2 @@ -8692,6 +8697,7 @@ packages: - vti - vue-tsc - xml2js + dev: true /nuxt@3.9.1(eslint@8.56.0)(rollup@4.9.5)(typescript@5.3.3)(vite@5.0.11)(vue-tsc@1.8.27): resolution: {integrity: sha512-jyD9E74bx8cdDc3nmYMNsJR0dIOrpcDH/mBlo1FmpB2zeXXMwupOD2tm033MJpHIEBbhQGHYFQlRyd7wHg2DyA==} @@ -10129,6 +10135,7 @@ packages: debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color + dev: true /simple-git@3.22.0: resolution: {integrity: sha512-6JujwSs0ac82jkGjMHiCnTifvf1crOiY/+tfs/Pqih6iow7VrpNKRRNdWm6RtaXpvvv/JGNYhlUtLhGFqHF+Yw==} @@ -11346,6 +11353,7 @@ packages: vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 vue-tsc: 1.8.26(typescript@5.3.3) + dev: true /vite-plugin-checker@0.6.2(eslint@8.56.0)(typescript@5.3.3)(vite@5.0.11)(vue-tsc@1.8.27): resolution: {integrity: sha512-YvvvQ+IjY09BX7Ab+1pjxkELQsBd4rPhWNw8WLBeFVxu/E7O+n6VYAqNsKdK/a2luFlX/sMpoWdGFfg4HvwdJQ==} @@ -11681,6 +11689,7 @@ packages: '@vue/language-core': 1.8.26(typescript@5.3.3) semver: 7.5.4 typescript: 5.3.3 + dev: true /vue-tsc@1.8.27(typescript@5.3.3): resolution: {integrity: sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==} From f43e7ac0fba5d23a58d3e6f1d8af6c3396f10c56 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 17 Jan 2024 14:28:33 +0000 Subject: [PATCH 07/13] chore: only run cucumber suite --- package.json | 2 +- src/core/setup/cucumber.ts | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index c1880da72..018d92cd4 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "scripts": { "lint": "eslint --ext .vue,.ts,.js,.mjs .", "lint:fix": "eslint --ext .vue,.ts,.js,.mjs . --fix", - "test:examples": "pnpm -r test", + "test:examples": "pnpm -r test --filter nuxt-app-cucumber", "test:types": "vue-tsc --noEmit", "test:unit": "vitest test/unit --run", "prepack": "unbuild", diff --git a/src/core/setup/cucumber.ts b/src/core/setup/cucumber.ts index ff6a988b8..dd90d3569 100644 --- a/src/core/setup/cucumber.ts +++ b/src/core/setup/cucumber.ts @@ -5,6 +5,7 @@ export default async function setupCucumber (hooks: TestHooks) { BeforeAll({ timeout: hooks.ctx.options.setupTimeout }, async () => { try { + console.log({ timeout: hooks.ctx.options.setupTimeout }) await hooks.setup() } catch (error) { console.error(error) From 95cda172875125f6584365fb86acf53058e98f57 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 17 Jan 2024 14:35:32 +0000 Subject: [PATCH 08/13] chore: refresh lockfile --- pnpm-lock.yaml | 408 +++++-------------------------------------------- 1 file changed, 34 insertions(+), 374 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 855137343..1fe5ff61e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -112,7 +112,7 @@ importers: version: 0.5.5(@nuxt/kit@3.9.2)(nuxi@3.10.0)(typescript@5.3.3) '@testing-library/vue': specifier: 8.0.1 - version: 8.0.1(@vue/compiler-sfc@3.4.7)(vue@3.4.14) + version: 8.0.1(@vue/compiler-sfc@3.4.14)(vue@3.4.14) '@types/estree': specifier: 1.0.5 version: 1.0.5 @@ -154,7 +154,7 @@ importers: version: 1.21.0 nuxt: specifier: 3.9.2 - version: 3.9.2(eslint@8.56.0)(rollup@4.9.5)(typescript@5.3.3)(vite@5.0.11)(vue-tsc@1.8.27) + version: 3.9.2(@types/node@20.10.5)(eslint@8.56.0)(rollup@4.9.5)(typescript@5.3.3)(vite@5.0.11)(vue-tsc@1.8.27) playwright-core: specifier: 1.41.0 version: 1.41.0 @@ -187,13 +187,13 @@ importers: dependencies: nuxt: specifier: ^3.9.1 - version: 3.9.1(@types/node@20.10.5)(eslint@8.56.0)(rollup@4.9.5)(typescript@5.3.3)(vite@5.0.11)(vue-tsc@1.8.27) + version: 3.9.2(@types/node@20.10.5)(eslint@8.56.0)(rollup@4.9.5)(typescript@5.3.3)(vite@5.0.11)(vue-tsc@1.8.27) vue: - specifier: ^3.3.4 - version: 3.4.7(typescript@5.3.3) + specifier: ^3.4.14 + version: 3.4.14(typescript@5.3.3) vue-router: specifier: ^4.2.5 - version: 4.2.5(vue@3.4.7) + version: 4.2.5(vue@3.4.14) devDependencies: '@cucumber/cucumber': specifier: ^10.2.1 @@ -243,7 +243,7 @@ importers: dependencies: nuxt: specifier: ^3.9.1 - version: 3.9.1(eslint@8.56.0)(rollup@4.9.5)(typescript@5.3.3)(vite@5.0.11)(vue-tsc@1.8.27) + version: 3.9.1(@types/node@20.10.5)(eslint@8.56.0)(rollup@4.9.5)(typescript@5.3.3)(vite@5.0.11)(vue-tsc@1.8.27) vue: specifier: ^3.4.14 version: 3.4.14(typescript@5.3.3) @@ -284,7 +284,7 @@ importers: version: link:../.. '@testing-library/vue': specifier: 8.0.1 - version: 8.0.1(@vue/compiler-sfc@3.4.7)(vue@3.4.14) + version: 8.0.1(@vue/compiler-sfc@3.4.14)(vue@3.4.14) happy-dom: specifier: 12.10.3 version: 12.10.3 @@ -317,7 +317,7 @@ importers: version: link:../.. nuxt: specifier: ^3.9.1 - version: 3.9.1(eslint@8.56.0)(rollup@4.9.5)(typescript@5.3.3)(vite@5.0.11)(vue-tsc@1.8.27) + version: 3.9.1(@types/node@20.10.5)(eslint@8.56.0)(rollup@4.9.5)(typescript@5.3.3)(vite@5.0.11)(vue-tsc@1.8.27) vitest: specifier: 1.1.1 version: 1.1.1(@vitest/ui@1.1.1)(happy-dom@12.10.3)(jsdom@23.0.1) @@ -335,7 +335,7 @@ importers: version: 8.0.0(rollup@4.9.5)(vue-router@4.2.5)(vue@3.4.14) nuxt: specifier: ^3.9.1 - version: 3.9.1(eslint@8.56.0)(rollup@4.9.5)(typescript@5.3.3)(vite@5.0.11)(vue-tsc@1.8.27) + version: 3.9.1(@types/node@20.10.5)(eslint@8.56.0)(rollup@4.9.5)(typescript@5.3.3)(vite@5.0.11)(vue-tsc@1.8.27) vitest: specifier: 1.1.1 version: 1.1.1(@vitest/ui@1.1.1)(happy-dom@12.10.3)(jsdom@23.0.1) @@ -372,7 +372,7 @@ importers: version: 0.5.5 nuxt: specifier: ^3.9.1 - version: 3.9.1(eslint@8.56.0)(rollup@4.9.5)(typescript@5.3.3)(vite@5.0.11)(vue-tsc@1.8.27) + version: 3.9.1(@types/node@20.10.5)(eslint@8.56.0)(rollup@4.9.5)(typescript@5.3.3)(vite@5.0.11)(vue-tsc@1.8.27) vitest: specifier: 1.1.1 version: 1.1.1(@vitest/ui@1.1.1)(happy-dom@12.10.3)(jsdom@23.0.1) @@ -388,7 +388,7 @@ importers: devDependencies: nuxt: specifier: ^3.9.1 - version: 3.9.1(eslint@8.56.0)(rollup@4.9.5)(typescript@5.3.3)(vite@5.0.11)(vue-tsc@1.8.27) + version: 3.9.1(@types/node@20.10.5)(eslint@8.56.0)(rollup@4.9.5)(typescript@5.3.3)(vite@5.0.11)(vue-tsc@1.8.27) stubs/vitest-environment-nuxt: dependencies: @@ -2047,22 +2047,6 @@ packages: transitivePeerDependencies: - rollup - supports-color - dev: true - - /@nuxt/devtools-kit@1.0.8(nuxt@3.9.1)(rollup@4.9.5)(vite@5.0.11): - resolution: {integrity: sha512-j7bNZmoAXQ1a8qv6j6zk4c/aekrxYqYVQM21o/Hy4XHCUq4fajSgpoc8mjyWJSTfpkOmuLyEzMexpDWiIVSr6A==} - peerDependencies: - nuxt: ^3.9.0 - vite: 5.0.11 - dependencies: - '@nuxt/kit': 3.9.2(rollup@4.9.5) - '@nuxt/schema': 3.9.2(rollup@4.9.5) - execa: 7.2.0 - nuxt: 3.9.1(@types/node@20.10.5)(eslint@8.56.0)(rollup@4.9.5)(typescript@5.3.3)(vite@5.0.11)(vue-tsc@1.8.27) - vite: 5.0.11(@types/node@20.10.5) - transitivePeerDependencies: - - rollup - - supports-color /@nuxt/devtools-kit@1.0.8(nuxt@3.9.2)(rollup@4.9.5)(vite@5.0.11): resolution: {integrity: sha512-j7bNZmoAXQ1a8qv6j6zk4c/aekrxYqYVQM21o/Hy4XHCUq4fajSgpoc8mjyWJSTfpkOmuLyEzMexpDWiIVSr6A==} @@ -2073,12 +2057,11 @@ packages: '@nuxt/kit': 3.9.2(rollup@4.9.5) '@nuxt/schema': 3.9.2(rollup@4.9.5) execa: 7.2.0 - nuxt: 3.9.2(eslint@8.56.0)(rollup@4.9.5)(typescript@5.3.3)(vite@5.0.11)(vue-tsc@1.8.27) + nuxt: 3.9.2(@types/node@20.10.5)(eslint@8.56.0)(rollup@4.9.5)(typescript@5.3.3)(vite@5.0.11)(vue-tsc@1.8.27) vite: 5.0.11(@types/node@20.10.5) transitivePeerDependencies: - rollup - supports-color - dev: true /@nuxt/devtools-wizard@1.0.6: resolution: {integrity: sha512-44G+t2sQQii3TPnmktlrZryC4pw7t77GUV7wneEicLGU+w5I5ib7taVMJy8+yBC3kpTs5eYHOmqI63Dqvr73tw==} @@ -2094,7 +2077,6 @@ packages: prompts: 2.4.2 rc9: 2.1.1 semver: 7.5.4 - dev: true /@nuxt/devtools-wizard@1.0.8: resolution: {integrity: sha512-RxyOlM7Isk5npwXwDJ/rjm9ekX5sTNG0LS0VOBMdSx+D5nlRPMRr/r9yO+9WQDyzPLClLzHaXRHBWLPlRX3IMw==} @@ -2177,7 +2159,6 @@ packages: - supports-color - utf-8-validate - xml2js - dev: true /@nuxt/devtools@1.0.6(nuxt@3.9.1)(rollup@4.9.5)(vite@5.0.11): resolution: {integrity: sha512-3P914IHBvKl2aYSrwaCAU9E1ndVNnGJR0Jn0XKUFktsbjU5kGlwLGrtRKXAw4Yz1VNiSZPrapVrFOQWbXRGRvg==} @@ -2205,17 +2186,17 @@ packages: launch-editor: 2.6.1 local-pkg: 0.5.0 magicast: 0.3.2 - nitropack: 2.8.1 - nuxt: 3.9.1(eslint@8.56.0)(rollup@4.9.5)(typescript@5.3.3)(vite@5.0.11)(vue-tsc@1.8.27) + nitropack: 2.8.1(idb-keyval@6.2.1) + nuxt: 3.9.1(@types/node@20.10.5)(eslint@8.56.0)(rollup@4.9.5)(typescript@5.3.3)(vite@5.0.11)(vue-tsc@1.8.27) nypm: 0.3.4 ofetch: 1.3.3 ohash: 1.1.3 pacote: 17.0.5 - pathe: 1.1.1 + pathe: 1.1.2 perfect-debounce: 1.0.0 pkg-types: 1.0.3 rc9: 2.1.1 - scule: 1.1.1 + scule: 1.2.0 semver: 7.5.4 simple-git: 3.21.0 sirv: 2.0.4 @@ -2245,57 +2226,6 @@ packages: - supports-color - utf-8-validate - xml2js - dev: true - - /@nuxt/devtools@1.0.8(nuxt@3.9.1)(rollup@4.9.5)(vite@5.0.11): - resolution: {integrity: sha512-o6aBFEBxc8OgVHV4OPe2g0q9tFIe9HiTxRiJnlTJ+jHvOQsBLS651ArdVtwLChf9UdMouFlpLLJ1HteZqTbtsQ==} - hasBin: true - peerDependencies: - nuxt: ^3.9.0 - vite: 5.0.11 - dependencies: - '@antfu/utils': 0.7.7 - '@nuxt/devtools-kit': 1.0.8(nuxt@3.9.1)(rollup@4.9.5)(vite@5.0.11) - '@nuxt/devtools-wizard': 1.0.8 - '@nuxt/kit': 3.9.2(rollup@4.9.5) - birpc: 0.2.14 - consola: 3.2.3 - destr: 2.0.2 - error-stack-parser-es: 0.1.1 - execa: 7.2.0 - fast-glob: 3.3.2 - flatted: 3.2.9 - get-port-please: 3.1.2 - hookable: 5.5.3 - image-meta: 0.2.0 - is-installed-globally: 1.0.0 - launch-editor: 2.6.1 - local-pkg: 0.5.0 - magicast: 0.3.2 - nuxt: 3.9.1(@types/node@20.10.5)(eslint@8.56.0)(rollup@4.9.5)(typescript@5.3.3)(vite@5.0.11)(vue-tsc@1.8.27) - nypm: 0.3.4 - ohash: 1.1.3 - pacote: 17.0.5 - pathe: 1.1.2 - perfect-debounce: 1.0.0 - pkg-types: 1.0.3 - rc9: 2.1.1 - scule: 1.2.0 - semver: 7.5.4 - simple-git: 3.22.0 - sirv: 2.0.4 - unimport: 3.7.1(rollup@4.9.5) - vite: 5.0.11(@types/node@20.10.5) - vite-plugin-inspect: 0.8.1(@nuxt/kit@3.9.2)(rollup@4.9.5)(vite@5.0.11) - vite-plugin-vue-inspector: 4.0.2(vite@5.0.11) - which: 3.0.1 - ws: 8.16.0 - transitivePeerDependencies: - - bluebird - - bufferutil - - rollup - - supports-color - - utf-8-validate /@nuxt/devtools@1.0.8(nuxt@3.9.2)(rollup@4.9.5)(vite@5.0.11): resolution: {integrity: sha512-o6aBFEBxc8OgVHV4OPe2g0q9tFIe9HiTxRiJnlTJ+jHvOQsBLS651ArdVtwLChf9UdMouFlpLLJ1HteZqTbtsQ==} @@ -2322,7 +2252,7 @@ packages: launch-editor: 2.6.1 local-pkg: 0.5.0 magicast: 0.3.2 - nuxt: 3.9.2(eslint@8.56.0)(rollup@4.9.5)(typescript@5.3.3)(vite@5.0.11)(vue-tsc@1.8.27) + nuxt: 3.9.2(@types/node@20.10.5)(eslint@8.56.0)(rollup@4.9.5)(typescript@5.3.3)(vite@5.0.11)(vue-tsc@1.8.27) nypm: 0.3.4 ohash: 1.1.3 pacote: 17.0.5 @@ -2346,7 +2276,6 @@ packages: - rollup - supports-color - utf-8-validate - dev: true /@nuxt/eslint-config@0.2.0(eslint@8.56.0): resolution: {integrity: sha512-NeJX8TLcnNAjQFiDs3XhP+9CHKK8jaKsP7eUyCSrQdgY7nqWe7VJx64lwzx5FTT4cW3RHMEyH+Y0qzLGYYoa/A==} @@ -2573,68 +2502,8 @@ packages: - vls - vti - vue-tsc - dev: true - - /@nuxt/vite-builder@3.9.1(eslint@8.56.0)(rollup@4.9.5)(typescript@5.3.3)(vue-tsc@1.8.27)(vue@3.4.14): - resolution: {integrity: sha512-V0GxTYuajNlf+kX3ak7klaFnkQ43MkXY2mAYqdAuUytvjx/S0O4hESy6gU1r/3no7IZAdoaEN27KLB4OOJ7vag==} - engines: {node: ^14.18.0 || >=16.10.0} - peerDependencies: - vue: ^3.4.14 - dependencies: - '@nuxt/kit': 3.9.2(rollup@4.9.5) - '@rollup/plugin-replace': 5.0.5(rollup@4.9.5) - '@vitejs/plugin-vue': 5.0.2(vite@5.0.11)(vue@3.4.14) - '@vitejs/plugin-vue-jsx': 3.1.0(vite@5.0.11)(vue@3.4.14) - autoprefixer: 10.4.16(postcss@8.4.33) - clear: 0.1.0 - consola: 3.2.3 - cssnano: 6.0.3(postcss@8.4.33) - defu: 6.1.4 - esbuild: 0.19.11 - escape-string-regexp: 5.0.0 - estree-walker: 3.0.3 - externality: 1.0.2 - fs-extra: 11.2.0 - get-port-please: 3.1.2 - h3: 1.10.0 - knitwork: 1.0.0 - magic-string: 0.30.5 - mlly: 1.4.2 - ohash: 1.1.3 - pathe: 1.1.2 - perfect-debounce: 1.0.0 - pkg-types: 1.0.3 - postcss: 8.4.33 - rollup-plugin-visualizer: 5.12.0(rollup@4.9.5) - std-env: 3.7.0 - strip-literal: 2.0.0 - ufo: 1.3.2 - unplugin: 1.6.0 - vite: 5.0.11(@types/node@20.10.5) - vite-node: 1.1.3(@types/node@20.10.5) - vite-plugin-checker: 0.6.2(eslint@8.56.0)(typescript@5.3.3)(vite@5.0.11)(vue-tsc@1.8.27) - vue: 3.4.14(typescript@5.3.3) - vue-bundle-renderer: 2.0.0 - transitivePeerDependencies: - - '@types/node' - - eslint - - less - - lightningcss - - meow - - optionator - - rollup - - sass - - stylelint - - stylus - - sugarss - - supports-color - - terser - - typescript - - vls - - vti - - vue-tsc - /@nuxt/vite-builder@3.9.2(eslint@8.56.0)(rollup@4.9.5)(typescript@5.3.3)(vue-tsc@1.8.27)(vue@3.4.14): + /@nuxt/vite-builder@3.9.2(@types/node@20.10.5)(eslint@8.56.0)(rollup@4.9.5)(typescript@5.3.3)(vue-tsc@1.8.27)(vue@3.4.14): resolution: {integrity: sha512-Y8hIn/DlAeQPFKTTDGH8FJrnPCNhgwLXeQC3EroRpeF6/YIfJmTwTr4hWdeBtD2rJllFkWPEYJZfbQTithGtUg==} engines: {node: ^14.18.0 || >=16.10.0} peerDependencies: @@ -2692,7 +2561,6 @@ packages: - vls - vti - vue-tsc - dev: true /@nuxtjs/i18n@8.0.0(rollup@4.9.5)(vue-router@4.2.5)(vue@3.4.14): resolution: {integrity: sha512-h436bYKJ9a8NpLoY5kc5QyM6WTsuFU2IGtSErm+iRgWBinguLg/gp0cvgji35WgVlRUAhocYkxOqTSpZiUZyYA==} @@ -3227,7 +3095,7 @@ packages: pretty-format: 27.5.1 dev: true - /@testing-library/vue@8.0.1(@vue/compiler-sfc@3.4.7)(vue@3.4.14): + /@testing-library/vue@8.0.1(@vue/compiler-sfc@3.4.14)(vue@3.4.14): resolution: {integrity: sha512-l51ZEpjTQ6glq3wM+asQ1GbKJMGcxwgHEygETx0aCRN4TjFEGvMZy4YdWKs/y7bu4bmLrxcxhbEPP7iPSW/2OQ==} engines: {node: '>=14'} peerDependencies: @@ -3236,7 +3104,7 @@ packages: dependencies: '@babel/runtime': 7.23.2 '@testing-library/dom': 9.3.3 - '@vue/compiler-sfc': 3.4.7 + '@vue/compiler-sfc': 3.4.14 '@vue/test-utils': 2.4.3(vue@3.4.14) vue: 3.4.14(typescript@5.3.3) transitivePeerDependencies: @@ -3575,7 +3443,6 @@ packages: dependencies: '@unhead/schema': 1.8.10 '@unhead/shared': 1.8.10 - dev: true /@unhead/dom@1.8.9: resolution: {integrity: sha512-qY4CUVNKEM7lEAcTz5t71QYca+NXgUY5RwhSzB6sBBzZxQTiFOeTVKC6uWXU0N+3jBUdP/zdD3iN1JIjziDlng==} @@ -3588,7 +3455,6 @@ packages: dependencies: hookable: 5.5.3 zhead: 2.2.4 - dev: true /@unhead/schema@1.8.9: resolution: {integrity: sha512-Cumjt2uLfBMEXflvq7Nk8KNqa/JS4MlRGWkjXx/uUXJ1vUeQqeMV8o3hrnRvDDoTXr9LwPapTMUbtClN3TSBgw==} @@ -3600,7 +3466,6 @@ packages: resolution: {integrity: sha512-pEFryAs3EmV+ShDQx2ZBwUnt5l3RrMrXSMZ50oFf+MImKZNARVvD4+3I8fEI9wZh+Zq0JYG3UAfzo51MUP+Juw==} dependencies: '@unhead/schema': 1.8.10 - dev: true /@unhead/shared@1.8.9: resolution: {integrity: sha512-0o4+CBCi9EnTKPF6cEuLacnUHUkF0u/FfiKrWnKWUiB8wTD1v3UCf5ZCrNCjuJmKHTqj6ZtZ2hIfXsqWfc+3tA==} @@ -3612,7 +3477,6 @@ packages: dependencies: '@unhead/schema': 1.8.10 '@unhead/shared': 1.8.10 - dev: true /@unhead/ssr@1.8.9: resolution: {integrity: sha512-sQaA4FDFD1tRD2JiiHfdEY5rF1i54qFxCRqdX0pB+15JJCYBfIPJMr5T1SLJBgc9pqX4rS3MPg2Fc9DW+0p9yw==} @@ -3630,7 +3494,6 @@ packages: hookable: 5.5.3 unhead: 1.8.10 vue: 3.4.14(typescript@5.3.3) - dev: true /@unhead/vue@1.8.9(vue@3.4.14): resolution: {integrity: sha512-sL1d2IRBZd5rjzhgTYni2DiociSpt+Cfz3iVWKb0EZwQHgg0GzV8Hkoj5TjZYZow6EjDSPRfVPXDwOwxkVOgug==} @@ -3697,7 +3560,6 @@ packages: dependencies: vite: 5.0.11(@types/node@20.10.5) vue: 3.4.14(typescript@5.3.3) - dev: true /@vitest/expect@1.1.1: resolution: {integrity: sha512-Qpw01C2Hyb3085jBkOJLQ7HRX0Ncnh2qV4p+xWmmhcIUlMykUF69zsnZ1vPmAjZpomw9+5tWEGOQ0GTfR8U+kA==} @@ -3897,7 +3759,6 @@ packages: path-browserify: 1.0.1 typescript: 5.3.3 vue-template-compiler: 2.7.15 - dev: true /@vue/language-core@1.8.27(typescript@5.3.3): resolution: {integrity: sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==} @@ -4002,7 +3863,7 @@ packages: '@vueuse/core': 10.7.0(vue@3.4.14) '@vueuse/metadata': 10.7.0 local-pkg: 0.5.0 - nuxt: 3.9.1(eslint@8.56.0)(rollup@4.9.5)(typescript@5.3.3)(vite@5.0.11)(vue-tsc@1.8.27) + nuxt: 3.9.1(@types/node@20.10.5)(eslint@8.56.0)(rollup@4.9.5)(typescript@5.3.3)(vite@5.0.11)(vue-tsc@1.8.27) vue-demi: 0.14.6(vue@3.4.14) transitivePeerDependencies: - '@vue/composition-api' @@ -5893,7 +5754,7 @@ packages: resolution: {integrity: sha512-LyExtJWKxtgVzmgtEHyQtLFpw1KFhQphF9nTG8TpAIVkiI/xQ3FJh75tRFLYl4hkn7BNIIdLJInuDAavX35pMw==} dependencies: enhanced-resolve: 5.15.0 - mlly: 1.4.2 + mlly: 1.5.0 pathe: 1.1.2 ufo: 1.3.2 @@ -8421,96 +8282,6 @@ packages: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} - /nitropack@2.8.1: - resolution: {integrity: sha512-pODv2kEEzZSDQR+1UMXbGyNgMedUDq/qUomtiAnQKQvLy52VGlecXO1xDfH3i0kP1yKEcKTnWsx1TAF5gHM7xQ==} - engines: {node: ^16.11.0 || >=17.0.0} - hasBin: true - peerDependencies: - xml2js: ^0.6.2 - peerDependenciesMeta: - xml2js: - optional: true - dependencies: - '@cloudflare/kv-asset-handler': 0.3.0 - '@netlify/functions': 2.4.0 - '@rollup/plugin-alias': 5.1.0(rollup@4.9.5) - '@rollup/plugin-commonjs': 25.0.7(rollup@4.9.5) - '@rollup/plugin-inject': 5.0.5(rollup@4.9.5) - '@rollup/plugin-json': 6.0.1(rollup@4.9.5) - '@rollup/plugin-node-resolve': 15.2.3(rollup@4.9.5) - '@rollup/plugin-replace': 5.0.5(rollup@4.9.5) - '@rollup/plugin-terser': 0.4.4(rollup@4.9.5) - '@rollup/plugin-wasm': 6.2.2(rollup@4.9.5) - '@rollup/pluginutils': 5.1.0(rollup@4.9.5) - '@types/http-proxy': 1.17.14 - '@vercel/nft': 0.24.3 - archiver: 6.0.1 - c12: 1.6.1 - chalk: 5.3.0 - chokidar: 3.5.3 - citty: 0.1.5 - consola: 3.2.3 - cookie-es: 1.0.0 - defu: 6.1.4 - destr: 2.0.2 - dot-prop: 8.0.2 - esbuild: 0.19.11 - escape-string-regexp: 5.0.0 - estree-walker: 3.0.3 - etag: 1.8.1 - fs-extra: 11.2.0 - globby: 14.0.0 - gzip-size: 7.0.0 - h3: 1.10.0 - hookable: 5.5.3 - httpxy: 0.1.5 - is-primitive: 3.0.1 - jiti: 1.21.0 - klona: 2.0.6 - knitwork: 1.0.0 - listhen: 1.5.5 - magic-string: 0.30.5 - mime: 3.0.0 - mlly: 1.4.2 - mri: 1.2.0 - node-fetch-native: 1.6.1 - ofetch: 1.3.3 - ohash: 1.1.3 - openapi-typescript: 6.7.1 - pathe: 1.1.2 - perfect-debounce: 1.0.0 - pkg-types: 1.0.3 - pretty-bytes: 6.1.1 - radix3: 1.1.0 - rollup: 4.9.5 - rollup-plugin-visualizer: 5.12.0(rollup@4.9.5) - scule: 1.2.0 - semver: 7.5.4 - serve-placeholder: 2.0.1 - serve-static: 1.15.0 - std-env: 3.7.0 - ufo: 1.3.2 - uncrypto: 0.1.3 - unctx: 2.3.1 - unenv: 1.9.0 - unimport: 3.7.1(rollup@4.9.5) - unstorage: 1.10.1(idb-keyval@6.2.1) - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@netlify/blobs' - - '@planetscale/database' - - '@upstash/redis' - - '@vercel/kv' - - encoding - - idb-keyval - - supports-color - /nitropack@2.8.1(idb-keyval@6.2.1): resolution: {integrity: sha512-pODv2kEEzZSDQR+1UMXbGyNgMedUDq/qUomtiAnQKQvLy52VGlecXO1xDfH3i0kP1yKEcKTnWsx1TAF5gHM7xQ==} engines: {node: ^16.11.0 || >=17.0.0} @@ -8600,7 +8371,6 @@ packages: - encoding - idb-keyval - supports-color - dev: true /no-case@3.0.4: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} @@ -8817,7 +8587,7 @@ packages: optional: true dependencies: '@nuxt/devalue': 2.0.2 - '@nuxt/devtools': 1.0.8(nuxt@3.9.1)(rollup@4.9.5)(vite@5.0.11) + '@nuxt/devtools': 1.0.6(nuxt@3.9.1)(rollup@4.9.5)(vite@5.0.11) '@nuxt/kit': 3.9.2(rollup@4.9.5) '@nuxt/schema': 3.9.2(rollup@4.9.5) '@nuxt/telemetry': 2.5.3(rollup@4.9.5) @@ -8847,16 +8617,16 @@ packages: knitwork: 1.0.0 magic-string: 0.30.5 mlly: 1.4.2 - nitropack: 2.8.1 + nitropack: 2.8.1(idb-keyval@6.2.1) nuxi: 3.10.0 nypm: 0.3.4 ofetch: 1.3.3 ohash: 1.1.3 - pathe: 1.1.2 + pathe: 1.1.1 perfect-debounce: 1.0.0 pkg-types: 1.0.3 radix3: 1.1.0 - scule: 1.2.0 + scule: 1.1.1 std-env: 3.7.0 strip-literal: 2.0.0 ufo: 1.3.2 @@ -8922,7 +8692,7 @@ packages: optional: true dependencies: '@nuxt/devalue': 2.0.2 - '@nuxt/devtools': 1.0.8(nuxt@3.9.1)(rollup@4.9.5)(vite@5.0.11) + '@nuxt/devtools': 1.0.6(idb-keyval@6.2.1)(nuxt@3.9.1)(rollup@4.9.5)(vite@5.0.11) '@nuxt/kit': 3.9.2(rollup@4.9.5) '@nuxt/schema': 3.9.2(rollup@4.9.5) '@nuxt/telemetry': 2.5.3(rollup@4.9.5) @@ -8956,116 +8726,11 @@ packages: nypm: 0.3.4 ofetch: 1.3.3 ohash: 1.1.3 - pathe: 1.1.2 - perfect-debounce: 1.0.0 - pkg-types: 1.0.3 - radix3: 1.1.0 - scule: 1.2.0 - std-env: 3.7.0 - strip-literal: 2.0.0 - ufo: 1.3.2 - ultrahtml: 1.5.2 - uncrypto: 0.1.3 - unctx: 2.3.1 - unenv: 1.9.0 - unimport: 3.7.1(rollup@4.9.5) - unplugin: 1.6.0 - unplugin-vue-router: 0.7.0(rollup@4.9.5)(vue-router@4.2.5)(vue@3.4.14) - untyped: 1.4.0 - vue: 3.4.14(typescript@5.3.3) - vue-bundle-renderer: 2.0.0 - vue-devtools-stub: 0.1.0 - vue-router: 4.2.5(vue@3.4.14) - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@netlify/blobs' - - '@planetscale/database' - - '@upstash/redis' - - '@vercel/kv' - - bluebird - - bufferutil - - encoding - - eslint - - idb-keyval - - less - - lightningcss - - meow - - optionator - - rollup - - sass - - stylelint - - stylus - - sugarss - - supports-color - - terser - - typescript - - utf-8-validate - - vite - - vls - - vti - - vue-tsc - - xml2js - dev: true - - /nuxt@3.9.1(eslint@8.56.0)(rollup@4.9.5)(typescript@5.3.3)(vite@5.0.11)(vue-tsc@1.8.27): - resolution: {integrity: sha512-jyD9E74bx8cdDc3nmYMNsJR0dIOrpcDH/mBlo1FmpB2zeXXMwupOD2tm033MJpHIEBbhQGHYFQlRyd7wHg2DyA==} - engines: {node: ^14.18.0 || >=16.10.0} - hasBin: true - peerDependencies: - '@parcel/watcher': ^2.1.0 - '@types/node': ^14.18.0 || >=16.10.0 - peerDependenciesMeta: - '@parcel/watcher': - optional: true - '@types/node': - optional: true - dependencies: - '@nuxt/devalue': 2.0.2 - '@nuxt/devtools': 1.0.8(nuxt@3.9.1)(rollup@4.9.5)(vite@5.0.11) - '@nuxt/kit': 3.9.2(rollup@4.9.5) - '@nuxt/schema': 3.9.2(rollup@4.9.5) - '@nuxt/telemetry': 2.5.3(rollup@4.9.5) - '@nuxt/ui-templates': 1.3.1 - '@nuxt/vite-builder': 3.9.1(eslint@8.56.0)(rollup@4.9.5)(typescript@5.3.3)(vue-tsc@1.8.27)(vue@3.4.14) - '@unhead/dom': 1.8.9 - '@unhead/ssr': 1.8.9 - '@unhead/vue': 1.8.9(vue@3.4.14) - '@vue/shared': 3.4.7 - acorn: 8.11.3 - c12: 1.6.1 - chokidar: 3.5.3 - cookie-es: 1.0.0 - defu: 6.1.4 - destr: 2.0.2 - devalue: 4.3.2 - esbuild: 0.19.11 - escape-string-regexp: 5.0.0 - estree-walker: 3.0.3 - fs-extra: 11.2.0 - globby: 14.0.0 - h3: 1.10.0 - hookable: 5.5.3 - jiti: 1.21.0 - klona: 2.0.6 - knitwork: 1.0.0 - magic-string: 0.30.5 - mlly: 1.4.2 - nitropack: 2.8.1 - nuxi: 3.10.0 - nypm: 0.3.4 - ofetch: 1.3.3 - ohash: 1.1.3 - pathe: 1.1.2 + pathe: 1.1.1 perfect-debounce: 1.0.0 pkg-types: 1.0.3 radix3: 1.1.0 - scule: 1.2.0 + scule: 1.1.1 std-env: 3.7.0 strip-literal: 2.0.0 ufo: 1.3.2 @@ -9117,7 +8782,7 @@ packages: - vue-tsc - xml2js - /nuxt@3.9.2(eslint@8.56.0)(rollup@4.9.5)(typescript@5.3.3)(vite@5.0.11)(vue-tsc@1.8.27): + /nuxt@3.9.2(@types/node@20.10.5)(eslint@8.56.0)(rollup@4.9.5)(typescript@5.3.3)(vite@5.0.11)(vue-tsc@1.8.27): resolution: {integrity: sha512-BGfqqIsvUOm8bmjSORcF7LnsMN7fFQ99JzZ81li2fx9Xw++sEiIC2R1G8PKZ6CwhrRE9X+IVIyrqLkWx3ooHWg==} engines: {node: ^14.18.0 || >=16.10.0} hasBin: true @@ -9136,7 +8801,8 @@ packages: '@nuxt/schema': 3.9.2(rollup@4.9.5) '@nuxt/telemetry': 2.5.3(rollup@4.9.5) '@nuxt/ui-templates': 1.3.1 - '@nuxt/vite-builder': 3.9.2(eslint@8.56.0)(rollup@4.9.5)(typescript@5.3.3)(vue-tsc@1.8.27)(vue@3.4.14) + '@nuxt/vite-builder': 3.9.2(@types/node@20.10.5)(eslint@8.56.0)(rollup@4.9.5)(typescript@5.3.3)(vue-tsc@1.8.27)(vue@3.4.14) + '@types/node': 20.10.5 '@unhead/dom': 1.8.10 '@unhead/ssr': 1.8.10 '@unhead/vue': 1.8.10(vue@3.4.14) @@ -9160,7 +8826,7 @@ packages: knitwork: 1.0.0 magic-string: 0.30.5 mlly: 1.5.0 - nitropack: 2.8.1 + nitropack: 2.8.1(idb-keyval@6.2.1) nuxi: 3.10.0 nypm: 0.3.4 ofetch: 1.3.3 @@ -9220,7 +8886,6 @@ packages: - vti - vue-tsc - xml2js - dev: true /nwsapi@2.2.7: resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} @@ -10385,7 +10050,6 @@ packages: /scule@1.1.1: resolution: {integrity: sha512-sHtm/SsIK9BUBI3EFT/Gnp9VoKfY6QLvlkvAE6YK7454IF8FSgJEAnJpVdSC7K5/pjI5NfxhzBLW2JAfYA/shQ==} - dev: true /scule@1.2.0: resolution: {integrity: sha512-CRCmi5zHQnSoeCik9565PONMg0kfkvYmcSqrbOJY4txFfy1wvVULV4FDaiXhUblUgahdqz3F2NwHZ8i4eBTwUw==} @@ -10555,7 +10219,6 @@ packages: debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color - dev: true /simple-git@3.22.0: resolution: {integrity: sha512-6JujwSs0ac82jkGjMHiCnTifvf1crOiY/+tfs/Pqih6iow7VrpNKRRNdWm6RtaXpvvv/JGNYhlUtLhGFqHF+Yw==} @@ -11367,7 +11030,6 @@ packages: '@unhead/schema': 1.8.10 '@unhead/shared': 1.8.10 hookable: 5.5.3 - dev: true /unhead@1.8.9: resolution: {integrity: sha512-qqCNmA4KOEDjcl+OtRZTllGehXewcQ31zbHjvhl/jqCs2MfRcZoxFW1y7A4Y4BgR/O7PI89K+GoWGcxK3gn64Q==} @@ -11782,7 +11444,6 @@ packages: vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 vue-tsc: 1.8.26(typescript@5.3.3) - dev: true /vite-plugin-checker@0.6.2(eslint@8.56.0)(typescript@5.3.3)(vite@5.0.11)(vue-tsc@1.8.27): resolution: {integrity: sha512-YvvvQ+IjY09BX7Ab+1pjxkELQsBd4rPhWNw8WLBeFVxu/E7O+n6VYAqNsKdK/a2luFlX/sMpoWdGFfg4HvwdJQ==} @@ -12118,7 +11779,6 @@ packages: '@vue/language-core': 1.8.26(typescript@5.3.3) semver: 7.5.4 typescript: 5.3.3 - dev: true /vue-tsc@1.8.27(typescript@5.3.3): resolution: {integrity: sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==} From 8af524b71d24ecabfb0d86999583b555ef5dbcde Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 17 Jan 2024 14:37:51 +0000 Subject: [PATCH 09/13] chore: run all examples --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4abc68e68..bc763410d 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "scripts": { "lint": "eslint --ext .vue,.ts,.js,.mjs .", "lint:fix": "eslint --ext .vue,.ts,.js,.mjs . --fix", - "test:examples": "pnpm -r test --filter nuxt-app-cucumber", + "test:examples": "pnpm -r test", "test:types": "vue-tsc --noEmit", "test:unit": "vitest test/unit --run", "prepack": "unbuild", From 06bd3d10ddb9972b97996189957f31d6e8406f2f Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 17 Jan 2024 14:44:49 +0000 Subject: [PATCH 10/13] chore: revert debugging --- examples/app-cucumber/package.json | 2 +- src/core/setup/cucumber.ts | 9 +-------- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/examples/app-cucumber/package.json b/examples/app-cucumber/package.json index aaaf32c1e..0fe0add86 100644 --- a/examples/app-cucumber/package.json +++ b/examples/app-cucumber/package.json @@ -8,7 +8,7 @@ "generate": "nuxt generate", "preview": "nuxt preview", "postinstall": "nuxt prepare", - "test": "DEBUG=* NODE_OPTIONS='--loader ts-node/esm' NODE_ENV=test cucumber-js" + "test": "NODE_OPTIONS='--loader ts-node/esm' NODE_ENV=test cucumber-js" }, "dependencies": { "nuxt": "^3.9.1", diff --git a/src/core/setup/cucumber.ts b/src/core/setup/cucumber.ts index dd90d3569..6cc781698 100644 --- a/src/core/setup/cucumber.ts +++ b/src/core/setup/cucumber.ts @@ -3,14 +3,7 @@ import type { TestHooks } from '../types' export default async function setupCucumber (hooks: TestHooks) { const { After, AfterAll, Before, BeforeAll } = await import('@cucumber/cucumber') - BeforeAll({ timeout: hooks.ctx.options.setupTimeout }, async () => { - try { - console.log({ timeout: hooks.ctx.options.setupTimeout }) - await hooks.setup() - } catch (error) { - console.error(error) - } - }) + BeforeAll({ timeout: hooks.ctx.options.setupTimeout }, hooks.setup) Before({}, hooks.beforeEach) After(hooks.afterEach) From 4e2360a53cb50de88282a75f0e5bdc1c980c0100 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 17 Jan 2024 14:45:45 +0000 Subject: [PATCH 11/13] test: run cucumber test separately --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index bc763410d..843495dc3 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "scripts": { "lint": "eslint --ext .vue,.ts,.js,.mjs .", "lint:fix": "eslint --ext .vue,.ts,.js,.mjs . --fix", - "test:examples": "pnpm -r test", + "test:examples": "pnpm -r test --filter !nuxt-app-cucumber && pnpm -r test --filter nuxt-app-cucumber", "test:types": "vue-tsc --noEmit", "test:unit": "vitest test/unit --run", "prepack": "unbuild", From d64959440a14ad98bd338f6b573367bdc0c336be Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 17 Jan 2024 15:05:11 +0000 Subject: [PATCH 12/13] test: add assertions to cucumber suite --- .../step-definitions/playwright.given-steps.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/examples/app-cucumber/test/acceptance/features/playwright/step-definitions/playwright.given-steps.ts b/examples/app-cucumber/test/acceptance/features/playwright/step-definitions/playwright.given-steps.ts index 810a33e2b..7dce76b00 100644 --- a/examples/app-cucumber/test/acceptance/features/playwright/step-definitions/playwright.given-steps.ts +++ b/examples/app-cucumber/test/acceptance/features/playwright/step-definitions/playwright.given-steps.ts @@ -1,6 +1,15 @@ +import assert from 'node:assert' import { Given } from '@cucumber/cucumber' -import { createPage } from '@nuxt/test-utils/e2e' +import { $fetch, createPage } from '@nuxt/test-utils/e2e' Given(/^the user goes on the home page$/u, async function (): Promise { - await createPage('/') + // Browser test + const page = await createPage('/') + const text = await page.getByRole('heading', { name: 'Welcome to Nuxt!' }).innerText() + assert.match(text, /Welcome to Nuxt!/) + await page.close() + + // SSR test + const html: string = await $fetch('/') + assert.match(html, //) }) From 22362211add4e25873b1207fbb0b72a67683cd8f Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 17 Jan 2024 15:07:00 +0000 Subject: [PATCH 13/13] fix: don't pass options to before --- src/core/setup/cucumber.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/setup/cucumber.ts b/src/core/setup/cucumber.ts index 6cc781698..32c8bfc4f 100644 --- a/src/core/setup/cucumber.ts +++ b/src/core/setup/cucumber.ts @@ -4,7 +4,7 @@ export default async function setupCucumber (hooks: TestHooks) { const { After, AfterAll, Before, BeforeAll } = await import('@cucumber/cucumber') BeforeAll({ timeout: hooks.ctx.options.setupTimeout }, hooks.setup) - Before({}, hooks.beforeEach) + Before(hooks.beforeEach) After(hooks.afterEach) AfterAll(hooks.afterAll)