Setup vitest

Done according to https://nuxt.com/docs/getting-started/testing
This commit is contained in:
Hornwitser 2025-06-12 21:38:47 +02:00
parent 75abd82f81
commit aa52a6c651
4 changed files with 537 additions and 1 deletions

View file

@ -13,6 +13,7 @@ export default defineNuxtConfig({
}
},
modules: [
"@nuxt/test-utils/module",
"@pinia/nuxt",
],
})

View file

@ -27,7 +27,10 @@
]
},
"devDependencies": {
"@nuxt/test-utils": "^3.19.1",
"@types/luxon": "^3.4.2",
"@types/web-push": "^3.6.4"
"@types/web-push": "^3.6.4",
"happy-dom": "^17.6.3",
"vitest": "^3.2.3"
}
}

528
pnpm-lock.yaml generated
View file

@ -33,12 +33,21 @@ importers:
specifier: ^3.25.30
version: 3.25.30
devDependencies:
'@nuxt/test-utils':
specifier: ^3.19.1
version: 3.19.1(@types/node@22.13.8)(happy-dom@17.6.3)(jiti@2.4.2)(magicast@0.3.5)(terser@5.39.0)(typescript@5.8.2)(vitest@3.2.3(@types/node@22.13.8)(happy-dom@17.6.3)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0))(yaml@2.7.0)
'@types/luxon':
specifier: ^3.4.2
version: 3.4.2
'@types/web-push':
specifier: ^3.6.4
version: 3.6.4
happy-dom:
specifier: ^17.6.3
version: 17.6.3
vitest:
specifier: ^3.2.3
version: 3.2.3(@types/node@22.13.8)(happy-dom@17.6.3)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0)
packages:
@ -462,6 +471,42 @@ packages:
engines: {node: '>=18.12.0'}
hasBin: true
'@nuxt/test-utils@3.19.1':
resolution: {integrity: sha512-qq2ioRgPCM7JwPIeJO2OzzqCWr8NR5eQINoskX2NEXTHzucvb8N9mt2UB2+NUe8OL9yNjGDZA+oA51GUKNhqhg==}
engines: {node: ^18.20.5 || ^20.9.0 || ^22.0.0 || >=23.0.0}
peerDependencies:
'@cucumber/cucumber': ^10.3.1 || ^11.0.0
'@jest/globals': ^29.5.0
'@playwright/test': ^1.43.1
'@testing-library/vue': ^7.0.0 || ^8.0.1
'@vitest/ui': '*'
'@vue/test-utils': ^2.4.2
happy-dom: ^9.10.9 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
jsdom: ^22.0.0 || ^23.0.0 || ^24.0.0 || ^25.0.0 || ^26.0.0
playwright-core: ^1.43.1
vitest: ^0.34.6 || ^1.0.0 || ^2.0.0 || ^3.0.0
peerDependenciesMeta:
'@cucumber/cucumber':
optional: true
'@jest/globals':
optional: true
'@playwright/test':
optional: true
'@testing-library/vue':
optional: true
'@vitest/ui':
optional: true
'@vue/test-utils':
optional: true
happy-dom:
optional: true
jsdom:
optional: true
playwright-core:
optional: true
vitest:
optional: true
'@nuxt/vite-builder@3.17.4':
resolution: {integrity: sha512-MRcGe02nEDpu+MnRJcmgVfHdzgt9tWvxVdJbhfd6oyX19plw/CANjgHedlpUNUxqeWXC6CQfGvoVJXn3bQlEqA==}
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0.0}
@ -858,6 +903,12 @@ packages:
'@tybys/wasm-util@0.9.0':
resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==}
'@types/chai@5.2.2':
resolution: {integrity: sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==}
'@types/deep-eql@4.0.2':
resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==}
'@types/estree@1.0.7':
resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==}
@ -923,6 +974,35 @@ packages:
vite: ^5.0.0 || ^6.0.0
vue: ^3.2.25
'@vitest/expect@3.2.3':
resolution: {integrity: sha512-W2RH2TPWVHA1o7UmaFKISPvdicFJH+mjykctJFoAkUw+SPTJTGjUNdKscFBrqM7IPnCVu6zihtKYa7TkZS1dkQ==}
'@vitest/mocker@3.2.3':
resolution: {integrity: sha512-cP6fIun+Zx8he4rbWvi+Oya6goKQDZK+Yq4hhlggwQBbrlOQ4qtZ+G4nxB6ZnzI9lyIb+JnvyiJnPC2AGbKSPA==}
peerDependencies:
msw: ^2.4.9
vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0
peerDependenciesMeta:
msw:
optional: true
vite:
optional: true
'@vitest/pretty-format@3.2.3':
resolution: {integrity: sha512-yFglXGkr9hW/yEXngO+IKMhP0jxyFw2/qys/CK4fFUZnSltD+MU7dVYGrH8rvPcK/O6feXQA+EU33gjaBBbAng==}
'@vitest/runner@3.2.3':
resolution: {integrity: sha512-83HWYisT3IpMaU9LN+VN+/nLHVBCSIUKJzGxC5RWUOsK1h3USg7ojL+UXQR3b4o4UBIWCYdD2fxuzM7PQQ1u8w==}
'@vitest/snapshot@3.2.3':
resolution: {integrity: sha512-9gIVWx2+tysDqUmmM1L0hwadyumqssOL1r8KJipwLx5JVYyxvVRfxvMq7DaWbZZsCqZnu/dZedaZQh4iYTtneA==}
'@vitest/spy@3.2.3':
resolution: {integrity: sha512-JHu9Wl+7bf6FEejTCREy+DmgWe+rQKbK+y32C/k5f4TBIAlijhJbRBIRIOCEpVevgRsCQR2iHRUH2/qKVM/plw==}
'@vitest/utils@3.2.3':
resolution: {integrity: sha512-4zFBCU5Pf+4Z6v+rwnZ1HU1yzOKKvDkMXZrymE2PBlbjKJRlrOxbvpfPSvJTGRIwGoahaOGvp+kbCoxifhzJ1Q==}
'@vue-macros/common@1.16.1':
resolution: {integrity: sha512-Pn/AWMTjoMYuquepLZP813BIcq8DTZiNCoaceuNlvaYuOTd8DqBZWc5u0uOMQZMInwME1mdSmmBAcTluiV9Jtg==}
engines: {node: '>=16.14.0'}
@ -951,15 +1031,27 @@ packages:
'@vue/compiler-core@3.5.14':
resolution: {integrity: sha512-k7qMHMbKvoCXIxPhquKQVw3Twid3Kg4s7+oYURxLGRd56LiuHJVrvFKI4fm2AM3c8apqODPfVJGoh8nePbXMRA==}
'@vue/compiler-core@3.5.16':
resolution: {integrity: sha512-AOQS2eaQOaaZQoL1u+2rCJIKDruNXVBZSiUD3chnUrsoX5ZTQMaCvXlWNIfxBJuU15r1o7+mpo5223KVtIhAgQ==}
'@vue/compiler-dom@3.5.14':
resolution: {integrity: sha512-1aOCSqxGOea5I80U2hQJvXYpPm/aXo95xL/m/mMhgyPUsKe9jhjwWpziNAw7tYRnbz1I61rd9Mld4W9KmmRoug==}
'@vue/compiler-dom@3.5.16':
resolution: {integrity: sha512-SSJIhBr/teipXiXjmWOVWLnxjNGo65Oj/8wTEQz0nqwQeP75jWZ0n4sF24Zxoht1cuJoWopwj0J0exYwCJ0dCQ==}
'@vue/compiler-sfc@3.5.14':
resolution: {integrity: sha512-9T6m/9mMr81Lj58JpzsiSIjBgv2LiVoWjIVa7kuXHICUi8LiDSIotMpPRXYJsXKqyARrzjT24NAwttrMnMaCXA==}
'@vue/compiler-sfc@3.5.16':
resolution: {integrity: sha512-rQR6VSFNpiinDy/DVUE0vHoIDUF++6p910cgcZoaAUm3POxgNOOdS/xgoll3rNdKYTYPnnbARDCZOyZ+QSe6Pw==}
'@vue/compiler-ssr@3.5.14':
resolution: {integrity: sha512-Y0G7PcBxr1yllnHuS/NxNCSPWnRGH4Ogrp0tsLA5QemDZuJLs99YjAKQ7KqkHE0vCg4QTKlQzXLKCMF7WPSl7Q==}
'@vue/compiler-ssr@3.5.16':
resolution: {integrity: sha512-d2V7kfxbdsjrDSGlJE7my1ZzCXViEcqN6w14DOsDrUCHEA6vbnVCpRFfrc4ryCP/lCKzX2eS1YtnLE/BuC9f/A==}
'@vue/devtools-api@6.6.4':
resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==}
@ -980,20 +1072,37 @@ packages:
'@vue/reactivity@3.5.14':
resolution: {integrity: sha512-7cK1Hp343Fu/SUCCO52vCabjvsYu7ZkOqyYu7bXV9P2yyfjUMUXHZafEbq244sP7gf+EZEz+77QixBTuEqkQQw==}
'@vue/reactivity@3.5.16':
resolution: {integrity: sha512-FG5Q5ee/kxhIm1p2bykPpPwqiUBV3kFySsHEQha5BJvjXdZTUfmya7wP7zC39dFuZAcf/PD5S4Lni55vGLMhvA==}
'@vue/runtime-core@3.5.14':
resolution: {integrity: sha512-w9JWEANwHXNgieAhxPpEpJa+0V5G0hz3NmjAZwlOebtfKyp2hKxKF0+qSh0Xs6/PhfGihuSdqMprMVcQU/E6ag==}
'@vue/runtime-core@3.5.16':
resolution: {integrity: sha512-bw5Ykq6+JFHYxrQa7Tjr+VSzw7Dj4ldR/udyBZbq73fCdJmyy5MPIFR9IX/M5Qs+TtTjuyUTCnmK3lWWwpAcFQ==}
'@vue/runtime-dom@3.5.14':
resolution: {integrity: sha512-lCfR++IakeI35TVR80QgOelsUIdcKjd65rWAMfdSlCYnaEY5t3hYwru7vvcWaqmrK+LpI7ZDDYiGU5V3xjMacw==}
'@vue/runtime-dom@3.5.16':
resolution: {integrity: sha512-T1qqYJsG2xMGhImRUV9y/RseB9d0eCYZQ4CWca9ztCuiPj/XWNNN+lkNBuzVbia5z4/cgxdL28NoQCvC0Xcfww==}
'@vue/server-renderer@3.5.14':
resolution: {integrity: sha512-Rf/ISLqokIvcySIYnv3tNWq40PLpNLDLSJwwVWzG6MNtyIhfbcrAxo5ZL9nARJhqjZyWWa40oRb2IDuejeuv6w==}
peerDependencies:
vue: 3.5.14
'@vue/server-renderer@3.5.16':
resolution: {integrity: sha512-BrX0qLiv/WugguGsnQUJiYOE0Fe5mZTwi6b7X/ybGB0vfrPH9z0gD/Y6WOR1sGCgX4gc25L1RYS5eYQKDMoNIg==}
peerDependencies:
vue: 3.5.16
'@vue/shared@3.5.14':
resolution: {integrity: sha512-oXTwNxVfc9EtP1zzXAlSlgARLXNC84frFYkS0HHz0h3E4WZSP9sywqjqzGCP9Y34M8ipNmd380pVgmMuwELDyQ==}
'@vue/shared@3.5.16':
resolution: {integrity: sha512-c/0fWy3Jw6Z8L9FmTyYfkpM5zklnqqa9+a6dz3DvONRKW2NEbh46BP0FHuLFSWi2TnQEtp91Z6zOWNrU6QiyPg==}
'@whatwg-node/disposablestack@0.0.6':
resolution: {integrity: sha512-LOtTn+JgJvX8WfBVJtF08TGrdjuFzGJc4mkP8EdDI8ADbvO7kiexYep1o8dwnt0okb0jYclCDXF13xU7Ge4zSw==}
engines: {node: '>=18.0.0'}
@ -1071,6 +1180,10 @@ packages:
asn1.js@5.4.1:
resolution: {integrity: sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==}
assertion-error@2.0.1:
resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
engines: {node: '>=12'}
ast-kit@1.4.0:
resolution: {integrity: sha512-BlGeOw73FDsX7z0eZE/wuuafxYoek2yzNJ6l6A1nsb4+z/p87TOPbHaWuN53kFKNuUXiCQa2M+xLF71IqQmRSw==}
engines: {node: '>=16.14.0'}
@ -1185,6 +1298,14 @@ packages:
caniuse-lite@1.0.30001718:
resolution: {integrity: sha512-AflseV1ahcSunK53NfEs9gFWgOEmzr0f+kaMFA4xiLZlr9Hzt7HxcSpIFcnNCUkz6R6dWKa54rUz3HUmI3nVcw==}
chai@5.2.0:
resolution: {integrity: sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==}
engines: {node: '>=12'}
check-error@2.1.1:
resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==}
engines: {node: '>= 16'}
chokidar@4.0.3:
resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==}
engines: {node: '>= 14.16.0'}
@ -1409,6 +1530,10 @@ packages:
decache@4.6.2:
resolution: {integrity: sha512-2LPqkLeu8XWHU8qNCS3kcF6sCcb5zIzvWaAHYSvPfwhdd7mHuah29NssMzrTYyHN4F5oFy2ko9OBYxegtU0FEw==}
deep-eql@5.0.2:
resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==}
engines: {node: '>=6'}
deepmerge@4.3.1:
resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
engines: {node: '>=0.10.0'}
@ -1651,6 +1776,10 @@ packages:
resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==}
engines: {node: '>=16.17'}
expect-type@1.2.1:
resolution: {integrity: sha512-/kP8CAwxzLVEeFrMm4kMmy4CCDlpipyA7MYLVrdJIkV0fYF0UaigQHRsxHiuY/GEea+bh4KSv3TIlgr+2UL6bw==}
engines: {node: '>=12.0.0'}
exsolve@1.0.5:
resolution: {integrity: sha512-pz5dvkYYKQ1AHVrgOzBKWeP4u4FRb3a6DNK2ucr0OoNwYIU4QWsJ+NM36LLzORT+z845MzKHHhpXiUF5nvQoJg==}
@ -1662,6 +1791,10 @@ packages:
engines: {node: '>= 10.17.0'}
hasBin: true
fake-indexeddb@6.0.1:
resolution: {integrity: sha512-He2AjQGHe46svIFq5+L2Nx/eHDTI1oKgoevBP+TthnjymXiKkeJQ3+ITeWey99Y5+2OaPFbI1qEsx/5RsGtWnQ==}
engines: {node: '>=18'}
fast-fifo@1.3.2:
resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==}
@ -1830,6 +1963,10 @@ packages:
h3@1.15.3:
resolution: {integrity: sha512-z6GknHqyX0h9aQaTx22VZDf6QyZn+0Nh+Ym8O/u0SGSkyF5cuTJYKlc8MkzW3Nzf9LE1ivcpmYC3FUGpywhuUQ==}
happy-dom@17.6.3:
resolution: {integrity: sha512-UVIHeVhxmxedbWPCfgS55Jg2rDfwf2BCKeylcPSqazLz5w3Kri7Q4xdBJubsr/+VUzFLh0VjIvh13RaDA2/Xug==}
engines: {node: '>=20.0.0'}
has-symbols@1.1.0:
resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==}
engines: {node: '>= 0.4'}
@ -2123,6 +2260,9 @@ packages:
resolution: {integrity: sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ==}
engines: {node: '>= 12.0.0'}
loupe@3.1.3:
resolution: {integrity: sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==}
lru-cache@10.4.3:
resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
@ -2478,6 +2618,10 @@ packages:
pathe@2.0.3:
resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==}
pathval@2.0.0:
resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==}
engines: {node: '>= 14.16'}
pend@1.2.0:
resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==}
@ -2904,6 +3048,9 @@ packages:
resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==}
engines: {node: '>= 0.4'}
siginfo@2.0.0:
resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==}
signal-exit@4.1.0:
resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
engines: {node: '>=14'}
@ -2962,6 +3109,9 @@ packages:
stack-trace@0.0.10:
resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==}
stackback@0.0.2:
resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==}
standard-as-callback@2.1.0:
resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==}
@ -3059,6 +3209,9 @@ packages:
tiny-invariant@1.3.3:
resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==}
tinybench@2.9.0:
resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==}
tinyexec@0.3.2:
resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==}
@ -3069,6 +3222,22 @@ packages:
resolution: {integrity: sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==}
engines: {node: '>=12.0.0'}
tinyglobby@0.2.14:
resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==}
engines: {node: '>=12.0.0'}
tinypool@1.1.0:
resolution: {integrity: sha512-7CotroY9a8DKsKprEy/a14aCCm8jYVmR7aFy4fpkZM8sdpNJbKkixuNjgM50yCmip2ezc8z4N7k3oe2+rfRJCQ==}
engines: {node: ^18.0.0 || >=20.0.0}
tinyrainbow@2.0.0:
resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==}
engines: {node: '>=14.0.0'}
tinyspy@4.0.3:
resolution: {integrity: sha512-t2T/WLB2WRgZ9EpE4jgPJ9w+i66UZfDc8wHh0xrwiRNN+UwH98GIJkTeZqX9rg0i0ptwzqW+uYeIF0T4F8LR7A==}
engines: {node: '>=14.0.0'}
tmp-promise@3.0.3:
resolution: {integrity: sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==}
@ -3283,6 +3452,11 @@ packages:
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
hasBin: true
vite-node@3.2.3:
resolution: {integrity: sha512-gc8aAifGuDIpZHrPjuHyP4dpQmYXqWw7D1GmDnWeNWP654UEXzVfQ5IHPSK5HaHkwB/+p1atpYpSdw/2kOv8iQ==}
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
hasBin: true
vite-plugin-checker@0.9.3:
resolution: {integrity: sha512-Tf7QBjeBtG7q11zG0lvoF38/2AVUzzhMNu+Wk+mcsJ00Rk/FpJ4rmUviVJpzWkagbU13cGXvKpt7CMiqtxVTbQ==}
engines: {node: '>=14.16'}
@ -3373,6 +3547,37 @@ packages:
yaml:
optional: true
vitest-environment-nuxt@1.0.1:
resolution: {integrity: sha512-eBCwtIQriXW5/M49FjqNKfnlJYlG2LWMSNFsRVKomc8CaMqmhQPBS5LZ9DlgYL9T8xIVsiA6RZn2lk7vxov3Ow==}
vitest@3.2.3:
resolution: {integrity: sha512-E6U2ZFXe3N/t4f5BwUaVCKRLHqUpk1CBWeMh78UT4VaTPH/2dyvH6ALl29JTovEPu9dVKr/K/J4PkXgrMbw4Ww==}
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
hasBin: true
peerDependencies:
'@edge-runtime/vm': '*'
'@types/debug': ^4.1.12
'@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0
'@vitest/browser': 3.2.3
'@vitest/ui': 3.2.3
happy-dom: '*'
jsdom: '*'
peerDependenciesMeta:
'@edge-runtime/vm':
optional: true
'@types/debug':
optional: true
'@types/node':
optional: true
'@vitest/browser':
optional: true
'@vitest/ui':
optional: true
happy-dom:
optional: true
jsdom:
optional: true
vscode-uri@3.1.0:
resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==}
@ -3395,6 +3600,14 @@ packages:
typescript:
optional: true
vue@3.5.16:
resolution: {integrity: sha512-rjOV2ecxMd5SiAmof2xzh2WxntRcigkX/He4YFJ6WdRvVUrbt6DxC1Iujh10XLl8xCDRDtGKMeO3D+pRQ1PP9w==}
peerDependencies:
typescript: '*'
peerDependenciesMeta:
typescript:
optional: true
web-push@3.6.7:
resolution: {integrity: sha512-OpiIUe8cuGjrj3mMBFWY+e4MMIkW3SVT+7vEIjvD9kejGUypv8GPDf84JdPWskK8zMRIJ6xYGm+Kxr8YkPyA0A==}
engines: {node: '>= 16'}
@ -3407,9 +3620,17 @@ packages:
webidl-conversions@3.0.1:
resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
webidl-conversions@7.0.0:
resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==}
engines: {node: '>=12'}
webpack-virtual-modules@0.6.2:
resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==}
whatwg-mimetype@3.0.0:
resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==}
engines: {node: '>=12'}
whatwg-url@5.0.0:
resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
@ -3423,6 +3644,11 @@ packages:
engines: {node: ^18.17.0 || >=20.5.0}
hasBin: true
why-is-node-running@2.3.0:
resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==}
engines: {node: '>=8'}
hasBin: true
winston-transport@4.9.0:
resolution: {integrity: sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A==}
engines: {node: '>= 12.0.0'}
@ -4094,6 +4320,52 @@ snapshots:
transitivePeerDependencies:
- magicast
'@nuxt/test-utils@3.19.1(@types/node@22.13.8)(happy-dom@17.6.3)(jiti@2.4.2)(magicast@0.3.5)(terser@5.39.0)(typescript@5.8.2)(vitest@3.2.3(@types/node@22.13.8)(happy-dom@17.6.3)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0))(yaml@2.7.0)':
dependencies:
'@nuxt/kit': 3.17.4(magicast@0.3.5)
'@nuxt/schema': 3.17.4
c12: 3.0.4(magicast@0.3.5)
consola: 3.4.2
defu: 6.1.4
destr: 2.0.5
estree-walker: 3.0.3
fake-indexeddb: 6.0.1
get-port-please: 3.1.2
h3: 1.15.3
local-pkg: 1.1.1
magic-string: 0.30.17
node-fetch-native: 1.6.6
node-mock-http: 1.0.0
ofetch: 1.4.1
pathe: 2.0.3
perfect-debounce: 1.0.0
radix3: 1.1.2
scule: 1.3.0
std-env: 3.9.0
tinyexec: 1.0.1
ufo: 1.6.1
unplugin: 2.3.4
vite: 6.3.5(@types/node@22.13.8)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0)
vitest-environment-nuxt: 1.0.1(@types/node@22.13.8)(happy-dom@17.6.3)(jiti@2.4.2)(magicast@0.3.5)(terser@5.39.0)(typescript@5.8.2)(vitest@3.2.3(@types/node@22.13.8)(happy-dom@17.6.3)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0))(yaml@2.7.0)
vue: 3.5.16(typescript@5.8.2)
optionalDependencies:
happy-dom: 17.6.3
vitest: 3.2.3(@types/node@22.13.8)(happy-dom@17.6.3)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0)
transitivePeerDependencies:
- '@types/node'
- jiti
- less
- lightningcss
- magicast
- sass
- sass-embedded
- stylus
- sugarss
- terser
- tsx
- typescript
- yaml
'@nuxt/vite-builder@3.17.4(@types/node@22.13.8)(magicast@0.3.5)(rollup@4.41.0)(terser@5.39.0)(typescript@5.8.2)(vue@3.5.14(typescript@5.8.2))(yaml@2.7.0)':
dependencies:
'@nuxt/kit': 3.17.4(magicast@0.3.5)
@ -4428,6 +4700,12 @@ snapshots:
tslib: 2.8.1
optional: true
'@types/chai@5.2.2':
dependencies:
'@types/deep-eql': 4.0.2
'@types/deep-eql@4.0.2': {}
'@types/estree@1.0.7': {}
'@types/luxon@3.4.2': {}
@ -4515,6 +4793,48 @@ snapshots:
vite: 6.3.5(@types/node@22.13.8)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0)
vue: 3.5.14(typescript@5.8.2)
'@vitest/expect@3.2.3':
dependencies:
'@types/chai': 5.2.2
'@vitest/spy': 3.2.3
'@vitest/utils': 3.2.3
chai: 5.2.0
tinyrainbow: 2.0.0
'@vitest/mocker@3.2.3(vite@6.3.5(@types/node@22.13.8)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0))':
dependencies:
'@vitest/spy': 3.2.3
estree-walker: 3.0.3
magic-string: 0.30.17
optionalDependencies:
vite: 6.3.5(@types/node@22.13.8)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0)
'@vitest/pretty-format@3.2.3':
dependencies:
tinyrainbow: 2.0.0
'@vitest/runner@3.2.3':
dependencies:
'@vitest/utils': 3.2.3
pathe: 2.0.3
strip-literal: 3.0.0
'@vitest/snapshot@3.2.3':
dependencies:
'@vitest/pretty-format': 3.2.3
magic-string: 0.30.17
pathe: 2.0.3
'@vitest/spy@3.2.3':
dependencies:
tinyspy: 4.0.3
'@vitest/utils@3.2.3':
dependencies:
'@vitest/pretty-format': 3.2.3
loupe: 3.1.3
tinyrainbow: 2.0.0
'@vue-macros/common@1.16.1(vue@3.5.14(typescript@5.8.2))':
dependencies:
'@vue/compiler-sfc': 3.5.14
@ -4563,11 +4883,24 @@ snapshots:
estree-walker: 2.0.2
source-map-js: 1.2.1
'@vue/compiler-core@3.5.16':
dependencies:
'@babel/parser': 7.27.2
'@vue/shared': 3.5.16
entities: 4.5.0
estree-walker: 2.0.2
source-map-js: 1.2.1
'@vue/compiler-dom@3.5.14':
dependencies:
'@vue/compiler-core': 3.5.14
'@vue/shared': 3.5.14
'@vue/compiler-dom@3.5.16':
dependencies:
'@vue/compiler-core': 3.5.16
'@vue/shared': 3.5.16
'@vue/compiler-sfc@3.5.14':
dependencies:
'@babel/parser': 7.27.2
@ -4580,11 +4913,28 @@ snapshots:
postcss: 8.5.3
source-map-js: 1.2.1
'@vue/compiler-sfc@3.5.16':
dependencies:
'@babel/parser': 7.27.2
'@vue/compiler-core': 3.5.16
'@vue/compiler-dom': 3.5.16
'@vue/compiler-ssr': 3.5.16
'@vue/shared': 3.5.16
estree-walker: 2.0.2
magic-string: 0.30.17
postcss: 8.5.3
source-map-js: 1.2.1
'@vue/compiler-ssr@3.5.14':
dependencies:
'@vue/compiler-dom': 3.5.14
'@vue/shared': 3.5.14
'@vue/compiler-ssr@3.5.16':
dependencies:
'@vue/compiler-dom': 3.5.16
'@vue/shared': 3.5.16
'@vue/devtools-api@6.6.4': {}
'@vue/devtools-api@7.7.6':
@ -4621,11 +4971,20 @@ snapshots:
dependencies:
'@vue/shared': 3.5.14
'@vue/reactivity@3.5.16':
dependencies:
'@vue/shared': 3.5.16
'@vue/runtime-core@3.5.14':
dependencies:
'@vue/reactivity': 3.5.14
'@vue/shared': 3.5.14
'@vue/runtime-core@3.5.16':
dependencies:
'@vue/reactivity': 3.5.16
'@vue/shared': 3.5.16
'@vue/runtime-dom@3.5.14':
dependencies:
'@vue/reactivity': 3.5.14
@ -4633,14 +4992,29 @@ snapshots:
'@vue/shared': 3.5.14
csstype: 3.1.3
'@vue/runtime-dom@3.5.16':
dependencies:
'@vue/reactivity': 3.5.16
'@vue/runtime-core': 3.5.16
'@vue/shared': 3.5.16
csstype: 3.1.3
'@vue/server-renderer@3.5.14(vue@3.5.14(typescript@5.8.2))':
dependencies:
'@vue/compiler-ssr': 3.5.14
'@vue/shared': 3.5.14
vue: 3.5.14(typescript@5.8.2)
'@vue/server-renderer@3.5.16(vue@3.5.16(typescript@5.8.2))':
dependencies:
'@vue/compiler-ssr': 3.5.16
'@vue/shared': 3.5.16
vue: 3.5.16(typescript@5.8.2)
'@vue/shared@3.5.14': {}
'@vue/shared@3.5.16': {}
'@whatwg-node/disposablestack@0.0.6':
dependencies:
'@whatwg-node/promise-helpers': 1.3.2
@ -4727,6 +5101,8 @@ snapshots:
minimalistic-assert: 1.0.1
safer-buffer: 2.1.2
assertion-error@2.0.1: {}
ast-kit@1.4.0:
dependencies:
'@babel/parser': 7.27.2
@ -4846,6 +5222,16 @@ snapshots:
caniuse-lite@1.0.30001718: {}
chai@5.2.0:
dependencies:
assertion-error: 2.0.1
check-error: 2.1.1
deep-eql: 5.0.2
loupe: 3.1.3
pathval: 2.0.0
check-error@2.1.1: {}
chokidar@4.0.3:
dependencies:
readdirp: 4.1.2
@ -5057,6 +5443,8 @@ snapshots:
dependencies:
callsite: 1.0.0
deep-eql@5.0.2: {}
deepmerge@4.3.1: {}
default-browser-id@5.0.0: {}
@ -5293,6 +5681,8 @@ snapshots:
signal-exit: 4.1.0
strip-final-newline: 3.0.0
expect-type@1.2.1: {}
exsolve@1.0.5: {}
externality@1.0.2:
@ -5312,6 +5702,8 @@ snapshots:
transitivePeerDependencies:
- supports-color
fake-indexeddb@6.0.1: {}
fast-fifo@1.3.2: {}
fast-glob@3.3.3:
@ -5496,6 +5888,11 @@ snapshots:
ufo: 1.6.1
uncrypto: 0.1.3
happy-dom@17.6.3:
dependencies:
webidl-conversions: 7.0.0
whatwg-mimetype: 3.0.0
has-symbols@1.1.0: {}
hasown@2.0.2:
@ -5763,6 +6160,8 @@ snapshots:
safe-stable-stringify: 2.5.0
triple-beam: 1.4.1
loupe@3.1.3: {}
lru-cache@10.4.3: {}
lru-cache@5.1.1:
@ -6283,6 +6682,8 @@ snapshots:
pathe@2.0.3: {}
pathval@2.0.0: {}
pend@1.2.0: {}
perfect-debounce@1.0.0: {}
@ -6746,6 +7147,8 @@ snapshots:
side-channel-map: 1.0.1
side-channel-weakmap: 1.0.2
siginfo@2.0.0: {}
signal-exit@4.1.0: {}
simple-git@3.27.0:
@ -6801,6 +7204,8 @@ snapshots:
stack-trace@0.0.10: {}
stackback@0.0.2: {}
standard-as-callback@2.1.0: {}
statuses@2.0.1: {}
@ -6908,6 +7313,8 @@ snapshots:
tiny-invariant@1.3.3: {}
tinybench@2.9.0: {}
tinyexec@0.3.2: {}
tinyexec@1.0.1: {}
@ -6917,6 +7324,17 @@ snapshots:
fdir: 6.4.4(picomatch@4.0.2)
picomatch: 4.0.2
tinyglobby@0.2.14:
dependencies:
fdir: 6.4.4(picomatch@4.0.2)
picomatch: 4.0.2
tinypool@1.1.0: {}
tinyrainbow@2.0.0: {}
tinyspy@4.0.3: {}
tmp-promise@3.0.3:
dependencies:
tmp: 0.2.3
@ -7126,6 +7544,27 @@ snapshots:
- tsx
- yaml
vite-node@3.2.3(@types/node@22.13.8)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0):
dependencies:
cac: 6.7.14
debug: 4.4.1
es-module-lexer: 1.7.0
pathe: 2.0.3
vite: 6.3.5(@types/node@22.13.8)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0)
transitivePeerDependencies:
- '@types/node'
- jiti
- less
- lightningcss
- sass
- sass-embedded
- stylus
- sugarss
- supports-color
- terser
- tsx
- yaml
vite-plugin-checker@0.9.3(typescript@5.8.2)(vite@6.3.5(@types/node@22.13.8)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0)):
dependencies:
'@babel/code-frame': 7.27.1
@ -7183,6 +7622,76 @@ snapshots:
terser: 5.39.0
yaml: 2.7.0
vitest-environment-nuxt@1.0.1(@types/node@22.13.8)(happy-dom@17.6.3)(jiti@2.4.2)(magicast@0.3.5)(terser@5.39.0)(typescript@5.8.2)(vitest@3.2.3(@types/node@22.13.8)(happy-dom@17.6.3)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0))(yaml@2.7.0):
dependencies:
'@nuxt/test-utils': 3.19.1(@types/node@22.13.8)(happy-dom@17.6.3)(jiti@2.4.2)(magicast@0.3.5)(terser@5.39.0)(typescript@5.8.2)(vitest@3.2.3(@types/node@22.13.8)(happy-dom@17.6.3)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0))(yaml@2.7.0)
transitivePeerDependencies:
- '@cucumber/cucumber'
- '@jest/globals'
- '@playwright/test'
- '@testing-library/vue'
- '@types/node'
- '@vitest/ui'
- '@vue/test-utils'
- happy-dom
- jiti
- jsdom
- less
- lightningcss
- magicast
- playwright-core
- sass
- sass-embedded
- stylus
- sugarss
- terser
- tsx
- typescript
- vitest
- yaml
vitest@3.2.3(@types/node@22.13.8)(happy-dom@17.6.3)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0):
dependencies:
'@types/chai': 5.2.2
'@vitest/expect': 3.2.3
'@vitest/mocker': 3.2.3(vite@6.3.5(@types/node@22.13.8)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0))
'@vitest/pretty-format': 3.2.3
'@vitest/runner': 3.2.3
'@vitest/snapshot': 3.2.3
'@vitest/spy': 3.2.3
'@vitest/utils': 3.2.3
chai: 5.2.0
debug: 4.4.1
expect-type: 1.2.1
magic-string: 0.30.17
pathe: 2.0.3
picomatch: 4.0.2
std-env: 3.9.0
tinybench: 2.9.0
tinyexec: 0.3.2
tinyglobby: 0.2.14
tinypool: 1.1.0
tinyrainbow: 2.0.0
vite: 6.3.5(@types/node@22.13.8)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0)
vite-node: 3.2.3(@types/node@22.13.8)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0)
why-is-node-running: 2.3.0
optionalDependencies:
'@types/node': 22.13.8
happy-dom: 17.6.3
transitivePeerDependencies:
- jiti
- less
- lightningcss
- msw
- sass
- sass-embedded
- stylus
- sugarss
- supports-color
- terser
- tsx
- yaml
vscode-uri@3.1.0: {}
vue-bundle-renderer@2.1.1:
@ -7206,6 +7715,16 @@ snapshots:
optionalDependencies:
typescript: 5.8.2
vue@3.5.16(typescript@5.8.2):
dependencies:
'@vue/compiler-dom': 3.5.16
'@vue/compiler-sfc': 3.5.16
'@vue/runtime-dom': 3.5.16
'@vue/server-renderer': 3.5.16(vue@3.5.16(typescript@5.8.2))
'@vue/shared': 3.5.16
optionalDependencies:
typescript: 5.8.2
web-push@3.6.7:
dependencies:
asn1.js: 5.4.1
@ -7220,8 +7739,12 @@ snapshots:
webidl-conversions@3.0.1: {}
webidl-conversions@7.0.0: {}
webpack-virtual-modules@0.6.2: {}
whatwg-mimetype@3.0.0: {}
whatwg-url@5.0.0:
dependencies:
tr46: 0.0.3
@ -7235,6 +7758,11 @@ snapshots:
dependencies:
isexe: 3.1.1
why-is-node-running@2.3.0:
dependencies:
siginfo: 2.0.0
stackback: 0.0.2
winston-transport@4.9.0:
dependencies:
logform: 2.7.0

4
vitest.config.ts Normal file
View file

@ -0,0 +1,4 @@
import { defineVitestConfig } from "@nuxt/test-utils/config";
export default defineVitestConfig({
})