From d2a2177d56a336b023e7e7850baede95989f218f Mon Sep 17 00:00:00 2001 From: Odalys Adam Date: Mon, 21 Oct 2024 22:33:50 +0200 Subject: [PATCH 01/18] initial setup --- package-lock.json | 1208 +++++++++++++++++++++++++++++++++++++++++++-- package.json | 4 +- vitest.config.mts | 8 + 3 files changed, 1174 insertions(+), 46 deletions(-) create mode 100644 vitest.config.mts diff --git a/package-lock.json b/package-lock.json index 9d9a5fefaa..9465df83e5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -79,6 +79,7 @@ "ts-jest": "^29.1.2", "ts-loader": "^9.5.1", "typescript": "^5.4.3", + "vitest": "^2.1.3", "vue-loader": "^17.4.2", "vue-style-loader": "^4.1.3", "vuex-module-decorators": "^1.2.0", @@ -1952,6 +1953,397 @@ "node": ">=10.0.0" } }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", @@ -3659,6 +4051,230 @@ "url": "https://opencollective.com/unts" } }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz", + "integrity": "sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.0.tgz", + "integrity": "sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.0.tgz", + "integrity": "sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.0.tgz", + "integrity": "sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.0.tgz", + "integrity": "sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.0.tgz", + "integrity": "sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.0.tgz", + "integrity": "sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.0.tgz", + "integrity": "sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.0.tgz", + "integrity": "sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.0.tgz", + "integrity": "sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.0.tgz", + "integrity": "sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz", + "integrity": "sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.0.tgz", + "integrity": "sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.0.tgz", + "integrity": "sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.0.tgz", + "integrity": "sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.0.tgz", + "integrity": "sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", @@ -3820,9 +4436,9 @@ } }, "node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", "devOptional": true, "license": "MIT" }, @@ -4288,53 +4904,177 @@ "node": ">=10" } }, - "node_modules/@typescript-eslint/utils": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz", - "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==", + "node_modules/@typescript-eslint/utils": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz", + "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/typescript-estree": "7.18.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", + "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "7.18.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/@vitest/expect": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.3.tgz", + "integrity": "sha512-SNBoPubeCJhZ48agjXruCI57DvxcsivVDdWz+SSsmjTT4QN/DfHk3zB/xKsJqMs26bLZ/pNRLnCf0j679i0uWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "2.1.3", + "@vitest/utils": "2.1.3", + "chai": "^5.1.1", + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/mocker": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.3.tgz", + "integrity": "sha512-eSpdY/eJDuOvuTA3ASzCjdithHa+GIF1L4PqtEELl6Qa3XafdMLBpBlZCIUCX2J+Q6sNmjmxtosAG62fK4BlqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "2.1.3", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.11" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@vitest/spy": "2.1.3", + "msw": "^2.3.5", + "vite": "^5.0.0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/@vitest/mocker/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/@vitest/pretty-format": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.3.tgz", + "integrity": "sha512-XH1XdtoLZCpqV59KRbPrIhFCOO0hErxrQCMcvnQete3Vibb9UeIOX02uFPfVn3Z9ZXsq78etlfyhnkmIZSzIwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.3.tgz", + "integrity": "sha512-JGzpWqmFJ4fq5ZKHtVO3Xuy1iF2rHGV4d/pdzgkYHm1+gOzNZtqjvyiaDGJytRyMU54qkxpNzCx+PErzJ1/JqQ==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/typescript-estree": "7.18.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" + "@vitest/utils": "2.1.3", + "pathe": "^1.1.2" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" + "url": "https://opencollective.com/vitest" } }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", - "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", + "node_modules/@vitest/snapshot": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.3.tgz", + "integrity": "sha512-qWC2mWc7VAXmjAkEKxrScWHWFyCQx/cmiZtuGqMi+WwqQJ2iURsVY4ZfAK6dVo6K2smKRU6l3BPwqEBvhnpQGg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "7.18.0", - "eslint-visitor-keys": "^3.4.3" + "@vitest/pretty-format": "2.1.3", + "magic-string": "^0.30.11", + "pathe": "^1.1.2" }, - "engines": { - "node": "^18.18.0 || >=20.0.0" + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.3.tgz", + "integrity": "sha512-Nb2UzbcUswzeSP7JksMDaqsI43Sj5+Kry6ry6jQJT4b5gAK+NS9NED6mDb8FlMRCX8m5guaHCDZmqYMMWRy5nQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyspy": "^3.0.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://opencollective.com/vitest" } }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "node_modules/@vitest/utils": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.3.tgz", + "integrity": "sha512-xpiVfDSg1RrYT0tX6czgerkpcKFmFOF/gCr30+Mve5V2kewCy4Prn1/NDMSRwaSmT7PRaOF83wu+bEtsY1wrvA==", "dev": true, - "license": "ISC" + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "2.1.3", + "loupe": "^3.1.1", + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } }, "node_modules/@vue/compiler-core": { "version": "3.4.38", @@ -5176,6 +5916,16 @@ "node": ">=8" } }, + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, "node_modules/async": { "version": "3.2.6", "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", @@ -5718,6 +6468,16 @@ "node": ">= 0.8" } }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/call-bind": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", @@ -5815,6 +6575,23 @@ "node": ">=6" } }, + "node_modules/chai": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.1.tgz", + "integrity": "sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -5847,6 +6624,16 @@ "dev": true, "license": "MIT" }, + "node_modules/check-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", + "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" + } + }, "node_modules/chokidar": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", @@ -6927,6 +7714,16 @@ } } }, + "node_modules/deep-eql": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -7520,6 +8317,45 @@ "devOptional": true, "license": "MIT" }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, "node_modules/escalade": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", @@ -12481,6 +13317,13 @@ "node": ">=8" } }, + "node_modules/loupe": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.2.tgz", + "integrity": "sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==", + "dev": true, + "license": "MIT" + }, "node_modules/lower-case": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", @@ -13561,10 +14404,20 @@ "dev": true, "license": "MIT" }, + "node_modules/pathval": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", + "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, "node_modules/picocolors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", - "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "license": "ISC" }, "node_modules/picomatch": { @@ -13733,9 +14586,9 @@ } }, "node_modules/postcss": { - "version": "8.4.41", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz", - "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==", + "version": "8.4.47", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", + "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", "funding": [ { "type": "opencollective", @@ -13753,8 +14606,8 @@ "license": "MIT", "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.1", - "source-map-js": "^1.2.0" + "picocolors": "^1.1.0", + "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12 || >=14" @@ -14397,6 +15250,42 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rollup": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.0.tgz", + "integrity": "sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.24.0", + "@rollup/rollup-android-arm64": "4.24.0", + "@rollup/rollup-darwin-arm64": "4.24.0", + "@rollup/rollup-darwin-x64": "4.24.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.24.0", + "@rollup/rollup-linux-arm-musleabihf": "4.24.0", + "@rollup/rollup-linux-arm64-gnu": "4.24.0", + "@rollup/rollup-linux-arm64-musl": "4.24.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.24.0", + "@rollup/rollup-linux-riscv64-gnu": "4.24.0", + "@rollup/rollup-linux-s390x-gnu": "4.24.0", + "@rollup/rollup-linux-x64-gnu": "4.24.0", + "@rollup/rollup-linux-x64-musl": "4.24.0", + "@rollup/rollup-win32-arm64-msvc": "4.24.0", + "@rollup/rollup-win32-ia32-msvc": "4.24.0", + "@rollup/rollup-win32-x64-msvc": "4.24.0", + "fsevents": "~2.3.2" + } + }, "node_modules/run-applescript": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz", @@ -14898,6 +15787,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true, + "license": "ISC" + }, "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", @@ -15030,9 +15926,9 @@ } }, "node_modules/source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -15127,6 +16023,13 @@ "node": ">=8" } }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true, + "license": "MIT" + }, "node_modules/statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", @@ -15137,6 +16040,13 @@ "node": ">= 0.8" } }, + "node_modules/std-env": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz", + "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==", + "dev": true, + "license": "MIT" + }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -15552,6 +16462,50 @@ "dev": true, "license": "MIT" }, + "node_modules/tinybench": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyexec": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.1.tgz", + "integrity": "sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinypool": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.1.tgz", + "integrity": "sha512-URZYihUbRPcGv95En+sz6MfghfIc2OJ1sv/RmhWZLouPY0/8Vo80viwPvg3dlaS9fuq7fQMEfgRRK7BBZThBEA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + } + }, + "node_modules/tinyrainbow": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-1.2.0.tgz", + "integrity": "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz", + "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -16205,6 +17159,153 @@ "node": ">= 0.8" } }, + "node_modules/vite": { + "version": "5.4.9", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.9.tgz", + "integrity": "sha512-20OVpJHh0PAM0oSOELa5GaZNWeDjcAvQjGXy2Uyr+Tp+/D2/Hdz6NLgpJLsarPTA2QJ6v8mX2P1ZfbsSKvdMkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.3.tgz", + "integrity": "sha512-I1JadzO+xYX887S39Do+paRePCKoiDrWRRjp9kkG5he0t7RXNvPAJPCQSJqbGN4uCrFFeS3Kj3sLqY8NMYBEdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.6", + "pathe": "^1.1.2", + "vite": "^5.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vitest": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.3.tgz", + "integrity": "sha512-Zrxbg/WiIvUP2uEzelDNTXmEMJXuzJ1kCpbDvaKByFA9MNeO95V+7r/3ti0qzJzrxdyuUw5VduN7k+D3VmVOSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/expect": "2.1.3", + "@vitest/mocker": "2.1.3", + "@vitest/pretty-format": "^2.1.3", + "@vitest/runner": "2.1.3", + "@vitest/snapshot": "2.1.3", + "@vitest/spy": "2.1.3", + "@vitest/utils": "2.1.3", + "chai": "^5.1.1", + "debug": "^4.3.6", + "magic-string": "^0.30.11", + "pathe": "^1.1.2", + "std-env": "^3.7.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.0", + "tinypool": "^1.0.0", + "tinyrainbow": "^1.2.0", + "vite": "^5.0.0", + "vite-node": "2.1.3", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/node": "^18.0.0 || >=20.0.0", + "@vitest/browser": "2.1.3", + "@vitest/ui": "2.1.3", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, "node_modules/vue": { "version": "3.4.38", "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.38.tgz", @@ -17077,6 +18178,23 @@ "node": ">= 8" } }, + "node_modules/why-is-node-running": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/wide-align": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", diff --git a/package.json b/package.json index 46d19bb7dc..d12d4fd0b0 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "scripts": { "serve": "cross-env NODE_ENV=development webpack serve --config config/webpack/webpack.dev.js", "build": "cross-env NODE_ENV=production webpack --config config/webpack/webpack.prod.js", + "test:vitest": "vitest", "test": "cross-env NODE_ENV=test npm run test:unit", "test:unit": "npx jest", "test:unit:ci": "npm run test:unit -- --coverage --ci --maxWorkers=4", @@ -73,8 +74,8 @@ "eslint": "^8.57.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-prettier": "^5.1.3", - "eslint-plugin-vue": "^9.23.0", "eslint-plugin-schulcloud": "file:lib/eslint-plugin-schulcloud", + "eslint-plugin-vue": "^9.23.0", "eslint-webpack-plugin": "^4.1.0", "fishery": "^2.2.2", "html-webpack-plugin": "^5.6.0", @@ -89,6 +90,7 @@ "ts-jest": "^29.1.2", "ts-loader": "^9.5.1", "typescript": "^5.4.3", + "vitest": "^2.1.3", "vue-loader": "^17.4.2", "vue-style-loader": "^4.1.3", "vuex-module-decorators": "^1.2.0", diff --git a/vitest.config.mts b/vitest.config.mts new file mode 100644 index 0000000000..39925b2786 --- /dev/null +++ b/vitest.config.mts @@ -0,0 +1,8 @@ +import { defineConfig } from "vitest/config"; + +export default defineConfig({ + test: { + // avoid having to import basic functions + globals: true, + }, +}); From c312f45b0c4bc84fabd09962a5b02764899c2d2c Mon Sep 17 00:00:00 2001 From: Odalys Adam Date: Mon, 21 Oct 2024 22:52:43 +0200 Subject: [PATCH 02/18] translate jest.config to vitest --- vitest.config.mts | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/vitest.config.mts b/vitest.config.mts index 39925b2786..e0be791fff 100644 --- a/vitest.config.mts +++ b/vitest.config.mts @@ -1,8 +1,32 @@ +// .mts extension to avoid CJS deprecation warning import { defineConfig } from "vitest/config"; export default defineConfig({ + resolve: { + alias: { + "\\.(jpg|ico|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": + "/tests/test-utils/mediaFileMock.js", + "^@data-(.*)$": "/src/modules/data/$1", + "^@feature-(.*)$": "/src/modules/feature/$1", + "^@page-(.*)$": "/src/modules/page/$1", + "^@ui-(.*)$": "/src/modules/ui/$1", + "^@util-(.*)$": "/src/modules/util/$1", + "^@icons(.*)$": "/src/components/icons/$1", + "^@/(.*)$": "/src/$1", + "^@@/(.*)$": "/$1", + }, + }, test: { + // include *.unit.[js|ts] files + include: ["**/*.{test,spec,unit}.?(c|m)[jt]s?(x)"], // avoid having to import basic functions globals: true, + // Use jsdom for browser-like tests + environment: "jsdom", + // run lifecycle hooks sequentially + sequence: { + hooks: "list", + }, + setupFiles: ["./tests/setup.js"], }, }); From af485ef5bb2176cdc2ca4bf58f0d6dad97614c74 Mon Sep 17 00:00:00 2001 From: Odalys Adam Date: Mon, 21 Oct 2024 22:55:14 +0200 Subject: [PATCH 03/18] add script to run without watching --- package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index d12d4fd0b0..3413bc1acc 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,8 @@ "scripts": { "serve": "cross-env NODE_ENV=development webpack serve --config config/webpack/webpack.dev.js", "build": "cross-env NODE_ENV=production webpack --config config/webpack/webpack.prod.js", - "test:vitest": "vitest", + "test:vitest": "vitest run", + "test:vitest:watch": "vitest", "test": "cross-env NODE_ENV=test npm run test:unit", "test:unit": "npx jest", "test:unit:ci": "npm run test:unit -- --coverage --ci --maxWorkers=4", From 14292a9a9dfe8d2af8ce49026305e2de4d139df5 Mon Sep 17 00:00:00 2001 From: Odalys Adam Date: Mon, 21 Oct 2024 23:00:34 +0200 Subject: [PATCH 04/18] replace jest.fn with vi.fn --- VUE3-UPGRADE-RESULTS/TESTING.md | 2 +- __mocks__/maska.ts | 2 +- ...rnal-tool-section-utils.composable.unit.ts | 2 +- src/components/atoms/vRoomAvatar.unit.ts | 2 +- .../base/BaseDialog/BaseDialog.unit.js | 4 +- .../ErrorHandler.composable.unit.ts | 6 +- .../lern-store/AddContentModal.unit.ts | 2 +- .../LernstoreCollectionDetailView.unit.js | 6 +- .../molecules/ApplicationErrorRouting.unit.ts | 4 +- .../CommonCartridgeExportModal.unit.ts | 4 +- src/components/molecules/RoomTaskCard.unit.ts | 26 ++++---- .../molecules/TaskItemStudent.unit.ts | 4 +- .../molecules/TaskItemTeacher.unit.ts | 4 +- .../organisms/DataFilter/DataFilter.unit.ts | 6 +- .../composables/filter.composable.unit.ts | 4 +- .../localStorage.composable.unit.ts | 2 +- .../DataTable/BackendDataTable.unit.js | 2 +- .../organisms/FormCreateUser.unit.js | 6 +- .../administration/AuthSystems.unit.js | 2 +- .../administration/ImportUsers.unit.ts | 2 +- src/components/share/ShareModal.unit.ts | 4 +- src/components/share/ShareModalResult.unit.ts | 6 +- .../templates/RoomDashboard.unit.ts | 40 ++++++------ .../templates/TasksDashboardMain.unit.ts | 2 +- src/composables/copy.unit.ts | 2 +- src/layouts/LoggedIn.unit.ts | 4 +- src/layouts/lernStore.layout.unit.ts | 2 +- src/layouts/loggedOut.layout.unit.ts | 6 +- src/mixins/print.unit.js | 12 ++-- src/modules/data/board/Board.store.unit.ts | 10 +-- .../BoardFocusHandler.composable.unit.ts | 2 +- .../BoardPageInformation.composable.unit.ts | 2 +- src/modules/data/board/Card.store.unit.ts | 6 +- .../board/CardRequestPool.composable.unit.ts | 2 +- .../data/board/ContentElementState.unit.ts | 2 +- .../ariaLiveNotificationHandler.unit.ts | 12 ++-- .../boardRestApi.composable.unit.ts | 12 ++-- .../board/boardInactivity.composable.unit.ts | 4 +- .../cardRestApi.composable.unit.ts | 6 +- .../cardSocketApi.composable.unit.ts | 2 +- src/modules/data/board/socket/socket.unit.ts | 22 +++---- ...ToolConfigurationStatus.composable.unit.ts | 2 +- .../CollaborativeTextEditorElement.unit.ts | 8 +-- ...TextEditorNotifications.composable.unit.ts | 4 +- .../collaborativeTextEditorApiMock.ts | 2 +- .../collaborativeTextEditorNotifier.ts | 6 +- .../DrawingContentElement.unit.ts | 6 +- ...rnalToolElementConfigurationDialog.unit.ts | 4 +- .../FileContentElement.unit.ts | 12 ++-- .../audio-display/AudioDisplay.unit.ts | 4 +- .../image-display/ImageDisplay.unit.ts | 2 +- .../display/pdf-display/PdfDisplay.unit.ts | 2 +- .../footer/attributes/FileAttributes.unit.ts | 4 +- ...ileStorageNotifications.composable.unit.ts | 6 +- .../shared/test-utils/fileStorageNotifier.ts | 10 +-- .../upload/FileUpload.unit.ts | 8 +-- .../PreviewGenerator.composable.unit.ts | 6 +- .../SubmissionContentElement.unit.ts | 4 +- .../RichTextContentElement.unit.ts | 10 +-- src/modules/feature/board/board/Board.unit.ts | 14 ++-- .../feature/board/board/BoardColumn.unit.ts | 2 +- .../board/board/BoardColumnHeader.unit.ts | 4 +- .../feature/board/board/BoardHeader.unit.ts | 4 +- .../feature/board/card/CardHost.unit.ts | 6 +- .../AddElementDialog.composable.unit.ts | 30 ++++----- .../board/shared/AddElementDialog.unit.ts | 4 +- .../board/test-utils/AddElementDialogMock.ts | 12 ++-- .../sharedElementTypeSelectionMock.ts | 2 +- .../course-sync/GroupSelectionDialog.unit.ts | 2 +- .../StartNewCourseSyncDialog.unit.ts | 2 +- src/modules/feature/editor/CKEditor.unit.ts | 2 +- .../feature/media-shelf/MediaBoard.unit.ts | 2 +- .../MediaBoardAvailableLine.unit.ts | 2 +- .../media-shelf/MediaBoardLine.unit.ts | 2 +- .../class-members/ClassMembers.page.unit.ts | 2 +- .../page/media-shelf/MediaShelf.page.unit.ts | 2 +- .../page/room/RoomParticipants.page.unit.ts | 2 +- .../ui/board/BoardMenuActionDelete.unit.ts | 2 +- .../BoardMenuActionMoveColumnDown.unit.ts | 2 +- .../board/BoardMenuActionMoveColumnUp.unit.ts | 2 +- .../ui/board/BoardMenuActionMoveDown.unit.ts | 2 +- .../ui/board/BoardMenuActionMoveLeft.unit.ts | 2 +- .../ui/board/BoardMenuActionMoveRight.unit.ts | 2 +- .../ui/board/BoardMenuActionMoveUp.unit.ts | 2 +- .../ConfirmationDialog.unit.ts | 6 +- .../DeleteConfirmation.composable.unit.ts | 4 +- .../SidebarSelection.composable.unit.ts | 6 +- .../ui/layout/topbar/LanguageMenu.unit.ts | 2 +- .../ui/layout/topbar/PageShare.unit.ts | 10 +-- src/modules/ui/layout/topbar/UserMenu.unit.ts | 2 +- src/modules/ui/light-box/LightBox.unit.ts | 4 +- .../ui/room-details/RoomDotMenu.unit.ts | 2 +- .../ui/room-details/RoomLessonCard.unit.ts | 2 +- src/pages/ErrorPage.unit.ts | 14 ++-- .../administration/ClassOverview.page.unit.ts | 4 +- .../administration/RoomsOverview.page.unit.ts | 12 ++-- .../administration/ldap-activate.unit.js | 6 +- src/pages/administration/ldap-config.unit.js | 8 +-- src/pages/administration/migration.unit.ts | 2 +- ...choolExternalToolConfigurator.page.unit.ts | 2 +- .../administration/student-consent.unit.js | 18 +++--- .../administration/student-create.unit.js | 8 +-- .../administration/student-overview.unit.js | 10 +-- .../administration/teacher-create.unit.js | 6 +- .../administration/teacher-overview.unit.js | 10 +-- ...ntextExternalToolConfigurator.page.unit.ts | 6 +- .../CourseRoomDetails.page.unit.ts | 14 ++-- .../CourseRoomOverview.page.unit.js | 2 +- .../tools/RoomExternalToolsSection.unit.ts | 4 +- .../tools/RoomVideoConferenceSection.unit.ts | 2 +- src/pages/tasks/TaskOverview.unit.ts | 2 +- src/router/guards/multi.guard.unit.ts | 10 +-- src/router/guards/permission.guard.unit.ts | 4 +- .../validate-query-parameters.guard.unit.ts | 6 +- src/store/accounts.unit.ts | 8 +-- src/store/auth.unit.ts | 6 +- src/store/autoLogout.unit.ts | 4 +- src/store/bulkConsent.unit.js | 6 +- src/store/content.unit.ts | 42 ++++++------ src/store/copy.unit.ts | 20 +++--- src/store/course-room-details.unit.ts | 30 ++++----- src/store/course-room-list.unit.ts | 12 ++-- src/store/courses.unit.js | 4 +- src/store/env-config.unit.ts | 14 ++-- src/store/filePaths.unit.ts | 6 +- src/store/finished-tasks.unit.ts | 12 ++-- src/store/import-users.unit.ts | 64 ++++++++----------- src/store/ldap-config.unit.js | 14 ++-- src/store/news.unit.ts | 12 ++-- src/store/schools.unit.ts | 8 +-- src/store/share.unit.ts | 6 +- src/store/status-alerts.unit.ts | 4 +- src/store/systems.unit.ts | 2 +- src/store/tasks.unit.ts | 10 +-- src/store/users.unit.js | 12 ++-- src/utils/fileHelper.unit.ts | 6 +- src/utils/helpers.unit.js | 2 +- src/utils/mock-store-module.ts | 4 +- .../api-mocks/fileStorageApiMock.ts | 10 +-- .../setupConfirmationComposableMock.ts | 4 +- .../setupDeleteConfirmationComposableMock.ts | 2 +- tests/test-utils/pageStubs.js | 14 ++-- vitest.config.mts | 3 + 143 files changed, 493 insertions(+), 498 deletions(-) diff --git a/VUE3-UPGRADE-RESULTS/TESTING.md b/VUE3-UPGRADE-RESULTS/TESTING.md index c3ce14fd82..3f70303619 100644 --- a/VUE3-UPGRADE-RESULTS/TESTING.md +++ b/VUE3-UPGRADE-RESULTS/TESTING.md @@ -42,7 +42,7 @@ const mockRoute = { } } const mockRouter = { - push: jest.fn() + push: vi.fn() } const wrapper = mount(Component, { diff --git a/__mocks__/maska.ts b/__mocks__/maska.ts index 2e6733afbf..b2ea6aafe9 100644 --- a/__mocks__/maska.ts +++ b/__mocks__/maska.ts @@ -3,6 +3,6 @@ */ // eslint-disable-next-line no-undef -const vMaska = jest.fn(); +const vMaska = vi.fn(); export { vMaska }; diff --git a/src/components/administration/external-tool-section-utils.composable.unit.ts b/src/components/administration/external-tool-section-utils.composable.unit.ts index cf8eeb9cfd..4b27d96a09 100644 --- a/src/components/administration/external-tool-section-utils.composable.unit.ts +++ b/src/components/administration/external-tool-section-utils.composable.unit.ts @@ -17,7 +17,7 @@ import { SchoolExternalTool } from "@/store/external-tool"; describe("useSchoolExternalToolUtils", () => { const setup = (schoolExternalTool: SchoolExternalTool) => { const expectedTranslation = "translated"; - const tMock = jest.fn().mockReturnValue(expectedTranslation); + const tMock = vi.fn().mockReturnValue(expectedTranslation); const { getHeaders, getItems } = useExternalToolsSectionUtils(tMock); diff --git a/src/components/atoms/vRoomAvatar.unit.ts b/src/components/atoms/vRoomAvatar.unit.ts index 2a20de8c76..8b4b4ecd55 100644 --- a/src/components/atoms/vRoomAvatar.unit.ts +++ b/src/components/atoms/vRoomAvatar.unit.ts @@ -131,7 +131,7 @@ describe("vRoomAvatar", () => { it("should not redirect to room page if condenseLayout props is true", async () => { Object.defineProperty(window, "location", { - set: jest.fn(), + set: vi.fn(), get: () => createMock(), }); const locationSpy = jest.spyOn(window, "location", "set"); diff --git a/src/components/base/BaseDialog/BaseDialog.unit.js b/src/components/base/BaseDialog/BaseDialog.unit.js index 8ca0b45c8b..6679216188 100644 --- a/src/components/base/BaseDialog/BaseDialog.unit.js +++ b/src/components/base/BaseDialog/BaseDialog.unit.js @@ -84,7 +84,7 @@ describe("@/components/base/BaseDialog", () => { }); it("should call onConfirm prop on primary action click", async () => { - const callbackStub = jest.fn(); + const callbackStub = vi.fn(); const wrapper = mountDialog({ props: { active: true, @@ -99,7 +99,7 @@ describe("@/components/base/BaseDialog", () => { }); it("should call onCancel prop on secondary action click", async () => { - const callbackStub = jest.fn(); + const callbackStub = vi.fn(); const wrapper = mountDialog({ props: { active: true, diff --git a/src/components/error-handling/ErrorHandler.composable.unit.ts b/src/components/error-handling/ErrorHandler.composable.unit.ts index 01463b4afc..898e19a9e1 100644 --- a/src/components/error-handling/ErrorHandler.composable.unit.ts +++ b/src/components/error-handling/ErrorHandler.composable.unit.ts @@ -28,7 +28,7 @@ keys.forEach((key) => (translationMap[key] = key)); jest.mock("vue-i18n", () => { return { ...jest.requireActual("vue-i18n"), - useI18n: jest.fn().mockReturnValue({ + useI18n: vi.fn().mockReturnValue({ t: (key: string) => { return translationMap[key] || "error.generic"; }, @@ -80,7 +80,7 @@ describe("ErrorHandler.Composable", () => { mockedIsAxiosError.mockReturnValueOnce(true); const errorResponse = mockErrorResponse(); - const handle404Mock = jest.fn(); + const handle404Mock = vi.fn(); handleError(errorResponse, { 404: handle404Mock }); @@ -115,7 +115,7 @@ describe("ErrorHandler.Composable", () => { mockedIsAxiosError.mockReturnValueOnce(true); const errorResponse = mockErrorResponse(); - const handleCallbackMock = jest.fn(); + const handleCallbackMock = vi.fn(); handleAnyError(errorResponse, handleCallbackMock); diff --git a/src/components/lern-store/AddContentModal.unit.ts b/src/components/lern-store/AddContentModal.unit.ts index ab2cf798d7..21360af570 100644 --- a/src/components/lern-store/AddContentModal.unit.ts +++ b/src/components/lern-store/AddContentModal.unit.ts @@ -92,7 +92,7 @@ const lessons = { initializeAxios(createMock()); const createMockStore = () => { - const createStudentStub = jest.fn(); + const createStudentStub = vi.fn(); const mockStore = createStore({ modules: { courses: { diff --git a/src/components/lern-store/LernstoreCollectionDetailView.unit.js b/src/components/lern-store/LernstoreCollectionDetailView.unit.js index 613bcf3e21..e728ffe302 100644 --- a/src/components/lern-store/LernstoreCollectionDetailView.unit.js +++ b/src/components/lern-store/LernstoreCollectionDetailView.unit.js @@ -50,9 +50,9 @@ describe("@/components/organisms/LernstoreCollectionDetailView", () => { RouterLink: RouterLinkStub, }, computed: { - loading: () => jest.fn(), - elements: () => jest.fn(), - selected: () => jest.fn(), + loading: () => vi.fn(), + elements: () => vi.fn(), + selected: () => vi.fn(), }, state: { loading: true, diff --git a/src/components/molecules/ApplicationErrorRouting.unit.ts b/src/components/molecules/ApplicationErrorRouting.unit.ts index 2ea2ad617c..7de686075f 100644 --- a/src/components/molecules/ApplicationErrorRouting.unit.ts +++ b/src/components/molecules/ApplicationErrorRouting.unit.ts @@ -12,8 +12,8 @@ import { Router, useRouter } from "vue-router"; import ApplicationErrorRouting from "./ApplicationErrorRouting.vue"; jest.mock("vue-router", () => ({ - useRoute: jest.fn(), - useRouter: jest.fn(), + useRoute: vi.fn(), + useRouter: vi.fn(), })); describe("@/components/molecules/ApplicationErrorRouting.vue", () => { diff --git a/src/components/molecules/CommonCartridgeExportModal.unit.ts b/src/components/molecules/CommonCartridgeExportModal.unit.ts index 3c93210924..1b33f99cb3 100644 --- a/src/components/molecules/CommonCartridgeExportModal.unit.ts +++ b/src/components/molecules/CommonCartridgeExportModal.unit.ts @@ -26,8 +26,8 @@ describe("@/components/molecules/CommonCartridgeExportModal", () => { getTopics: ["topic"], getTasks: ["task"], getColumnBoards: ["columnBoards"], - startExport: jest.fn(), - resetExportFlow: jest.fn(), + startExport: vi.fn(), + resetExportFlow: vi.fn(), }); courseRoomDetailsModuleMock = createModuleMocks(courseRoomDetailsModule, { getRoomData: { diff --git a/src/components/molecules/RoomTaskCard.unit.ts b/src/components/molecules/RoomTaskCard.unit.ts index f978d7114c..3339b80d75 100644 --- a/src/components/molecules/RoomTaskCard.unit.ts +++ b/src/components/molecules/RoomTaskCard.unit.ts @@ -181,7 +181,7 @@ const studentTestTask = { }; const mockRouter = { - push: jest.fn(), + push: vi.fn(), }; const getWrapper = ( @@ -232,7 +232,7 @@ describe("@/components/molecules/RoomTaskCard", () => { it("should redirect to homework page", async () => { Object.defineProperty(window, "location", { - set: jest.fn(), + set: vi.fn(), get: () => createMock(), }); const locationSpy = jest.spyOn(window, "location", "set"); @@ -247,7 +247,7 @@ describe("@/components/molecules/RoomTaskCard", () => { it("should NOT redirect to homework page if dragging is in progress", async () => { Object.defineProperty(window, "location", { - set: jest.fn(), + set: vi.fn(), get: () => createMock(), }); const locationSpy = jest.spyOn(window, "location", "set"); @@ -402,7 +402,7 @@ describe("@/components/molecules/RoomTaskCard", () => { }); it("should trigger the 'redirectAction' method when 'more action' edit button is clicked", async () => { - const redirectAction = jest.fn(); + const redirectAction = vi.fn(); const wrapper = getWrapper({ task: testTask, userRole }); wrapper.vm.redirectAction = redirectAction; @@ -421,7 +421,7 @@ describe("@/components/molecules/RoomTaskCard", () => { }); it("should trigger the 'unPublishCard' method when 'more action' unpublish button is clicked", async () => { - const unPublishCardMock = jest.fn(); + const unPublishCardMock = vi.fn(); const wrapper = getWrapper({ task: testTask, userRole }); wrapper.vm.unPublishCard = unPublishCardMock; @@ -437,7 +437,7 @@ describe("@/components/molecules/RoomTaskCard", () => { }); it("should trigger the 'restoreCard' method when 'more action' restore button is clicked", async () => { - const restoreCardMock = jest.fn(); + const restoreCardMock = vi.fn(); const wrapper = getWrapper({ task: finishedTestTask, userRole }); wrapper.vm.restoreCard = restoreCardMock; @@ -467,7 +467,7 @@ describe("@/components/molecules/RoomTaskCard", () => { }); it("should trigger the 'publishCard' method when 'Publish' button is clicked on a draft", async () => { - const publishCardMock = jest.fn(); + const publishCardMock = vi.fn(); const wrapper = getWrapper({ task: draftTestTask, userRole }); wrapper.vm.publishCard = publishCardMock; @@ -480,7 +480,7 @@ describe("@/components/molecules/RoomTaskCard", () => { }); it("should trigger the 'publishCard' method when 'Publish' button is clicked on a planned task", async () => { - const publishCardMock = jest.fn(); + const publishCardMock = vi.fn(); const wrapper = getWrapper({ task: plannedTestTask, userRole }); wrapper.vm.publishCard = publishCardMock; @@ -493,7 +493,7 @@ describe("@/components/molecules/RoomTaskCard", () => { }); it("should trigger the 'finishCard' method when 'Finish' button is clicked", async () => { - const finishCardMock = jest.fn(); + const finishCardMock = vi.fn(); const wrapper = getWrapper({ task: testTask, userRole }); wrapper.vm.finishCard = finishCardMock; @@ -579,7 +579,7 @@ describe("@/components/molecules/RoomTaskCard", () => { FEATURE_COPY_SERVICE_ENABLED: true, }); envConfigModule.setEnvs(envs); - const copyCard = jest.fn(); + const copyCard = vi.fn(); const wrapper = getWrapper({ task: testTask, userRole }); wrapper.vm.copyCard = copyCard; @@ -626,7 +626,7 @@ describe("@/components/molecules/RoomTaskCard", () => { }); it("should have finish button if task is not marked as finished", async () => { - const finishCardMock = jest.fn(); + const finishCardMock = vi.fn(); const wrapper = getWrapper({ task: studentTestTask, userRole }); wrapper.vm.finishCard = finishCardMock; const actionButton = wrapper.findComponent( @@ -642,7 +642,7 @@ describe("@/components/molecules/RoomTaskCard", () => { }); it("should trigger the 'restoreCard' method when 'more action' restore button is clicked", async () => { - const restoreCardMock = jest.fn(); + const restoreCardMock = vi.fn(); const wrapper = getWrapper({ task: studentFinishedTestTask, userRole }); wrapper.vm.restoreCard = restoreCardMock; @@ -805,7 +805,7 @@ describe("@/components/molecules/RoomTaskCard", () => { const wrapper = getWrapper({ task: testTask, userRole }); Object.defineProperty(window, "location", { - set: jest.fn(), + set: vi.fn(), get: () => createMock(), }); diff --git a/src/components/molecules/TaskItemStudent.unit.ts b/src/components/molecules/TaskItemStudent.unit.ts index f9ae08bf29..13f01dea9b 100644 --- a/src/components/molecules/TaskItemStudent.unit.ts +++ b/src/components/molecules/TaskItemStudent.unit.ts @@ -23,7 +23,7 @@ let copyModuleMock: CopyModule; let notifierModuleMock: NotifierModule; const mockRouter = { - push: jest.fn(), + push: vi.fn(), }; const getWrapper = (props: object, options?: object) => { @@ -53,7 +53,7 @@ describe("@/components/molecules/TaskItemStudent", () => { it("Should direct user to legacy task details page", () => { Object.defineProperty(window, "location", { - set: jest.fn(), + set: vi.fn(), get: () => createMock(), }); const locationSpy = jest.spyOn(window, "location", "set"); diff --git a/src/components/molecules/TaskItemTeacher.unit.ts b/src/components/molecules/TaskItemTeacher.unit.ts index f709a6fae4..aafc918d18 100644 --- a/src/components/molecules/TaskItemTeacher.unit.ts +++ b/src/components/molecules/TaskItemTeacher.unit.ts @@ -36,7 +36,7 @@ let copyModuleMock: CopyModule; let notifierModuleMock: NotifierModule; const mockRouter = { - push: jest.fn(), + push: vi.fn(), }; const getWrapper = (props: { task: object }) => { @@ -76,7 +76,7 @@ describe("@/components/molecules/TaskItemTeacher", () => { it("should direct user to legacy task details page", () => { Object.defineProperty(window, "location", { - set: jest.fn(), + set: vi.fn(), get: () => createMock(), }); const locationSpy = jest.spyOn(window, "location", "set"); diff --git a/src/components/organisms/DataFilter/DataFilter.unit.ts b/src/components/organisms/DataFilter/DataFilter.unit.ts index 092e5438a4..c7cb72f869 100644 --- a/src/components/organisms/DataFilter/DataFilter.unit.ts +++ b/src/components/organisms/DataFilter/DataFilter.unit.ts @@ -11,9 +11,9 @@ jest.mock("./composables/filter.composable"); const mockedUseBoardApi = jest.mocked(useDataTableFilter); describe("@components/DataFilter/DataFilter.vue", () => { - const updateFilterMock = jest.fn(); - const removeFilterMock = jest.fn(); - const removeChipFilterMock = jest.fn(); + const updateFilterMock = vi.fn(); + const removeFilterMock = vi.fn(); + const removeChipFilterMock = vi.fn(); const defaultFilterMenuItems = [ { label: "Registration", value: "consentStatus" }, { label: "Class(es)", value: "classes" }, diff --git a/src/components/organisms/DataFilter/composables/filter.composable.unit.ts b/src/components/organisms/DataFilter/composables/filter.composable.unit.ts index bfa722c960..dfdae23ae4 100644 --- a/src/components/organisms/DataFilter/composables/filter.composable.unit.ts +++ b/src/components/organisms/DataFilter/composables/filter.composable.unit.ts @@ -19,14 +19,14 @@ const defaultState = { jest.mock("@vueuse/core", () => { return { ...jest.requireActual("@vueuse/core"), - useStorage: jest.fn().mockReturnValue({ value: defaultState }), + useStorage: vi.fn().mockReturnValue({ value: defaultState }), }; }); jest.mock("vue-i18n", () => { return { ...jest.requireActual("vue-i18n"), - useI18n: jest.fn().mockReturnValue({ t: (key: string) => key }), + useI18n: vi.fn().mockReturnValue({ t: (key: string) => key }), }; }); diff --git a/src/components/organisms/DataFilter/composables/localStorage.composable.unit.ts b/src/components/organisms/DataFilter/composables/localStorage.composable.unit.ts index d71543b7fa..eaed8f1bde 100644 --- a/src/components/organisms/DataFilter/composables/localStorage.composable.unit.ts +++ b/src/components/organisms/DataFilter/composables/localStorage.composable.unit.ts @@ -18,7 +18,7 @@ const defaultState = { jest.mock("@vueuse/core", () => { return { ...jest.requireActual("@vueuse/core"), - useStorage: jest.fn().mockReturnValue({ value: defaultState }), + useStorage: vi.fn().mockReturnValue({ value: defaultState }), }; }); diff --git a/src/components/organisms/DataTable/BackendDataTable.unit.js b/src/components/organisms/DataTable/BackendDataTable.unit.js index 48cb4910d3..83c682ed11 100644 --- a/src/components/organisms/DataTable/BackendDataTable.unit.js +++ b/src/components/organisms/DataTable/BackendDataTable.unit.js @@ -416,7 +416,7 @@ describe("@/components/organisms/DataTable/BackendDataTable", () => { it("can trigger on selected rows", async () => { const totalSelections = testData.length; const selection = [...Array(totalSelections).keys()].map(String); - const testAction = jest.fn(); + const testAction = vi.fn(); const actionLabel = "TestAction"; const wrapper = getWrapper({ rowsSelectable: true, diff --git a/src/components/organisms/FormCreateUser.unit.js b/src/components/organisms/FormCreateUser.unit.js index 72fe418d15..7e791a9e67 100644 --- a/src/components/organisms/FormCreateUser.unit.js +++ b/src/components/organisms/FormCreateUser.unit.js @@ -11,15 +11,15 @@ const validRole = { }; const getMockActions = () => ({ - findStudents: jest.fn().mockReturnValue(Promise.resolve()), - find: jest.fn().mockReturnValue(Promise.resolve(validRole)), + findStudents: vi.fn().mockReturnValue(Promise.resolve()), + find: vi.fn().mockReturnValue(Promise.resolve(validRole)), }); const getMockActionsErrorCreate = () => ({ create: () => { throw new Error("Duplicate Mail"); }, - find: jest.fn().mockReturnValue(Promise.resolve(validRole)), + find: vi.fn().mockReturnValue(Promise.resolve(validRole)), }); describe("@/components/organisms/FormCreateUser", () => { diff --git a/src/components/organisms/administration/AuthSystems.unit.js b/src/components/organisms/administration/AuthSystems.unit.js index a20bab37b1..c01dad7269 100644 --- a/src/components/organisms/administration/AuthSystems.unit.js +++ b/src/components/organisms/administration/AuthSystems.unit.js @@ -54,7 +54,7 @@ const searchStrings = { }; describe("AuthSystems", () => { - const RouterLinkStubMock = { ...RouterLinkStub, useLink: jest.fn() }; + const RouterLinkStubMock = { ...RouterLinkStub, useLink: vi.fn() }; const createWrapper = (options = {}) => { const wrapper = mount(AuthSystems, { global: { diff --git a/src/components/organisms/administration/ImportUsers.unit.ts b/src/components/organisms/administration/ImportUsers.unit.ts index 87d49d93b9..96628baead 100644 --- a/src/components/organisms/administration/ImportUsers.unit.ts +++ b/src/components/organisms/administration/ImportUsers.unit.ts @@ -323,7 +323,7 @@ describe("@/components/molecules/importUsers", () => { let getDataFromApiSpy: any; let wrapper: any; beforeEach(async () => { - getDataFromApiSpy = jest.fn(); + getDataFromApiSpy = vi.fn(); wrapper = getWrapper(mockData); wrapper.vm.getDataFromApi = getDataFromApiSpy; wrapper.vm.school.inMaintenance = true; diff --git a/src/components/share/ShareModal.unit.ts b/src/components/share/ShareModal.unit.ts index 2339de4c40..7e4d6ee1cc 100644 --- a/src/components/share/ShareModal.unit.ts +++ b/src/components/share/ShareModal.unit.ts @@ -46,8 +46,8 @@ describe("@/components/share/ShareModal", () => { shareModuleMock = createModuleMocks(ShareModule, { getIsShareModalOpen: true, getParentType: ShareTokenBodyParamsParentTypeEnum.Courses, - createShareUrl: jest.fn(), - resetShareFlow: jest.fn(), + createShareUrl: vi.fn(), + resetShareFlow: vi.fn(), }); notifierModuleMock = createModuleMocks(NotifierModule); diff --git a/src/components/share/ShareModalResult.unit.ts b/src/components/share/ShareModalResult.unit.ts index a3c68888da..9ffe7137ca 100644 --- a/src/components/share/ShareModalResult.unit.ts +++ b/src/components/share/ShareModalResult.unit.ts @@ -60,7 +60,7 @@ describe("@/components/share/ShareModalResult", () => { it("should write to clipboard and emit done onCopy()", async () => { const mockClipboard = { - writeText: jest.fn(), + writeText: vi.fn(), }; Object.assign(navigator, { clipboard: mockClipboard }); @@ -75,7 +75,7 @@ describe("@/components/share/ShareModalResult", () => { }); it("should follow href and emit done onMailShareUrl()", async () => { - const assignSpy = jest.fn(); + const assignSpy = vi.fn(); Object.defineProperty(window, "location", { set: () => createMock(), get: () => @@ -97,7 +97,7 @@ describe("@/components/share/ShareModalResult", () => { }); it("should use native platform share onShareMobilePlatflorm()", async () => { - const mockSharePromise = jest.fn().mockReturnValue(Promise.resolve()); + const mockSharePromise = vi.fn().mockReturnValue(Promise.resolve()); Object.assign(navigator, { share: mockSharePromise }); const { wrapper, shareUrl } = setup(); diff --git a/src/components/templates/RoomDashboard.unit.ts b/src/components/templates/RoomDashboard.unit.ts index 509ed6baa0..b62184f289 100644 --- a/src/components/templates/RoomDashboard.unit.ts +++ b/src/components/templates/RoomDashboard.unit.ts @@ -312,7 +312,7 @@ describe("@/components/templates/RoomDashboard.vue", () => { }); it("should be sorted the elements by keyboard'", async () => { - const moveByKeyboardMock = jest.fn().mockImplementation(() => ({})); + const moveByKeyboardMock = vi.fn().mockImplementation(() => ({})); const wrapper = getWrapper({ roomDataObject: mockData, role: "teacher" }); wrapper.vm.moveByKeyboard = moveByKeyboardMock; @@ -330,7 +330,7 @@ describe("@/components/templates/RoomDashboard.vue", () => { }); it("should NOT be sorted the elements by keyboard for students'", async () => { - const moveByKeyboardMock = jest.fn().mockImplementation(() => ({})); + const moveByKeyboardMock = vi.fn().mockImplementation(() => ({})); const wrapper = getWrapper({ roomDataObject: mockData, role: "student" }); wrapper.vm.moveByKeyboard = moveByKeyboardMock; @@ -348,7 +348,7 @@ describe("@/components/templates/RoomDashboard.vue", () => { }); it("should set 'isDragging' false if 'tab' key is pressed", async () => { - const moveByKeyboardMock = jest.fn().mockImplementation(() => ({})); + const moveByKeyboardMock = vi.fn().mockImplementation(() => ({})); const wrapper = getWrapper({ roomDataObject: mockData, role: "teacher" }); wrapper.vm.moveByKeyboard = moveByKeyboardMock; @@ -413,7 +413,7 @@ describe("@/components/templates/RoomDashboard.vue", () => { }; it("should call the openItemDeleteDialog method when lesson should be deleted", async () => { - const openDeleteDialogMock = jest.fn(); + const openDeleteDialogMock = vi.fn(); const wrapper = getWrapper({ roomDataObject: mockData, role: "teacher" }); wrapper.vm.openItemDeleteDialog = openDeleteDialogMock; const lessonCard = wrapper.findComponent(".lesson-card"); @@ -425,7 +425,7 @@ describe("@/components/templates/RoomDashboard.vue", () => { }); it("should call the openItemDeleteDialog method when task should be deleted", async () => { - const openDeleteDialogMock = jest.fn(); + const openDeleteDialogMock = vi.fn(); const wrapper = getWrapper({ roomDataObject: mockData, role: "teacher" }); wrapper.vm.openItemDeleteDialog = openDeleteDialogMock; const taskCard = wrapper.findComponent(".task-card"); @@ -437,7 +437,7 @@ describe("@/components/templates/RoomDashboard.vue", () => { }); it("should call deleteItem method after modal emits 'dialog-confirmed'", async () => { - const deleteItemMock = jest.fn(); + const deleteItemMock = vi.fn(); const wrapper = getWrapper({ roomDataObject: mockData, role: "teacher" }); wrapper.vm.deleteItem = deleteItemMock; wrapper.vm.itemDelete.isOpen = true; @@ -449,9 +449,9 @@ describe("@/components/templates/RoomDashboard.vue", () => { }); it("should call store methods after modal emits 'dialog-confirmed' when deleting task", async () => { - const deleteTaskMock = jest.fn(); - const fetchContentMock = jest.fn(); - const deleteLessonMock = jest.fn(); + const deleteTaskMock = vi.fn(); + const fetchContentMock = vi.fn(); + const deleteLessonMock = vi.fn(); const wrapper = getWrapper({ roomDataObject: mockData, role: "teacher" }); courseRoomDetailsModule.deleteTask = deleteTaskMock; courseRoomDetailsModule.fetchContent = fetchContentMock; @@ -470,9 +470,9 @@ describe("@/components/templates/RoomDashboard.vue", () => { }); it("should call store methods after modal emits 'dialog-confirmed' when deleting lesson", async () => { - const deleteTaskMock = jest.fn(); - const fetchContentMock = jest.fn(); - const deleteLessonMock = jest.fn().mockResolvedValue(true); + const deleteTaskMock = vi.fn(); + const fetchContentMock = vi.fn(); + const deleteLessonMock = vi.fn().mockResolvedValue(true); const wrapper = getWrapper({ roomDataObject: mockData, role: "teacher" }); courseRoomDetailsModule.deleteTask = deleteTaskMock; courseRoomDetailsModule.fetchContent = fetchContentMock; @@ -505,7 +505,7 @@ describe("@/components/templates/RoomDashboard.vue", () => { describe("Finishing and Restoring Tasks", () => { describe("For teachers", () => { it("should call finishTask action", async () => { - const finishTaskMock = jest.fn(); + const finishTaskMock = vi.fn(); const wrapper = getWrapper({ roomDataObject: mockData, role: "teacher", @@ -520,7 +520,7 @@ describe("@/components/templates/RoomDashboard.vue", () => { }); it("should call restoreTask action", async () => { - const finishTaskMock = jest.fn(); + const finishTaskMock = vi.fn(); const wrapper = getWrapper({ roomDataObject: mockData, role: "teacher", @@ -537,7 +537,7 @@ describe("@/components/templates/RoomDashboard.vue", () => { describe("For students", () => { it("should call finishTask action", async () => { - const finishTaskMock = jest.fn(); + const finishTaskMock = vi.fn(); const wrapper = getWrapper({ roomDataObject: mockData, role: "student", @@ -552,7 +552,7 @@ describe("@/components/templates/RoomDashboard.vue", () => { }); it("should call restoreTask action", async () => { - const finishTaskMock = jest.fn(); + const finishTaskMock = vi.fn(); const wrapper = getWrapper({ roomDataObject: mockData, role: "student", @@ -569,7 +569,7 @@ describe("@/components/templates/RoomDashboard.vue", () => { describe("Publishing and unpublishing a board", () => { it("should call publishBoard action", async () => { - const publishCardMock = jest.fn(); + const publishCardMock = vi.fn(); const wrapper = getWrapper({ roomDataObject: mockData, role: "teacher", @@ -593,7 +593,7 @@ describe("@/components/templates/RoomDashboard.vue", () => { }); it("should call the copyTask method when a task component emits 'copy-task' custom event", async () => { - const copyTaskMock = jest.fn(); + const copyTaskMock = vi.fn(); const wrapper = getWrapper({ roomDataObject: mockData, role: "teacher" }); wrapper.vm.copyTask = copyTaskMock; @@ -632,7 +632,7 @@ describe("@/components/templates/RoomDashboard.vue", () => { }); it("should call the copyLesson method when a lesson component emits 'copy-lesson' custom event", async () => { - const copyLessonMock = jest.fn(); + const copyLessonMock = vi.fn(); const wrapper = getWrapper({ roomDataObject: mockData, role: "teacher" }); wrapper.vm.copyLesson = copyLessonMock; @@ -671,7 +671,7 @@ describe("@/components/templates/RoomDashboard.vue", () => { }); it("should call the copyBoard method when a board component emits 'copy-board' custom event", async () => { - const copyBoardMock = jest.fn(); + const copyBoardMock = vi.fn(); const wrapper = getWrapper({ roomDataObject: mockData, role: "teacher" }); wrapper.vm.copyBoard = copyBoardMock; diff --git a/src/components/templates/TasksDashboardMain.unit.ts b/src/components/templates/TasksDashboardMain.unit.ts index deac54f87b..29ac55c1f8 100644 --- a/src/components/templates/TasksDashboardMain.unit.ts +++ b/src/components/templates/TasksDashboardMain.unit.ts @@ -33,7 +33,7 @@ const $route = { }, }; -const $router = { replace: jest.fn(), resolve: jest.fn() }; +const $router = { replace: vi.fn(), resolve: vi.fn() }; const defaultTasksModuleGetters: Partial = { getStatus: "completed", diff --git a/src/composables/copy.unit.ts b/src/composables/copy.unit.ts index 1d84e8e283..3e62199f67 100644 --- a/src/composables/copy.unit.ts +++ b/src/composables/copy.unit.ts @@ -135,7 +135,7 @@ describe("copy composable", () => { it("should open failure alert notification on server error", async () => { const { copy, copyModuleMock, notifierModuleMock, payload } = setup(); - copyModuleMock.copy = jest.fn().mockRejectedValue(false); + copyModuleMock.copy = vi.fn().mockRejectedValue(false); await copy(payload); diff --git a/src/layouts/LoggedIn.unit.ts b/src/layouts/LoggedIn.unit.ts index d1168afeb6..30327061cb 100644 --- a/src/layouts/LoggedIn.unit.ts +++ b/src/layouts/LoggedIn.unit.ts @@ -94,8 +94,8 @@ const defineWindowWidth = (width = 1564) => { window.dispatchEvent(new Event("resize")); }; -const mockGetLocalStorage = jest.fn(); -const mockSetLocalStorage = jest.fn(); +const mockGetLocalStorage = vi.fn(); +const mockSetLocalStorage = vi.fn(); Object.defineProperty(window, "localStorage", { value: { getItem: mockGetLocalStorage, diff --git a/src/layouts/lernStore.layout.unit.ts b/src/layouts/lernStore.layout.unit.ts index 95ecb6331b..d2b347f097 100644 --- a/src/layouts/lernStore.layout.unit.ts +++ b/src/layouts/lernStore.layout.unit.ts @@ -19,7 +19,7 @@ const query = { }; jest.mock("vue-router", () => ({ - useRoute: jest.fn(), + useRoute: vi.fn(), })); const useRouteMock = useRoute; diff --git a/src/layouts/loggedOut.layout.unit.ts b/src/layouts/loggedOut.layout.unit.ts index ed8f110ae9..16d3e1d9fd 100644 --- a/src/layouts/loggedOut.layout.unit.ts +++ b/src/layouts/loggedOut.layout.unit.ts @@ -38,10 +38,10 @@ describe("loggedOutLayout", () => { const $route = { path: "home" }; const $router = { - push: jest.fn(), + push: vi.fn(), currentRoute: { value: $route }, - replace: jest.fn(), - afterEach: jest.fn(), + replace: vi.fn(), + afterEach: vi.fn(), }; useRouterMock.mockReturnValue($router); diff --git a/src/mixins/print.unit.js b/src/mixins/print.unit.js index 949f0544af..01958cc58b 100644 --- a/src/mixins/print.unit.js +++ b/src/mixins/print.unit.js @@ -7,15 +7,15 @@ const getNewWindowMock = () => { get innerHTML() { return content; }, - write: jest.fn().mockImplementation((...args) => { + write: vi.fn().mockImplementation((...args) => { args.forEach((text) => (content += text)); }), - close: jest.fn(), + close: vi.fn(), }, - addEventListener: jest.fn().mockImplementation((event, cb) => cb()), - focus: jest.fn(), - print: jest.fn(), - close: jest.fn(), + addEventListener: vi.fn().mockImplementation((event, cb) => cb()), + focus: vi.fn(), + print: vi.fn(), + close: vi.fn(), }; }; diff --git a/src/modules/data/board/Board.store.unit.ts b/src/modules/data/board/Board.store.unit.ts index 021c7451c6..8e531e359a 100644 --- a/src/modules/data/board/Board.store.unit.ts +++ b/src/modules/data/board/Board.store.unit.ts @@ -62,7 +62,7 @@ const useRouteMock = useRoute; jest.mock("vue-i18n", () => { return { ...jest.requireActual("vue-i18n"), - useI18n: () => ({ t: jest.fn().mockImplementation((key) => key) }), + useI18n: () => ({ t: vi.fn().mockImplementation((key) => key) }), }; }); @@ -113,7 +113,7 @@ describe("BoardStore", () => { createMock>(); mockedUseCardSocketApi.mockReturnValue(mockedCardSocketApiActions); - setEditModeId = jest.fn(); + setEditModeId = vi.fn(); mockedSharedEditMode.mockReturnValue({ setEditModeId, editModeId: ref(undefined), @@ -122,7 +122,7 @@ describe("BoardStore", () => { mockUseSharedLastCreatedElement.mockReturnValue({ lastCreatedElementId: computed(() => "element-id"), - resetLastCreatedElementId: jest.fn(), + resetLastCreatedElementId: vi.fn(), }); mockedBoardFocusCalls = @@ -169,10 +169,10 @@ describe("BoardStore", () => { const focusSetup = (id: string) => { const focusedId = ref(id); - const mockSetFocus = jest.fn().mockImplementation((id: string) => { + const mockSetFocus = vi.fn().mockImplementation((id: string) => { focusedId.value = id; }); - const mockForceFocus = jest.fn(); + const mockForceFocus = vi.fn(); mockedBoardFocusHandler.mockReturnValue({ setFocus: mockSetFocus, forceFocus: mockForceFocus, diff --git a/src/modules/data/board/BoardFocusHandler.composable.unit.ts b/src/modules/data/board/BoardFocusHandler.composable.unit.ts index 4dc08c2b73..bea295adcb 100644 --- a/src/modules/data/board/BoardFocusHandler.composable.unit.ts +++ b/src/modules/data/board/BoardFocusHandler.composable.unit.ts @@ -33,7 +33,7 @@ describe("BoardFocusHandler composable", () => { }); describe("forceFocus method", () => { - const mockGetElementById = jest.fn(); + const mockGetElementById = vi.fn(); Object.defineProperty(global.document, "getElementById", { value: mockGetElementById, }); diff --git a/src/modules/data/board/BoardPageInformation.composable.unit.ts b/src/modules/data/board/BoardPageInformation.composable.unit.ts index fdfe1001d7..90f888408e 100644 --- a/src/modules/data/board/BoardPageInformation.composable.unit.ts +++ b/src/modules/data/board/BoardPageInformation.composable.unit.ts @@ -17,7 +17,7 @@ jest.mock( jest.mock("vue-i18n", () => { return { ...jest.requireActual("vue-i18n"), - useI18n: jest.fn().mockReturnValue({ t: (key: string) => key }), + useI18n: vi.fn().mockReturnValue({ t: (key: string) => key }), }; }); diff --git a/src/modules/data/board/Card.store.unit.ts b/src/modules/data/board/Card.store.unit.ts index b3c7fca778..3530aef194 100644 --- a/src/modules/data/board/Card.store.unit.ts +++ b/src/modules/data/board/Card.store.unit.ts @@ -108,7 +108,7 @@ describe("CardStore", () => { createMock>(); mockedBoardFocusHandler.mockReturnValue(mockedBoardFocusCalls); - setEditModeId = jest.fn(); + setEditModeId = vi.fn(); editModeId = ref(undefined); mockedSharedEditMode.mockReturnValue({ setEditModeId, @@ -146,10 +146,10 @@ describe("CardStore", () => { const focusSetup = (id: string) => { const focusedId = ref(id); - const mockSetFocus = jest.fn().mockImplementation((id: string) => { + const mockSetFocus = vi.fn().mockImplementation((id: string) => { focusedId.value = id; }); - const mockForceFocus = jest.fn(); + const mockForceFocus = vi.fn(); mockedBoardFocusHandler.mockReturnValue({ setFocus: mockSetFocus, forceFocus: mockForceFocus, diff --git a/src/modules/data/board/CardRequestPool.composable.unit.ts b/src/modules/data/board/CardRequestPool.composable.unit.ts index 642ccdec93..5381df045e 100644 --- a/src/modules/data/board/CardRequestPool.composable.unit.ts +++ b/src/modules/data/board/CardRequestPool.composable.unit.ts @@ -8,7 +8,7 @@ jest.mock("axios"); let mockReturnData: { data: { data: { id: string }[] } }; const cardsApiFactoryMock = { - cardControllerGetCards: jest.fn().mockImplementation(() => mockReturnData), + cardControllerGetCards: vi.fn().mockImplementation(() => mockReturnData), }; initializeAxios({ // eslint-disable-next-line @typescript-eslint/no-unused-vars diff --git a/src/modules/data/board/ContentElementState.unit.ts b/src/modules/data/board/ContentElementState.unit.ts index 564841bbb3..a1ee385457 100644 --- a/src/modules/data/board/ContentElementState.unit.ts +++ b/src/modules/data/board/ContentElementState.unit.ts @@ -32,7 +32,7 @@ const TEST_ELEMENT: RichTextElementResponse = { jest.mock("vue-i18n", () => { return { ...jest.requireActual("@vueuse/core"), - useI18n: jest.fn().mockReturnValue({ t: (key: string) => key }), + useI18n: vi.fn().mockReturnValue({ t: (key: string) => key }), }; }); diff --git a/src/modules/data/board/ariaNotification/ariaLiveNotificationHandler.unit.ts b/src/modules/data/board/ariaNotification/ariaLiveNotificationHandler.unit.ts index 46c5d912a6..57b4f2b3b9 100644 --- a/src/modules/data/board/ariaNotification/ariaLiveNotificationHandler.unit.ts +++ b/src/modules/data/board/ariaNotification/ariaLiveNotificationHandler.unit.ts @@ -28,19 +28,19 @@ const card = { jest.mock("vue-i18n", () => { return { ...jest.requireActual("vue-i18n"), - useI18n: jest.fn().mockReturnValue({ t: (key: string) => key }), + useI18n: vi.fn().mockReturnValue({ t: (key: string) => key }), }; }); jest.mock("../Board.store", () => ({ - useBoardStore: jest.fn().mockReturnValue({ - getColumnIndex: jest.fn().mockReturnValue(10), - getCardLocation: jest.fn().mockReturnValue(1), + useBoardStore: vi.fn().mockReturnValue({ + getColumnIndex: vi.fn().mockReturnValue(10), + getCardLocation: vi.fn().mockReturnValue(1), }), })); jest.mock("../Card.store", () => ({ - useCardStore: jest.fn().mockReturnValue({ + useCardStore: vi.fn().mockReturnValue({ cards: [card], }), })); @@ -48,7 +48,7 @@ jest.mock("../Card.store", () => ({ describe("useBoardAriaNotification", () => { jest.useFakeTimers(); - const mockNotifyOnScreenReader = jest.fn(); + const mockNotifyOnScreenReader = vi.fn(); jest.mock("@/composables/ariaLiveNotifier", () => ({ notifyOnScreenReader: () => mockNotifyOnScreenReader, })); diff --git a/src/modules/data/board/boardActions/boardRestApi.composable.unit.ts b/src/modules/data/board/boardActions/boardRestApi.composable.unit.ts index 7b0be97f7a..56b53b2b90 100644 --- a/src/modules/data/board/boardActions/boardRestApi.composable.unit.ts +++ b/src/modules/data/board/boardActions/boardRestApi.composable.unit.ts @@ -62,7 +62,7 @@ describe("boardRestApi", () => { ReturnType >; let setEditModeId: jest.Mock; - const setErrorMock = jest.fn(); + const setErrorMock = vi.fn(); beforeEach(() => { setActivePinia(createTestingPinia()); @@ -77,7 +77,7 @@ describe("boardRestApi", () => { mockedBoardApiCalls = createMock>(); mockedUseBoardApi.mockReturnValue(mockedBoardApiCalls); - setEditModeId = jest.fn(); + setEditModeId = vi.fn(); mockedSharedEditMode.mockReturnValue({ setEditModeId, editModeId: ref(undefined), @@ -204,7 +204,7 @@ describe("boardRestApi", () => { describe("@deleteBoardRequest", () => { it("should call 'deleteBoardSuccess'", async () => { - const deleteBoardMock = jest.fn(); + const deleteBoardMock = vi.fn(); const { boardStore } = setup(); const { deleteBoardRequest } = useBoardRestApi(); const boardId = boardStore.board!.id; @@ -220,7 +220,7 @@ describe("boardRestApi", () => { }); }); it("should call handleError if the API call fails", async () => { - const deleteBoardMock = jest.fn().mockRejectedValue({}); + const deleteBoardMock = vi.fn().mockRejectedValue({}); const { boardStore } = setup(); const { deleteBoardRequest } = useBoardRestApi(); const boardId = boardStore.board!.id; @@ -713,7 +713,7 @@ describe("boardRestApi", () => { const { updateBoardTitleRequest } = useBoardRestApi(); mockedBoardApiCalls.updateBoardTitleCall.mockRejectedValue({}); - mockedErrorHandler.notifyWithTemplate.mockReturnValue(jest.fn()); + mockedErrorHandler.notifyWithTemplate.mockReturnValue(vi.fn()); await updateBoardTitleRequest({ boardId: "boardId", @@ -729,7 +729,7 @@ describe("boardRestApi", () => { const { updateBoardTitleRequest } = useBoardRestApi(); mockedBoardApiCalls.updateBoardTitleCall.mockRejectedValue({}); - mockedErrorHandler.notifyWithTemplate.mockReturnValue(jest.fn()); + mockedErrorHandler.notifyWithTemplate.mockReturnValue(vi.fn()); await updateBoardTitleRequest({ boardId: "boardId", diff --git a/src/modules/data/board/boardInactivity.composable.unit.ts b/src/modules/data/board/boardInactivity.composable.unit.ts index c26f66dc6e..b804d2624e 100644 --- a/src/modules/data/board/boardInactivity.composable.unit.ts +++ b/src/modules/data/board/boardInactivity.composable.unit.ts @@ -26,7 +26,7 @@ import { Router, useRouter } from "vue-router"; jest.mock("vue-i18n", () => ({ useI18n: () => ({ - t: jest.fn().mockImplementation((key) => key), + t: vi.fn().mockImplementation((key) => key), }), })); @@ -67,7 +67,7 @@ describe("pageInactivity.composable", () => { mockUseSharedLastCreatedElement.mockReturnValue({ lastCreatedElementId: computed(() => "element-id"), - resetLastCreatedElementId: jest.fn(), + resetLastCreatedElementId: vi.fn(), }); mockBoardNotifierCalls = createMock>(); diff --git a/src/modules/data/board/cardActions/cardRestApi.composable.unit.ts b/src/modules/data/board/cardActions/cardRestApi.composable.unit.ts index 4d76c99cc6..d00b18ffe1 100644 --- a/src/modules/data/board/cardActions/cardRestApi.composable.unit.ts +++ b/src/modules/data/board/cardActions/cardRestApi.composable.unit.ts @@ -46,7 +46,7 @@ const useRouterMock = useRouter; jest.mock("vue-i18n", () => { return { ...jest.requireActual("vue-i18n"), - useI18n: () => ({ t: jest.fn().mockImplementation((key) => key) }), + useI18n: () => ({ t: vi.fn().mockImplementation((key) => key) }), }; }); @@ -85,7 +85,7 @@ describe("useCardRestApi", () => { mockedSharedCardRequestPoolCalls ); - setEditModeId = jest.fn(); + setEditModeId = vi.fn(); mockedSharedEditMode.mockReturnValue({ setEditModeId, editModeId: ref(undefined), @@ -503,7 +503,7 @@ describe("useCardRestApi", () => { cardStore.getCard.mockReturnValue(card); mockedBoardApiCalls.updateCardTitle.mockRejectedValue({}); - mockedErrorHandler.notifyWithTemplate.mockReturnValue(jest.fn()); + mockedErrorHandler.notifyWithTemplate.mockReturnValue(vi.fn()); await updateCardTitleRequest({ cardId: card.id, diff --git a/src/modules/data/board/cardActions/cardSocketApi.composable.unit.ts b/src/modules/data/board/cardActions/cardSocketApi.composable.unit.ts index cd37af83ab..3aa20334e1 100644 --- a/src/modules/data/board/cardActions/cardSocketApi.composable.unit.ts +++ b/src/modules/data/board/cardActions/cardSocketApi.composable.unit.ts @@ -83,7 +83,7 @@ describe("useCardSocketApi", () => { mockUseSharedLastCreatedElement.mockReturnValue({ lastCreatedElementId: computed(() => "element-id"), - resetLastCreatedElementId: jest.fn(), + resetLastCreatedElementId: vi.fn(), }); const router = createMock(); diff --git a/src/modules/data/board/socket/socket.unit.ts b/src/modules/data/board/socket/socket.unit.ts index f38a4efe0b..5704b0b308 100644 --- a/src/modules/data/board/socket/socket.unit.ts +++ b/src/modules/data/board/socket/socket.unit.ts @@ -30,7 +30,7 @@ jest.mock("../boardActions/boardRestApi.composable"); jest.mock("@vueuse/shared", () => { return { ...jest.requireActual("@vueuse/shared"), - useTimeoutFn: jest.fn().mockImplementation((cb: () => void) => { + useTimeoutFn: vi.fn().mockImplementation((cb: () => void) => { cb(); return { isPending: { value: false }, @@ -42,8 +42,8 @@ jest.mock("@vueuse/shared", () => { jest.mock("vue-router"); const useRouterMock = useRouter; -const startMock = jest.fn(); -const stopMock = jest.fn(); +const startMock = vi.fn(); +const stopMock = vi.fn(); const initializeTimeout = (isPending = false) => { const { useTimeoutFn } = jest.requireMock("@vueuse/shared"); useTimeoutFn.mockImplementation((cb: () => void) => { @@ -56,7 +56,7 @@ const initializeTimeout = (isPending = false) => { }); }; -const dispatchMock = jest.fn(); +const dispatchMock = vi.fn(); describe("socket.ts", () => { let mockSocket: Partial; @@ -77,15 +77,15 @@ describe("socket.ts", () => { }); envConfigModule.setEnvs(envs); - timeoutResponseMock = { emitWithAck: jest.fn() }; + timeoutResponseMock = { emitWithAck: vi.fn() }; mockSocket = { connected: false, - on: jest.fn(), - emit: jest.fn(), - connect: jest.fn(), - disconnect: jest.fn(), - onAny: jest.fn(), - timeout: jest.fn().mockReturnValue(timeoutResponseMock), + on: vi.fn(), + emit: vi.fn(), + connect: vi.fn(), + disconnect: vi.fn(), + onAny: vi.fn(), + timeout: vi.fn().mockReturnValue(timeoutResponseMock), }; mockSocketIOClient.io.mockReturnValue(mockSocket as socketModule.Socket); diff --git a/src/modules/data/external-tool/ContextExternalToolConfigurationStatus.composable.unit.ts b/src/modules/data/external-tool/ContextExternalToolConfigurationStatus.composable.unit.ts index 089f29d52f..c63754ee1a 100644 --- a/src/modules/data/external-tool/ContextExternalToolConfigurationStatus.composable.unit.ts +++ b/src/modules/data/external-tool/ContextExternalToolConfigurationStatus.composable.unit.ts @@ -11,7 +11,7 @@ import { useContextExternalToolConfigurationStatus } from "./ContextExternalTool jest.mock("vue-i18n", () => { return { ...jest.requireActual("vue-i18n"), - useI18n: jest.fn().mockReturnValue({ t: (key: string) => key }), + useI18n: vi.fn().mockReturnValue({ t: (key: string) => key }), }; }); diff --git a/src/modules/feature/board-collaborative-text-editor-element/CollaborativeTextEditorElement.unit.ts b/src/modules/feature/board-collaborative-text-editor-element/CollaborativeTextEditorElement.unit.ts index 7f61eb2bba..90e19ec0cc 100644 --- a/src/modules/feature/board-collaborative-text-editor-element/CollaborativeTextEditorElement.unit.ts +++ b/src/modules/feature/board-collaborative-text-editor-element/CollaborativeTextEditorElement.unit.ts @@ -18,9 +18,9 @@ import { setupCollaborativeTextEditorApiMock } from "./test-utils/collaborativeT // Mocks jest.mock("@data-board", () => ({ - useBoardFocusHandler: jest.fn(), - useContentElementState: jest.fn(() => ({ modelValue: {} })), - useDeleteConfirmationDialog: jest.fn(), + useBoardFocusHandler: vi.fn(), + useContentElementState: vi.fn(() => ({ modelValue: {} })), + useDeleteConfirmationDialog: vi.fn(), })); jest.mock("@feature-board"); jest.mock("./composables/CollaborativeTextEditorApi.composable"); @@ -34,7 +34,7 @@ describe("CollaborativeTextEditorElement", () => { const resolvedValue = props.getUrlHasError ? undefined : `${CollaborativeTextEditorParentType.ContentElement}/${element.id}`; - const getUrlMock = jest.fn().mockResolvedValueOnce(resolvedValue); + const getUrlMock = vi.fn().mockResolvedValueOnce(resolvedValue); const { getUrl } = setupCollaborativeTextEditorApiMock({ getUrlMock, diff --git a/src/modules/feature/board-collaborative-text-editor-element/composables/CollaborativeTextEditorNotifications.composable.unit.ts b/src/modules/feature/board-collaborative-text-editor-element/composables/CollaborativeTextEditorNotifications.composable.unit.ts index fab8bf3616..c8e6dc1ed1 100644 --- a/src/modules/feature/board-collaborative-text-editor-element/composables/CollaborativeTextEditorNotifications.composable.unit.ts +++ b/src/modules/feature/board-collaborative-text-editor-element/composables/CollaborativeTextEditorNotifications.composable.unit.ts @@ -8,14 +8,14 @@ import { useCollaborativeTextEditorNotifier } from "./CollaborativeTextEditorNot jest.mock("vue-i18n", () => { return { ...jest.requireActual("vue-i18n"), - useI18n: jest.fn().mockReturnValue({ + useI18n: vi.fn().mockReturnValue({ t: jest .fn() .mockImplementation( (key: string, dynamic?: object): string => key + (dynamic ? ` ${JSON.stringify(dynamic)}` : "") ), - n: jest.fn().mockImplementation((key: string) => key), + n: vi.fn().mockImplementation((key: string) => key), }), }; }); diff --git a/src/modules/feature/board-collaborative-text-editor-element/test-utils/collaborativeTextEditorApiMock.ts b/src/modules/feature/board-collaborative-text-editor-element/test-utils/collaborativeTextEditorApiMock.ts index e3060649c5..bd64785293 100644 --- a/src/modules/feature/board-collaborative-text-editor-element/test-utils/collaborativeTextEditorApiMock.ts +++ b/src/modules/feature/board-collaborative-text-editor-element/test-utils/collaborativeTextEditorApiMock.ts @@ -11,7 +11,7 @@ export const setupCollaborativeTextEditorApiMock = (props: Props = {}) => { useCollaborativeTextEditorApi ); - const getUrl = getUrlMock ?? jest.fn(); + const getUrl = getUrlMock ?? vi.fn(); const mocks = { getUrl, diff --git a/src/modules/feature/board-collaborative-text-editor-element/test-utils/collaborativeTextEditorNotifier.ts b/src/modules/feature/board-collaborative-text-editor-element/test-utils/collaborativeTextEditorNotifier.ts index a19b01e21c..9affe64a32 100644 --- a/src/modules/feature/board-collaborative-text-editor-element/test-utils/collaborativeTextEditorNotifier.ts +++ b/src/modules/feature/board-collaborative-text-editor-element/test-utils/collaborativeTextEditorNotifier.ts @@ -16,9 +16,9 @@ export const setupCollaborativeTextEditorNotifier = (props: Props = {}) => { const mockedSelectedFile = jest.mocked(useCollaborativeTextEditorNotifier); - const showForbiddenError = showForbiddenErrorMock ?? jest.fn(); - const showUnauthorizedError = showUnauthorizedErrorMock ?? jest.fn(); - const showInternalServerError = showInternalServerErrorMock ?? jest.fn(); + const showForbiddenError = showForbiddenErrorMock ?? vi.fn(); + const showUnauthorizedError = showUnauthorizedErrorMock ?? vi.fn(); + const showInternalServerError = showInternalServerErrorMock ?? vi.fn(); const mocks = { showForbiddenError, diff --git a/src/modules/feature/board-drawing-element/DrawingContentElement.unit.ts b/src/modules/feature/board-drawing-element/DrawingContentElement.unit.ts index 44c6ba3124..f949405766 100644 --- a/src/modules/feature/board-drawing-element/DrawingContentElement.unit.ts +++ b/src/modules/feature/board-drawing-element/DrawingContentElement.unit.ts @@ -22,9 +22,9 @@ import InnerContent from "./InnerContent.vue"; // Mocks jest.mock("@data-board", () => ({ - useBoardFocusHandler: jest.fn(), - useContentElementState: jest.fn(() => ({ modelValue: {} })), - useDeleteConfirmationDialog: jest.fn(), + useBoardFocusHandler: vi.fn(), + useContentElementState: vi.fn(() => ({ modelValue: {} })), + useDeleteConfirmationDialog: vi.fn(), })); jest.mock("@feature-board"); diff --git a/src/modules/feature/board-external-tool-element/ExternalToolElementConfigurationDialog.unit.ts b/src/modules/feature/board-external-tool-element/ExternalToolElementConfigurationDialog.unit.ts index 58646bfaa5..d49439ffe8 100644 --- a/src/modules/feature/board-external-tool-element/ExternalToolElementConfigurationDialog.unit.ts +++ b/src/modules/feature/board-external-tool-element/ExternalToolElementConfigurationDialog.unit.ts @@ -41,8 +41,8 @@ describe("ExternalToolElementConfigurationDialog", () => { template: "
", setup() { return { - fetchData: jest.fn(), - clearData: jest.fn(), + fetchData: vi.fn(), + clearData: vi.fn(), }; }, }, diff --git a/src/modules/feature/board-file-element/FileContentElement.unit.ts b/src/modules/feature/board-file-element/FileContentElement.unit.ts index 060eee8293..364798906a 100644 --- a/src/modules/feature/board-file-element/FileContentElement.unit.ts +++ b/src/modules/feature/board-file-element/FileContentElement.unit.ts @@ -26,8 +26,8 @@ import FileUpload from "./upload/FileUpload.vue"; jest.mock("@data-board", () => { return { - useBoardFocusHandler: jest.fn(), - useContentElementState: jest.fn(() => ({ modelValue: {} })), + useBoardFocusHandler: vi.fn(), + useContentElementState: vi.fn(() => ({ modelValue: {} })), }; }); jest.mock("@feature-board"); @@ -42,7 +42,7 @@ describe("FileContentElement", () => { }) => { const menu = "slot-menu"; - const addAlertMock = jest.fn(); + const addAlertMock = vi.fn(); jest.mocked(useFileAlerts).mockReturnValue({ addAlert: addAlertMock, alerts: computed(() => []), @@ -136,7 +136,7 @@ describe("FileContentElement", () => { isUploading: props?.isUploading, }); - const getFileRecordMock = jest.fn().mockImplementationOnce(() => { + const getFileRecordMock = vi.fn().mockImplementationOnce(() => { return ref(fileRecordResponse); }); const { fetchFile } = setupFileStorageApiMock({ @@ -430,7 +430,7 @@ describe("FileContentElement", () => { const element = fileElementResponseFactory.build(); document.body.setAttribute("data-app", "true"); - const uploadMock = jest.fn().mockRejectedValueOnce(new Error("test")); + const uploadMock = vi.fn().mockRejectedValueOnce(new Error("test")); setupFileStorageApiMock({ uploadMock, }); @@ -485,7 +485,7 @@ describe("FileContentElement", () => { previewStatus: props?.previewStatus ?? PreviewStatus.PREVIEW_POSSIBLE, isUploading: props?.isUploading, }); - const getFileRecordMock = jest.fn().mockImplementation(() => { + const getFileRecordMock = vi.fn().mockImplementation(() => { return ref(fileRecordResponse); }); const { fetchFile } = setupFileStorageApiMock({ diff --git a/src/modules/feature/board-file-element/content/display/audio-display/AudioDisplay.unit.ts b/src/modules/feature/board-file-element/content/display/audio-display/AudioDisplay.unit.ts index 4ee21c0a7c..33551333b0 100644 --- a/src/modules/feature/board-file-element/content/display/audio-display/AudioDisplay.unit.ts +++ b/src/modules/feature/board-file-element/content/display/audio-display/AudioDisplay.unit.ts @@ -14,7 +14,7 @@ jest.mock("@vueuse/core", () => { return { ...original, - useMediaControls: jest.fn(), + useMediaControls: vi.fn(), }; }); @@ -32,7 +32,7 @@ describe("AudioDisplay", () => { const durationRef = ref(50); const rateRef = ref(1); const playingRef = ref(false); - const onSourceErrorMock = jest.fn(); + const onSourceErrorMock = vi.fn(); const useMediaControlsMock = createMock< ReturnType diff --git a/src/modules/feature/board-file-element/content/display/image-display/ImageDisplay.unit.ts b/src/modules/feature/board-file-element/content/display/image-display/ImageDisplay.unit.ts index 33bcd51182..83aea22e16 100644 --- a/src/modules/feature/board-file-element/content/display/image-display/ImageDisplay.unit.ts +++ b/src/modules/feature/board-file-element/content/display/image-display/ImageDisplay.unit.ts @@ -32,7 +32,7 @@ describe("ImageDisplay", () => { }; const isLightBoxOpen = ref(false); - const open = jest.fn(); + const open = vi.fn(); mockedUseLightBox.mockReturnValue({ isLightBoxOpen, open }); mockedConvertDownloadToPreviewUrl.mockImplementation( diff --git a/src/modules/feature/board-file-element/content/display/pdf-display/PdfDisplay.unit.ts b/src/modules/feature/board-file-element/content/display/pdf-display/PdfDisplay.unit.ts index 21e0293397..b213fb5ba8 100644 --- a/src/modules/feature/board-file-element/content/display/pdf-display/PdfDisplay.unit.ts +++ b/src/modules/feature/board-file-element/content/display/pdf-display/PdfDisplay.unit.ts @@ -67,7 +67,7 @@ describe("PdfDisplay", () => { it("should call open function", () => { const { wrapper, src } = setup({ isEditMode: false }); - const windowOpenSpy = jest.fn(); + const windowOpenSpy = vi.fn(); window.open = windowOpenSpy; const image = wrapper.find("preview-image-stub"); diff --git a/src/modules/feature/board-file-element/content/footer/attributes/FileAttributes.unit.ts b/src/modules/feature/board-file-element/content/footer/attributes/FileAttributes.unit.ts index 8d7ee4e731..7f9c45562b 100644 --- a/src/modules/feature/board-file-element/content/footer/attributes/FileAttributes.unit.ts +++ b/src/modules/feature/board-file-element/content/footer/attributes/FileAttributes.unit.ts @@ -24,8 +24,8 @@ describe("FileAttributes", () => { .mocked(getFileExtension) .mockReturnValueOnce(extension); const i18nMock = jest.mocked(useI18n).mockReturnValue({ - t: jest.fn().mockImplementation((key: string) => key), - n: jest.fn().mockImplementation((key: string) => key), + t: vi.fn().mockImplementation((key: string) => key), + n: vi.fn().mockImplementation((key: string) => key), }); const wrapper = mount(FileAttributes, { diff --git a/src/modules/feature/board-file-element/shared/composables/FileStorageNotifications.composable.unit.ts b/src/modules/feature/board-file-element/shared/composables/FileStorageNotifications.composable.unit.ts index 6233b47265..6a8f569752 100644 --- a/src/modules/feature/board-file-element/shared/composables/FileStorageNotifications.composable.unit.ts +++ b/src/modules/feature/board-file-element/shared/composables/FileStorageNotifications.composable.unit.ts @@ -9,9 +9,9 @@ import { useFileStorageNotifier } from "./FileStorageNotifications.composable"; jest.mock("vue-i18n", () => { return { ...jest.requireActual("vue-i18n"), - useI18n: jest.fn().mockReturnValue({ - t: jest.fn().mockImplementation((key: string) => key), - n: jest.fn().mockImplementation((key: string) => key), + useI18n: vi.fn().mockReturnValue({ + t: vi.fn().mockImplementation((key: string) => key), + n: vi.fn().mockImplementation((key: string) => key), }), }; }); diff --git a/src/modules/feature/board-file-element/shared/test-utils/fileStorageNotifier.ts b/src/modules/feature/board-file-element/shared/test-utils/fileStorageNotifier.ts index b58bffc581..2df61c05ee 100644 --- a/src/modules/feature/board-file-element/shared/test-utils/fileStorageNotifier.ts +++ b/src/modules/feature/board-file-element/shared/test-utils/fileStorageNotifier.ts @@ -20,11 +20,11 @@ export const setupFileStorageNotifier = (props: Props = {}) => { const mockedSelectedFile = jest.mocked(useFileStorageNotifier); - const showFileTooBigError = showFileTooBigErrorMock ?? jest.fn(); - const showForbiddenError = showForbiddenErrorMock ?? jest.fn(); - const showUnauthorizedError = showUnauthorizedErrorMock ?? jest.fn(); - const showInternalServerError = showInternalServerErrorMock ?? jest.fn(); - const showFileExistsError = showFileExistsErrorMock ?? jest.fn(); + const showFileTooBigError = showFileTooBigErrorMock ?? vi.fn(); + const showForbiddenError = showForbiddenErrorMock ?? vi.fn(); + const showUnauthorizedError = showUnauthorizedErrorMock ?? vi.fn(); + const showInternalServerError = showInternalServerErrorMock ?? vi.fn(); + const showFileExistsError = showFileExistsErrorMock ?? vi.fn(); const mocks = { showFileTooBigError, diff --git a/src/modules/feature/board-file-element/upload/FileUpload.unit.ts b/src/modules/feature/board-file-element/upload/FileUpload.unit.ts index 54e59ed2d8..682ffacc05 100644 --- a/src/modules/feature/board-file-element/upload/FileUpload.unit.ts +++ b/src/modules/feature/board-file-element/upload/FileUpload.unit.ts @@ -69,7 +69,7 @@ describe("FileUpload", () => { setup(); const beforeUnloadEvent = new Event("beforeunload"); - const preventDefaultSpy = jest.fn(); + const preventDefaultSpy = vi.fn(); preventDefaultSpy.mockClear(); beforeUnloadEvent.preventDefault = preventDefaultSpy; @@ -157,7 +157,7 @@ describe("FileUpload", () => { filePicker.vm.$emit("update:file", { fileName: "Test.jpg" }); const beforeUnloadEvent = new Event("beforeunload"); - const preventDefaultSpy = jest.fn(); + const preventDefaultSpy = vi.fn(); beforeUnloadEvent.preventDefault = preventDefaultSpy; window.dispatchEvent(beforeUnloadEvent); @@ -215,7 +215,7 @@ describe("FileUpload", () => { setup(); const beforeUnloadEvent = new Event("beforeunload"); - const preventDefaultSpy = jest.fn(); + const preventDefaultSpy = vi.fn(); beforeUnloadEvent.preventDefault = preventDefaultSpy; window.dispatchEvent(beforeUnloadEvent); @@ -280,7 +280,7 @@ describe("FileUpload", () => { setup(); const beforeUnloadEvent = new Event("beforeunload"); - const preventDefaultSpy = jest.fn(); + const preventDefaultSpy = vi.fn(); beforeUnloadEvent.preventDefault = preventDefaultSpy; window.dispatchEvent(beforeUnloadEvent); diff --git a/src/modules/feature/board-link-element/composables/PreviewGenerator.composable.unit.ts b/src/modules/feature/board-link-element/composables/PreviewGenerator.composable.unit.ts index dee1694940..a92f16af4c 100644 --- a/src/modules/feature/board-link-element/composables/PreviewGenerator.composable.unit.ts +++ b/src/modules/feature/board-link-element/composables/PreviewGenerator.composable.unit.ts @@ -34,7 +34,7 @@ describe("usePreviewGenerator", () => { describe("when image can be uploaded", () => { const setup = () => { const elementId = "my-custom-mocked-id"; - const uploadFromUrlMock = jest.fn(); + const uploadFromUrlMock = vi.fn(); const fileRecord = fileRecordResponseFactory.build({ previewStatus: PreviewStatus.PREVIEW_POSSIBLE, }); @@ -97,7 +97,7 @@ describe("usePreviewGenerator", () => { const externalImageUrl = "https://test.de/my-article/image.jpg"; const elementId = "my-custom-mocked-id"; const error = new Error("upload failed"); - const uploadFromUrlMock = jest.fn().mockRejectedValueOnce(error); + const uploadFromUrlMock = vi.fn().mockRejectedValueOnce(error); const { getFileRecord } = setupFileStorageApiMock({ uploadFromUrlMock, @@ -129,7 +129,7 @@ describe("usePreviewGenerator", () => { const setup = () => { const externalImageUrl = "https://test.de/my-article/image.jpg"; const elementId = "my-custom-mocked-id"; - const uploadFromUrlMock = jest.fn(); + const uploadFromUrlMock = vi.fn(); const getFileRecordMock = jest .fn() .mockReturnValueOnce(ref(undefined)); diff --git a/src/modules/feature/board-submission-element/components/SubmissionContentElement.unit.ts b/src/modules/feature/board-submission-element/components/SubmissionContentElement.unit.ts index 811094408d..01cb804579 100644 --- a/src/modules/feature/board-submission-element/components/SubmissionContentElement.unit.ts +++ b/src/modules/feature/board-submission-element/components/SubmissionContentElement.unit.ts @@ -46,8 +46,8 @@ const mockedUseSubmissionContentElementStateResponse: ReturnType< > = { submissions: ref([]), studentSubmission: ref({ completed: false }), - fetchSubmissionItems: jest.fn(), - updateSubmissionItem: jest.fn(), + fetchSubmissionItems: vi.fn(), + updateSubmissionItem: vi.fn(), loading: ref(false), isOverdue: computed(() => false), }; diff --git a/src/modules/feature/board-text-element/RichTextContentElement.unit.ts b/src/modules/feature/board-text-element/RichTextContentElement.unit.ts index f24fd8253c..c6c9380972 100644 --- a/src/modules/feature/board-text-element/RichTextContentElement.unit.ts +++ b/src/modules/feature/board-text-element/RichTextContentElement.unit.ts @@ -14,20 +14,20 @@ import RichTextContentElementEditComponent from "./RichTextContentElementEdit.vu jest.mock("@data-board", () => { return { - useBoardFocusHandler: jest.fn(), - useContentElementState: jest.fn(() => ({ modelValue: {} })), - useDeleteConfirmationDialog: jest.fn(), + useBoardFocusHandler: vi.fn(), + useContentElementState: vi.fn(() => ({ modelValue: {} })), + useDeleteConfirmationDialog: vi.fn(), }; }); jest.mock("@ui-confirmation-dialog", () => { return { - useDeleteConfirmationDialog: jest.fn(), + useDeleteConfirmationDialog: vi.fn(), }; }); jest.mock("@util-board", () => { return { - useInlineEditInteractionHandler: jest.fn(), + useInlineEditInteractionHandler: vi.fn(), }; }); diff --git a/src/modules/feature/board/board/Board.unit.ts b/src/modules/feature/board/board/Board.unit.ts index 52e36a66e0..d5091cd9ec 100644 --- a/src/modules/feature/board/board/Board.unit.ts +++ b/src/modules/feature/board/board/Board.unit.ts @@ -118,7 +118,7 @@ describe("Board", () => { >; let route: DeepMocked>; let mockedCreateApplicationErrorCalls: ReturnType; - const setErrorMock = jest.fn(); + const setErrorMock = vi.fn(); beforeEach(() => { mockedBoardNotifierCalls = @@ -140,12 +140,12 @@ describe("Board", () => { mockedUseSharedEditMode.mockReturnValue({ editModeId: ref(undefined), - setEditModeId: jest.fn(), + setEditModeId: vi.fn(), isInEditMode: computed(() => true), }); mockedUseSharedBoardPageInformation.mockReturnValue({ - createPageInformation: jest.fn(), + createPageInformation: vi.fn(), breadcrumbs: ref([]), contextType: ref(), pageTitle: ref("page-title"), @@ -154,13 +154,13 @@ describe("Board", () => { mockedUseEditMode.mockReturnValue({ isEditMode: computed(() => false), - startEditMode: jest.fn(), - stopEditMode: jest.fn(), + startEditMode: vi.fn(), + stopEditMode: vi.fn(), }); mockUseSharedLastCreatedElement.mockReturnValue({ lastCreatedElementId: computed(() => "element-id"), - resetLastCreatedElementId: jest.fn(), + resetLastCreatedElementId: vi.fn(), }); mockExtractDataAttribute.mockReturnValue("column-id"); @@ -989,7 +989,7 @@ describe("Board", () => { describe("when the 'delete' menu button is clicked", () => { let openDeleteBoardDialogMock: jest.Mock; beforeEach(() => { - openDeleteBoardDialogMock = jest.fn(); + openDeleteBoardDialogMock = vi.fn(); }); it("should call openDeleteBoardDialog method when board should be deleted", async () => { diff --git a/src/modules/feature/board/board/BoardColumn.unit.ts b/src/modules/feature/board/board/BoardColumn.unit.ts index 5d09000464..a2e9f11b9c 100644 --- a/src/modules/feature/board/board/BoardColumn.unit.ts +++ b/src/modules/feature/board/board/BoardColumn.unit.ts @@ -49,7 +49,7 @@ const mockedUseForceRender = jest.mocked(useForceRender); mockUseSharedLastCreatedElement.mockReturnValue({ lastCreatedElementId: computed(() => "element-id"), - resetLastCreatedElementId: jest.fn(), + resetLastCreatedElementId: vi.fn(), }); describe("BoardColumn", () => { diff --git a/src/modules/feature/board/board/BoardColumnHeader.unit.ts b/src/modules/feature/board/board/BoardColumnHeader.unit.ts index 9916cc343a..caee7d7037 100644 --- a/src/modules/feature/board/board/BoardColumnHeader.unit.ts +++ b/src/modules/feature/board/board/BoardColumnHeader.unit.ts @@ -36,8 +36,8 @@ describe("BoardColumnHeader", () => { const isEditMode = computed(() => true); mockedUseEditMode.mockReturnValue({ isEditMode, - startEditMode: jest.fn(), - stopEditMode: jest.fn(), + startEditMode: vi.fn(), + stopEditMode: vi.fn(), }); mockedUserPermissions.mockReturnValue({ ...defaultPermissions, diff --git a/src/modules/feature/board/board/BoardHeader.unit.ts b/src/modules/feature/board/board/BoardHeader.unit.ts index 80e56c7d56..37098bb6a4 100644 --- a/src/modules/feature/board/board/BoardHeader.unit.ts +++ b/src/modules/feature/board/board/BoardHeader.unit.ts @@ -41,11 +41,11 @@ describe("BoardHeader", () => { props?: { isDraft: boolean } ) => { const isEditMode = computed(() => true); - const mockedStartEditMode = jest.fn(); + const mockedStartEditMode = vi.fn(); mockedUseEditMode.mockReturnValue({ isEditMode, startEditMode: mockedStartEditMode, - stopEditMode: jest.fn(), + stopEditMode: vi.fn(), }); mockedUserPermissions.mockReturnValue({ ...defaultPermissions, diff --git a/src/modules/feature/board/card/CardHost.unit.ts b/src/modules/feature/board/card/CardHost.unit.ts index e59cad6372..898619d4ad 100644 --- a/src/modules/feature/board/card/CardHost.unit.ts +++ b/src/modules/feature/board/card/CardHost.unit.ts @@ -79,7 +79,7 @@ describe("CardHost", () => { mockedUseSharedEditMode.mockReturnValue({ editModeId: ref(undefined), - setEditModeId: jest.fn(), + setEditModeId: vi.fn(), isInEditMode: computed(() => true), }); @@ -92,8 +92,8 @@ describe("CardHost", () => { mockedEditMode.mockReturnValue({ isEditMode: computed(() => true), - startEditMode: jest.fn(), - stopEditMode: jest.fn(), + startEditMode: vi.fn(), + stopEditMode: vi.fn(), }); setupAddElementDialogMock(); diff --git a/src/modules/feature/board/shared/AddElementDialog.composable.unit.ts b/src/modules/feature/board/shared/AddElementDialog.composable.unit.ts index cd28b27dac..360815b6fd 100644 --- a/src/modules/feature/board/shared/AddElementDialog.composable.unit.ts +++ b/src/modules/feature/board/shared/AddElementDialog.composable.unit.ts @@ -21,7 +21,7 @@ const translationMap: Record = {}; jest.mock("vue-i18n", () => { return { ...jest.requireActual("vue-i18n"), - useI18n: jest.fn().mockReturnValue({ + useI18n: vi.fn().mockReturnValue({ t: (key: string) => key, tc: (key: string) => key, te: (key: string) => translationMap[key] !== undefined, @@ -34,7 +34,7 @@ const mockedUseBoardNotifier = jest.mocked(useBoardNotifier); jest.mocked(useSharedLastCreatedElement).mockImplementation(() => { return { lastCreatedElementId: ref(undefined), - resetLastCreatedElementId: jest.fn(), + resetLastCreatedElementId: vi.fn(), }; }); @@ -58,10 +58,10 @@ describe("ElementTypeSelection Composable", () => { setupSharedElementTypeSelectionMock(); - const addElementMock = jest.fn(); + const addElementMock = vi.fn(); const elementType = ContentElementType.RichText; - const showCustomNotifierMock = jest.fn(); + const showCustomNotifierMock = vi.fn(); const mockedBoardNotifierCalls = createMock< ReturnType >({ @@ -111,10 +111,10 @@ describe("ElementTypeSelection Composable", () => { const cardId = "cardId"; - const addElementMock = jest.fn(); + const addElementMock = vi.fn(); const elementType = ContentElementType.CollaborativeTextEditor; - const showCustomNotifierMock = jest.fn(); + const showCustomNotifierMock = vi.fn(); const mockedBoardNotifierCalls = createMock< ReturnType >({ @@ -161,10 +161,10 @@ describe("ElementTypeSelection Composable", () => { const cardId = "cardId"; - const addElementMock = jest.fn(); + const addElementMock = vi.fn(); const elementType = ContentElementType.RichText; - const showCustomNotifierMock = jest.fn(); + const showCustomNotifierMock = vi.fn(); const mockedBoardNotifierCalls = createMock< ReturnType >({ @@ -203,7 +203,7 @@ describe("ElementTypeSelection Composable", () => { it("should show Notification", async () => { const i18nKeyWhiteboard = "components.cardElement.notification.visibleAndEditable"; - const addElementMock = jest.fn(); + const addElementMock = vi.fn(); const elementType = ContentElementType.Drawing; const { showCustomNotifierMock, cardId } = setup(); @@ -224,9 +224,9 @@ describe("ElementTypeSelection Composable", () => { describe("when addElement returns error", () => { const setup = () => { const error = new Error("Test error"); - const addElementMock = jest.fn().mockRejectedValueOnce(error); + const addElementMock = vi.fn().mockRejectedValueOnce(error); - const showCustomNotifierMock = jest.fn(); + const showCustomNotifierMock = vi.fn(); const mockedBoardNotifierCalls = createMock< ReturnType >({ @@ -256,7 +256,7 @@ describe("ElementTypeSelection Composable", () => { describe("askType", () => { it("should set isDialogOpen to true", () => { - const addElementMock = jest.fn(); + const addElementMock = vi.fn(); const { isDialogOpen } = setupSharedElementTypeSelectionMock(); const { askType } = useAddElementDialog(addElementMock, "cardId"); @@ -275,13 +275,13 @@ describe("ElementTypeSelection Composable", () => { } ) => { const cardId = "cardId"; - const addElementMock = jest.fn(); - const closeDialogMock = jest.fn(); + const addElementMock = vi.fn(); + const closeDialogMock = vi.fn(); const { elementTypeOptions } = setupSharedElementTypeSelectionMock({ closeDialogMock, }); - const showCustomNotifierMock = jest.fn(); + const showCustomNotifierMock = vi.fn(); const mockedBoardNotifierCalls = createMock< ReturnType >({ diff --git a/src/modules/feature/board/shared/AddElementDialog.unit.ts b/src/modules/feature/board/shared/AddElementDialog.unit.ts index 655e8c46d3..9014c87353 100644 --- a/src/modules/feature/board/shared/AddElementDialog.unit.ts +++ b/src/modules/feature/board/shared/AddElementDialog.unit.ts @@ -29,8 +29,8 @@ describe("ElementTypeSelection", () => { const { closeDialog, isDialogOpen, elementTypeOptions } = setupSharedElementTypeSelectionMock(); - const createTextElement = jest.fn(); - const createFileElement = jest.fn(); + const createTextElement = vi.fn(); + const createFileElement = vi.fn(); elementTypeOptions.value = [ { diff --git a/src/modules/feature/board/test-utils/AddElementDialogMock.ts b/src/modules/feature/board/test-utils/AddElementDialogMock.ts index 477e21e004..292b06ef24 100644 --- a/src/modules/feature/board/test-utils/AddElementDialogMock.ts +++ b/src/modules/feature/board/test-utils/AddElementDialogMock.ts @@ -9,8 +9,8 @@ interface Props { export const setupAddElementDialogMock = (props: Props = {}) => { const mockedUseAddElementDialog = jest.mocked(useAddElementDialog); - const createTextElementMock = jest.fn(); - const createFileElementMock = jest.fn(); + const createTextElementMock = vi.fn(); + const createFileElementMock = vi.fn(); const elementTypeOptionsMock: Ref< { @@ -33,8 +33,8 @@ export const setupAddElementDialogMock = (props: Props = {}) => { testId: "action2-id", }, ]); - const askTypeMock = props.askTypeMock || jest.fn(); - const onFileSelectMock = jest.fn(); + const askTypeMock = props.askTypeMock || vi.fn(); + const onFileSelectMock = vi.fn(); const isFilePickerOpenMock = ref(false); const isDialogOpenMock = ref(false); @@ -42,8 +42,8 @@ export const setupAddElementDialogMock = (props: Props = {}) => { askType: askTypeMock, isDialogOpen: isDialogOpenMock, elementTypeOptions: elementTypeOptionsMock, - onElementClick: jest.fn(), - onFileElementClick: jest.fn(), + onElementClick: vi.fn(), + onFileElementClick: vi.fn(), onFileSelect: onFileSelectMock, isFilePickerOpen: isFilePickerOpenMock, }; diff --git a/src/modules/feature/board/test-utils/sharedElementTypeSelectionMock.ts b/src/modules/feature/board/test-utils/sharedElementTypeSelectionMock.ts index 994308c531..292d81759d 100644 --- a/src/modules/feature/board/test-utils/sharedElementTypeSelectionMock.ts +++ b/src/modules/feature/board/test-utils/sharedElementTypeSelectionMock.ts @@ -19,7 +19,7 @@ export const setupSharedElementTypeSelectionMock = (props: Props = {}) => { useSharedElementTypeSelection ); - const closeDialog = closeDialogMock ?? jest.fn(); + const closeDialog = closeDialogMock ?? vi.fn(); const isDialogOpen = ref(false); const elementTypeOptions: Ref> = ref([]); diff --git a/src/modules/feature/course-sync/GroupSelectionDialog.unit.ts b/src/modules/feature/course-sync/GroupSelectionDialog.unit.ts index 7eac6c2bf1..426c0ba751 100644 --- a/src/modules/feature/course-sync/GroupSelectionDialog.unit.ts +++ b/src/modules/feature/course-sync/GroupSelectionDialog.unit.ts @@ -16,7 +16,7 @@ import GroupSelectionDialog from "./GroupSelectionDialog.vue"; jest.mock("@data-group", () => { return { ...jest.requireActual("@data-group"), - useGroupListState: jest.fn(), + useGroupListState: vi.fn(), }; }); diff --git a/src/modules/feature/course-sync/StartNewCourseSyncDialog.unit.ts b/src/modules/feature/course-sync/StartNewCourseSyncDialog.unit.ts index a9a711b09d..f519026911 100644 --- a/src/modules/feature/course-sync/StartNewCourseSyncDialog.unit.ts +++ b/src/modules/feature/course-sync/StartNewCourseSyncDialog.unit.ts @@ -52,7 +52,7 @@ describe("StartNewCourseSyncDialog", () => { Object.defineProperty(window, "location", { configurable: true, - value: { assign: jest.fn() }, + value: { assign: vi.fn() }, }); const group = groupResponseFactory.build(); diff --git a/src/modules/feature/editor/CKEditor.unit.ts b/src/modules/feature/editor/CKEditor.unit.ts index c1d0dcfc88..1a6182e58e 100644 --- a/src/modules/feature/editor/CKEditor.unit.ts +++ b/src/modules/feature/editor/CKEditor.unit.ts @@ -41,7 +41,7 @@ describe("CKEditor", () => { props, }); - const editorMock = { editing: { view: { document: { on: jest.fn() } } } }; + const editorMock = { editing: { view: { document: { on: vi.fn() } } } }; return { wrapper, editorMock }; }; diff --git a/src/modules/feature/media-shelf/MediaBoard.unit.ts b/src/modules/feature/media-shelf/MediaBoard.unit.ts index a6e27d6992..28fab0233e 100644 --- a/src/modules/feature/media-shelf/MediaBoard.unit.ts +++ b/src/modules/feature/media-shelf/MediaBoard.unit.ts @@ -31,7 +31,7 @@ jest.mock("./data/mediaBoardState.composable"); jest.mock("@vueuse/core", () => { return { ...jest.requireActual("@vueuse/core"), - useMediaQuery: jest.fn(), + useMediaQuery: vi.fn(), }; }); diff --git a/src/modules/feature/media-shelf/MediaBoardAvailableLine.unit.ts b/src/modules/feature/media-shelf/MediaBoardAvailableLine.unit.ts index ca67f703a6..831f333c7e 100644 --- a/src/modules/feature/media-shelf/MediaBoardAvailableLine.unit.ts +++ b/src/modules/feature/media-shelf/MediaBoardAvailableLine.unit.ts @@ -22,7 +22,7 @@ import MediaBoardLineMenu from "./MediaBoardLineMenu.vue"; jest.mock("@vueuse/core", () => { return { ...jest.requireActual("@vueuse/core"), - useMediaQuery: jest.fn(), + useMediaQuery: vi.fn(), }; }); diff --git a/src/modules/feature/media-shelf/MediaBoardLine.unit.ts b/src/modules/feature/media-shelf/MediaBoardLine.unit.ts index 8dc528e809..b693457c5a 100644 --- a/src/modules/feature/media-shelf/MediaBoardLine.unit.ts +++ b/src/modules/feature/media-shelf/MediaBoardLine.unit.ts @@ -26,7 +26,7 @@ import MediaBoardExternalToolDeletedElement from "./MediaBoardExternalToolDelete jest.mock("@vueuse/core", () => { return { ...jest.requireActual("@vueuse/core"), - useMediaQuery: jest.fn(), + useMediaQuery: vi.fn(), }; }); diff --git a/src/modules/page/class-members/ClassMembers.page.unit.ts b/src/modules/page/class-members/ClassMembers.page.unit.ts index 211161e2ed..734a0fe931 100644 --- a/src/modules/page/class-members/ClassMembers.page.unit.ts +++ b/src/modules/page/class-members/ClassMembers.page.unit.ts @@ -17,7 +17,7 @@ import vueDompurifyHTMLPlugin from "vue-dompurify-html"; jest.mock("@data-group", () => { return { ...jest.requireActual("@data-group"), - useGroupState: jest.fn(), + useGroupState: vi.fn(), }; }); diff --git a/src/modules/page/media-shelf/MediaShelf.page.unit.ts b/src/modules/page/media-shelf/MediaShelf.page.unit.ts index 54646cd87a..3fa5ea2ab1 100644 --- a/src/modules/page/media-shelf/MediaShelf.page.unit.ts +++ b/src/modules/page/media-shelf/MediaShelf.page.unit.ts @@ -16,7 +16,7 @@ import MediaShelfPage from "./MediaShelf.page.vue"; jest.mock("@feature-media-shelf", () => { return { ...jest.requireActual("@feature-media-shelf"), - useSharedMediaBoardState: jest.fn(), + useSharedMediaBoardState: vi.fn(), }; }); diff --git a/src/modules/page/room/RoomParticipants.page.unit.ts b/src/modules/page/room/RoomParticipants.page.unit.ts index 9c0dd1ba8a..c7e88fb092 100644 --- a/src/modules/page/room/RoomParticipants.page.unit.ts +++ b/src/modules/page/room/RoomParticipants.page.unit.ts @@ -83,7 +83,7 @@ describe("RoomParticipantsPage", () => { ariaLabel: string; testId: string; }; - onFabClick: ReturnType; + onFabClick: ReturnType; }; return { wrapper, roomDetailsStore, wrapperVM }; diff --git a/src/modules/ui/board/BoardMenuActionDelete.unit.ts b/src/modules/ui/board/BoardMenuActionDelete.unit.ts index e0e00d1fce..6f9bcdf882 100644 --- a/src/modules/ui/board/BoardMenuActionDelete.unit.ts +++ b/src/modules/ui/board/BoardMenuActionDelete.unit.ts @@ -30,7 +30,7 @@ describe("BoardMenuActionMoveDown Component", () => { return wrapper; }; - const askDeleteConfirmationMock = jest.fn(); + const askDeleteConfirmationMock = vi.fn(); setupDeleteConfirmationComposableMock({ askDeleteConfirmationMock, diff --git a/src/modules/ui/board/BoardMenuActionMoveColumnDown.unit.ts b/src/modules/ui/board/BoardMenuActionMoveColumnDown.unit.ts index e3b098aebe..86d586d27e 100644 --- a/src/modules/ui/board/BoardMenuActionMoveColumnDown.unit.ts +++ b/src/modules/ui/board/BoardMenuActionMoveColumnDown.unit.ts @@ -48,7 +48,7 @@ describe("BoardMenuActionMoveColumnDown Component", () => { const wrapper = setup({ isLastColumn: false, hasMultipleColumns: true }); const listItemComponent = wrapper.findComponent(BoardMenuAction); - listItemComponent.vm.$emit("click", { preventDefault: jest.fn() }); + listItemComponent.vm.$emit("click", { preventDefault: vi.fn() }); const emitted = wrapper.emitted("click"); expect(emitted).toBeDefined(); diff --git a/src/modules/ui/board/BoardMenuActionMoveColumnUp.unit.ts b/src/modules/ui/board/BoardMenuActionMoveColumnUp.unit.ts index 845c648681..ecad97cea9 100644 --- a/src/modules/ui/board/BoardMenuActionMoveColumnUp.unit.ts +++ b/src/modules/ui/board/BoardMenuActionMoveColumnUp.unit.ts @@ -59,7 +59,7 @@ describe("BoardMenuActionMoveColumnUp Component", () => { }); const listItemComponent = wrapper.findComponent(BoardMenuAction); - listItemComponent.vm.$emit("click", { preventDefault: jest.fn() }); + listItemComponent.vm.$emit("click", { preventDefault: vi.fn() }); const emitted = wrapper.emitted("click"); expect(emitted).toBeDefined(); diff --git a/src/modules/ui/board/BoardMenuActionMoveDown.unit.ts b/src/modules/ui/board/BoardMenuActionMoveDown.unit.ts index eda9bf2375..77f0744e3b 100644 --- a/src/modules/ui/board/BoardMenuActionMoveDown.unit.ts +++ b/src/modules/ui/board/BoardMenuActionMoveDown.unit.ts @@ -61,7 +61,7 @@ describe("BoardMenuActionMoveDown Component", () => { }); const listItemComponent = wrapper.findComponent(BoardMenuAction); - listItemComponent.vm.$emit("click", { preventDefault: jest.fn() }); + listItemComponent.vm.$emit("click", { preventDefault: vi.fn() }); const emitted = wrapper.emitted("click"); expect(emitted).toBeDefined(); diff --git a/src/modules/ui/board/BoardMenuActionMoveLeft.unit.ts b/src/modules/ui/board/BoardMenuActionMoveLeft.unit.ts index 4af4c90c04..713f1f658e 100644 --- a/src/modules/ui/board/BoardMenuActionMoveLeft.unit.ts +++ b/src/modules/ui/board/BoardMenuActionMoveLeft.unit.ts @@ -48,7 +48,7 @@ describe("BoardMenuActionMoveLeft Component", () => { const wrapper = setup({ isFirstColumn: false, hasMultipleColumns: true }); const listItemComponent = wrapper.findComponent(BoardMenuAction); - listItemComponent.vm.$emit("click", { preventDefault: jest.fn() }); + listItemComponent.vm.$emit("click", { preventDefault: vi.fn() }); const emitted = wrapper.emitted("click"); expect(emitted).toBeDefined(); diff --git a/src/modules/ui/board/BoardMenuActionMoveRight.unit.ts b/src/modules/ui/board/BoardMenuActionMoveRight.unit.ts index 08825e66e4..294ff9822f 100644 --- a/src/modules/ui/board/BoardMenuActionMoveRight.unit.ts +++ b/src/modules/ui/board/BoardMenuActionMoveRight.unit.ts @@ -48,7 +48,7 @@ describe("BoardMenuActionMoveLeft Component", () => { const wrapper = setup({ isLastColumn: false, hasMultipleColumns: true }); const listItemComponent = wrapper.findComponent(BoardMenuAction); - listItemComponent.vm.$emit("click", { preventDefault: jest.fn() }); + listItemComponent.vm.$emit("click", { preventDefault: vi.fn() }); const emitted = wrapper.emitted("click"); expect(emitted).toBeDefined(); diff --git a/src/modules/ui/board/BoardMenuActionMoveUp.unit.ts b/src/modules/ui/board/BoardMenuActionMoveUp.unit.ts index e9ecddd332..6f0c78335f 100644 --- a/src/modules/ui/board/BoardMenuActionMoveUp.unit.ts +++ b/src/modules/ui/board/BoardMenuActionMoveUp.unit.ts @@ -63,7 +63,7 @@ describe("BoardMenuActionMoveUp Component", () => { }); const listItemComponent = wrapper.findComponent(BoardMenuAction); - listItemComponent.vm.$emit("click", { preventDefault: jest.fn() }); + listItemComponent.vm.$emit("click", { preventDefault: vi.fn() }); const emitted = wrapper.emitted("click"); expect(emitted).toBeDefined(); diff --git a/src/modules/ui/confirmation-dialog/ConfirmationDialog.unit.ts b/src/modules/ui/confirmation-dialog/ConfirmationDialog.unit.ts index c157505cbc..ff1c1cf439 100644 --- a/src/modules/ui/confirmation-dialog/ConfirmationDialog.unit.ts +++ b/src/modules/ui/confirmation-dialog/ConfirmationDialog.unit.ts @@ -10,8 +10,8 @@ const mockedUseInternalConfirmationDialog = jest.mocked( ); describe("DeleteConfirmation", () => { - const confirmSpy = jest.fn(); - const cancelSpy = jest.fn(); + const confirmSpy = vi.fn(); + const cancelSpy = vi.fn(); const setup = (options: { isDeleteModalOpen?: boolean; title?: string; @@ -20,7 +20,7 @@ describe("DeleteConfirmation", () => { mockedUseInternalConfirmationDialog.mockReturnValue({ confirm: confirmSpy, cancel: cancelSpy, - askInternal: jest.fn(), + askInternal: vi.fn(), dialogOptions: ref({ message: "TestMessage" }), isDialogOpen: ref(true), }); diff --git a/src/modules/ui/confirmation-dialog/DeleteConfirmation.composable.unit.ts b/src/modules/ui/confirmation-dialog/DeleteConfirmation.composable.unit.ts index e4a91bdfdc..52c917891c 100644 --- a/src/modules/ui/confirmation-dialog/DeleteConfirmation.composable.unit.ts +++ b/src/modules/ui/confirmation-dialog/DeleteConfirmation.composable.unit.ts @@ -8,7 +8,7 @@ jest.mock("./Confirmation.composable"); jest.mock("vue-i18n", () => { return { ...jest.requireActual("vue-i18n"), - useI18n: jest.fn(), + useI18n: vi.fn(), }; }); const useI18nMock = useI18n; @@ -26,7 +26,7 @@ describe("DeleteConfirmation composable", () => { elementId: "elementId", name: "name", }; - const askConfirmationMock = jest.fn().mockResolvedValueOnce(isConfirmed); + const askConfirmationMock = vi.fn().mockResolvedValueOnce(isConfirmed); const { askConfirmation } = setupConfirmationComposableMock({ askConfirmationMock, }); diff --git a/src/modules/ui/layout/sidebar/SidebarSelection.composable.unit.ts b/src/modules/ui/layout/sidebar/SidebarSelection.composable.unit.ts index fa3cffabc3..18dd8402cd 100644 --- a/src/modules/ui/layout/sidebar/SidebarSelection.composable.unit.ts +++ b/src/modules/ui/layout/sidebar/SidebarSelection.composable.unit.ts @@ -28,7 +28,7 @@ describe("@ui/layout/sidebar/SidebarSelection.composable", () => { ); mockedUseSharedBoardPageInformation.mockReturnValue({ - createPageInformation: jest.fn(), + createPageInformation: vi.fn(), breadcrumbs: ref([]), contextType: ref(), pageTitle: ref("page-title"), @@ -259,7 +259,7 @@ describe("@ui/layout/sidebar/SidebarSelection.composable", () => { describe("when board context is a course", () => { const setupCourseContext = () => { mockedUseSharedBoardPageInformation.mockReturnValue({ - createPageInformation: jest.fn(), + createPageInformation: vi.fn(), breadcrumbs: ref([]), contextType: ref(BoardContextType.Course), pageTitle: ref("page-title"), @@ -280,7 +280,7 @@ describe("@ui/layout/sidebar/SidebarSelection.composable", () => { describe("when board context is a user", () => { const setupUserContext = () => { mockedUseSharedBoardPageInformation.mockReturnValue({ - createPageInformation: jest.fn(), + createPageInformation: vi.fn(), breadcrumbs: ref([]), contextType: ref(BoardContextType.User), pageTitle: ref("page-title"), diff --git a/src/modules/ui/layout/topbar/LanguageMenu.unit.ts b/src/modules/ui/layout/topbar/LanguageMenu.unit.ts index 9ed7ad7887..550311b340 100644 --- a/src/modules/ui/layout/topbar/LanguageMenu.unit.ts +++ b/src/modules/ui/layout/topbar/LanguageMenu.unit.ts @@ -37,7 +37,7 @@ describe("@ui-layout/LanguageMenu", () => { beforeEach(() => { Object.defineProperty(window, "location", { configurable: true, - value: { reload: jest.fn() }, + value: { reload: vi.fn() }, }); }); diff --git a/src/modules/ui/layout/topbar/PageShare.unit.ts b/src/modules/ui/layout/topbar/PageShare.unit.ts index 496f3a5527..99be271ce4 100644 --- a/src/modules/ui/layout/topbar/PageShare.unit.ts +++ b/src/modules/ui/layout/topbar/PageShare.unit.ts @@ -10,15 +10,15 @@ describe("@ui-layout/PageShare", () => { const setup = (attrs = {}) => { const windowMock = createMock({ document: { - write: jest.fn().mockImplementation(() => ""), + write: vi.fn().mockImplementation(() => ""), }, - print: jest.fn(), - close: jest.fn(), + print: vi.fn(), + close: vi.fn(), }); Object.defineProperty(window, "open", { configurable: true, - value: jest.fn().mockReturnValue(windowMock), + value: vi.fn().mockReturnValue(windowMock), }); const wrapper = mount(PageShare, { @@ -55,7 +55,7 @@ describe("@ui-layout/PageShare", () => { it("should copy link to clipboard", async () => { Object.defineProperty(navigator, "clipboard", { value: { - writeText: jest.fn(), + writeText: vi.fn(), }, }); diff --git a/src/modules/ui/layout/topbar/UserMenu.unit.ts b/src/modules/ui/layout/topbar/UserMenu.unit.ts index 670ed9dcfe..9e57d52b0b 100644 --- a/src/modules/ui/layout/topbar/UserMenu.unit.ts +++ b/src/modules/ui/layout/topbar/UserMenu.unit.ts @@ -14,7 +14,7 @@ describe("@ui-layout/UserMenu", () => { const setup = () => { const authModule = createModuleMocks(AuthModule, { getLocale: "de", - logout: jest.fn(), + logout: vi.fn(), }); const envConfigModule = createModuleMocks(EnvConfigModule, { getAvailableLanguages: [LanguageType.De, LanguageType.En], diff --git a/src/modules/ui/light-box/LightBox.unit.ts b/src/modules/ui/light-box/LightBox.unit.ts index 4739deb946..645d7c6f56 100644 --- a/src/modules/ui/light-box/LightBox.unit.ts +++ b/src/modules/ui/light-box/LightBox.unit.ts @@ -31,7 +31,7 @@ describe("LightBox", () => { alt?: string; name?: string; }) => { - const close = jest.fn(); + const close = vi.fn(); const isLightBoxOpen = ref(true); const lightBoxOptions = ref({ downloadUrl: props.downloadUrl ?? "test-downloadUrl", @@ -46,7 +46,7 @@ describe("LightBox", () => { close: close, isLightBoxOpen: isLightBoxOpen, lightBoxOptions: lightBoxOptions, - openInternal: jest.fn(), + openInternal: vi.fn(), }); const wrapper = shallowMount(LightBox, { diff --git a/src/modules/ui/room-details/RoomDotMenu.unit.ts b/src/modules/ui/room-details/RoomDotMenu.unit.ts index 8ef43fa873..402c5fffea 100644 --- a/src/modules/ui/room-details/RoomDotMenu.unit.ts +++ b/src/modules/ui/room-details/RoomDotMenu.unit.ts @@ -11,7 +11,7 @@ import { } from "vuetify/lib/components/index.mjs"; import RoomDotMenu from "./RoomDotMenu.vue"; -const action = jest.fn(); +const action = vi.fn(); const testProps = { menuItems: [ { diff --git a/src/modules/ui/room-details/RoomLessonCard.unit.ts b/src/modules/ui/room-details/RoomLessonCard.unit.ts index 242d545900..fce088e1d1 100644 --- a/src/modules/ui/room-details/RoomLessonCard.unit.ts +++ b/src/modules/ui/room-details/RoomLessonCard.unit.ts @@ -112,7 +112,7 @@ describe("@/components/molecules/RoomLessonCard", () => { }); Object.defineProperty(window, "location", { - set: jest.fn(), + set: vi.fn(), get: () => createMock(), }); diff --git a/src/pages/ErrorPage.unit.ts b/src/pages/ErrorPage.unit.ts index ce59ff9f2c..171c288db0 100644 --- a/src/pages/ErrorPage.unit.ts +++ b/src/pages/ErrorPage.unit.ts @@ -17,10 +17,10 @@ jest.mock("@/utils/pageTitle", () => ({ jest.mock("@/composables/locale-storage.composable", () => ({ useStorage: () => ({ - set: jest.fn(), - get: jest.fn(), - getMultiple: jest.fn().mockReturnValue([401, "de.unauthorized", false]), - remove: jest.fn(), + set: vi.fn(), + get: vi.fn(), + getMultiple: vi.fn().mockReturnValue([401, "de.unauthorized", false]), + remove: vi.fn(), }), })); @@ -28,12 +28,12 @@ describe("@pages/Error.page.vue", () => { beforeEach(() => { Object.defineProperty(window, "location", { configurable: true, - value: { assign: jest.fn() }, + value: { assign: vi.fn() }, }); Object.defineProperty(window, "performance", { value: { - getEntriesByType: jest.fn(), // for reload checking (see component) - now: jest.fn(), // for vue metrics + getEntriesByType: vi.fn(), // for reload checking (see component) + now: vi.fn(), // for vue metrics }, }); (window.performance.getEntriesByType as jest.Mock).mockReturnValue([ diff --git a/src/pages/administration/ClassOverview.page.unit.ts b/src/pages/administration/ClassOverview.page.unit.ts index c6c261f001..cad56b7324 100644 --- a/src/pages/administration/ClassOverview.page.unit.ts +++ b/src/pages/administration/ClassOverview.page.unit.ts @@ -28,8 +28,8 @@ import { VBtn, VDataTableServer } from "vuetify/lib/components/index.mjs"; import ClassOverview from "./ClassOverview.page.vue"; jest.mock("vue-router", () => ({ - useRoute: jest.fn(), - useRouter: jest.fn(), + useRoute: vi.fn(), + useRouter: vi.fn(), })); const useRouteMock = useRoute; const useRouterMock = useRouter; diff --git a/src/pages/administration/RoomsOverview.page.unit.ts b/src/pages/administration/RoomsOverview.page.unit.ts index df80b79a67..e4fa5ba8ed 100644 --- a/src/pages/administration/RoomsOverview.page.unit.ts +++ b/src/pages/administration/RoomsOverview.page.unit.ts @@ -26,15 +26,15 @@ import { VDataTableServer } from "vuetify/lib/components/index.mjs"; import RoomsOverview from "./RoomsOverview.page.vue"; jest.mock("vue-router", () => ({ - useRoute: jest.fn(), - useRouter: jest.fn(), + useRoute: vi.fn(), + useRouter: vi.fn(), })); jest.mock("@data-room", () => { return { ...jest.requireActual("@data-room"), - useCourseList: jest.fn(), - useCourseApi: jest.fn(), + useCourseList: vi.fn(), + useCourseApi: vi.fn(), }; }); @@ -117,8 +117,8 @@ describe("RoomsOverview", () => { }); useCourseApiMock = createMock>({ - startSynchronization: jest.fn(), - stopSynchronization: jest.fn(), + startSynchronization: vi.fn(), + stopSynchronization: vi.fn(), }); jest.mocked(useCourseList).mockReturnValue(useCourseListMock); diff --git a/src/pages/administration/ldap-activate.unit.js b/src/pages/administration/ldap-activate.unit.js index 866fb86bf0..dae1530e1e 100644 --- a/src/pages/administration/ldap-activate.unit.js +++ b/src/pages/administration/ldap-activate.unit.js @@ -42,8 +42,8 @@ const mockResponseData = { }; const getStoreOptions = () => { - const submitStub = jest.fn(); - const patchStub = jest.fn(); + const submitStub = vi.fn(); + const patchStub = vi.fn(); const storeOptions = { modules: { @@ -81,7 +81,7 @@ const getStoreOptions = () => { describe("ldap/activate", () => { const setup = ({ route, storeOptions }) => { - const routerPushStub = jest.fn(); + const routerPushStub = vi.fn(); const wrapper = mount(ldapActivate, { global: { diff --git a/src/pages/administration/ldap-config.unit.js b/src/pages/administration/ldap-config.unit.js index ad4265a01f..2996c1617f 100644 --- a/src/pages/administration/ldap-config.unit.js +++ b/src/pages/administration/ldap-config.unit.js @@ -45,9 +45,9 @@ const getStoreOptions = () => ({ "ldap-config": { namespaced: true, actions: { - getData: jest.fn(), - verifyData: jest.fn(), - verifyExisting: jest.fn(), + getData: vi.fn(), + verifyData: vi.fn(), + verifyExisting: vi.fn(), }, getters: { getData: () => ({ ...mockInputData }), @@ -68,7 +68,7 @@ const getStoreOptions = () => ({ describe("ldap/config", () => { const setup = ({ route, storeOptions }) => { - window.scrollTo = jest.fn(); + window.scrollTo = vi.fn(); const mockStore = createStore(storeOptions); diff --git a/src/pages/administration/migration.unit.ts b/src/pages/administration/migration.unit.ts index e2567c6844..3a0e501956 100644 --- a/src/pages/administration/migration.unit.ts +++ b/src/pages/administration/migration.unit.ts @@ -83,7 +83,7 @@ const getWrapperShallow = ( }); }; -window.scrollTo = jest.fn(); +window.scrollTo = vi.fn(); describe("User Migration / Index", () => { beforeEach(() => { diff --git a/src/pages/administration/school-external-tool/SchoolExternalToolConfigurator.page.unit.ts b/src/pages/administration/school-external-tool/SchoolExternalToolConfigurator.page.unit.ts index c9dd19c58d..9c94de71c2 100644 --- a/src/pages/administration/school-external-tool/SchoolExternalToolConfigurator.page.unit.ts +++ b/src/pages/administration/school-external-tool/SchoolExternalToolConfigurator.page.unit.ts @@ -31,7 +31,7 @@ jest.mock("@/utils/pageTitle", () => ({ })); jest.mock("vue-router", () => ({ - useRouter: jest.fn(), + useRouter: vi.fn(), })); const useRouterMock = useRouter; diff --git a/src/pages/administration/student-consent.unit.js b/src/pages/administration/student-consent.unit.js index d81666f3c9..d72b4ded0d 100644 --- a/src/pages/administration/student-consent.unit.js +++ b/src/pages/administration/student-consent.unit.js @@ -61,10 +61,10 @@ const createMockStore = () => { bulkConsent: { namespaced: true, actions: { - register: jest.fn(), - updateStudent: jest.fn(), - setStudents: jest.fn(), - findConsentUsers: jest.fn(), + register: vi.fn(), + updateStudent: vi.fn(), + setStudents: vi.fn(), + findConsentUsers: vi.fn(), }, getters: { getSelectedStudentsData: () => mockData, @@ -75,11 +75,11 @@ const createMockStore = () => { }, mutations: { - setSelectedStudents: jest.fn(), - setRegisteredStudents: jest.fn(), - setStudentsData: jest.fn(), - updateStudentData: jest.fn(), - setRegisterError: jest.fn(), + setSelectedStudents: vi.fn(), + setRegisteredStudents: vi.fn(), + setStudentsData: vi.fn(), + updateStudentData: vi.fn(), + setRegisterError: vi.fn(), }, }, filePaths: { diff --git a/src/pages/administration/student-create.unit.js b/src/pages/administration/student-create.unit.js index 594fe4689b..baaaf653ee 100644 --- a/src/pages/administration/student-create.unit.js +++ b/src/pages/administration/student-create.unit.js @@ -16,7 +16,7 @@ jest.mock("@/utils/pageTitle", () => ({ })); const createMockStore = () => { - const createStudentStub = jest.fn(); + const createStudentStub = vi.fn(); const mockStore = createStore({ modules: { auth: { @@ -31,13 +31,13 @@ const createMockStore = () => { namespaced: true, actions: { createStudent: createStudentStub, - businessError: jest.fn(), + businessError: vi.fn(), }, getters: { - getBusinessError: jest.fn(), + getBusinessError: vi.fn(), }, mutations: { - resetBusinessError: jest.fn(), + resetBusinessError: vi.fn(), }, state: () => ({ businessError: "null", diff --git a/src/pages/administration/student-overview.unit.js b/src/pages/administration/student-overview.unit.js index ca500be076..f939c6ac39 100644 --- a/src/pages/administration/student-overview.unit.js +++ b/src/pages/administration/student-overview.unit.js @@ -84,10 +84,10 @@ const createMockStore = () => { users: { namespaced: true, actions: { - findStudents: jest.fn(), - deleteUsers: jest.fn(), - getQrRegistrationLinks: jest.fn(), - sendRegistrationLink: jest.fn(), + findStudents: vi.fn(), + deleteUsers: vi.fn(), + getQrRegistrationLinks: vi.fn(), + sendRegistrationLink: vi.fn(), }, getters: { getList: () => mockData, @@ -109,7 +109,7 @@ const createMockStore = () => { get: () => () => ({ page: 1 }), }, mutations: { - set: jest.fn(), + set: vi.fn(), }, }, }, diff --git a/src/pages/administration/teacher-create.unit.js b/src/pages/administration/teacher-create.unit.js index 0468f6cc2d..017d3b11db 100644 --- a/src/pages/administration/teacher-create.unit.js +++ b/src/pages/administration/teacher-create.unit.js @@ -45,7 +45,7 @@ describe("teachers/new", () => { }); it("should call 'createTeacher' action", async () => { - const createTeacherStub = jest.fn(); + const createTeacherStub = vi.fn(); const mockStore = createMockStore(createTeacherStub); const mockMe = meResponseFactory.build(); @@ -84,7 +84,7 @@ describe("teachers/new", () => { }); it("should call notifier successful", async () => { - const createTeacherStub = jest.fn(); + const createTeacherStub = vi.fn(); const mockStore = createMockStore(createTeacherStub); const mockMe = meResponseFactory.build(); @@ -123,7 +123,7 @@ describe("teachers/new", () => { }); it("should show error", async () => { - const failingCreateAction = jest.fn(() => Promise.reject()); + const failingCreateAction = vi.fn(() => Promise.reject()); const mockStore = createMockStore(failingCreateAction); const mockMe = meResponseFactory.build(); diff --git a/src/pages/administration/teacher-overview.unit.js b/src/pages/administration/teacher-overview.unit.js index a74e6c13b3..ff32a6c39f 100644 --- a/src/pages/administration/teacher-overview.unit.js +++ b/src/pages/administration/teacher-overview.unit.js @@ -79,10 +79,10 @@ const createMockStore = () => { users: { namespaced: true, actions: { - findTeachers: jest.fn(), - deleteUsers: jest.fn(), - getQrRegistrationLinks: jest.fn(), - sendRegistrationLink: jest.fn(), + findTeachers: vi.fn(), + deleteUsers: vi.fn(), + getQrRegistrationLinks: vi.fn(), + sendRegistrationLink: vi.fn(), }, getters: { getList: () => mockData, @@ -103,7 +103,7 @@ const createMockStore = () => { get: () => () => ({ page: 1 }), }, mutations: { - set: jest.fn(), + set: vi.fn(), }, }, }, diff --git a/src/pages/context-external-tool/CourseContextExternalToolConfigurator.page.unit.ts b/src/pages/context-external-tool/CourseContextExternalToolConfigurator.page.unit.ts index 5a2891e987..35590f8218 100644 --- a/src/pages/context-external-tool/CourseContextExternalToolConfigurator.page.unit.ts +++ b/src/pages/context-external-tool/CourseContextExternalToolConfigurator.page.unit.ts @@ -21,8 +21,8 @@ import { Router, useRouter } from "vue-router"; import CourseContextExternalToolConfigurator from "./CourseContextExternalToolConfigurator.page.vue"; jest.mock("vue-router", () => ({ - useRoute: jest.fn(), - useRouter: jest.fn(), + useRoute: vi.fn(), + useRouter: vi.fn(), })); const useRouterMock = useRouter; @@ -63,7 +63,7 @@ describe("CourseContextExternalToolConfigurator", () => { template: "
", setup() { return { - fetchData: jest.fn(), + fetchData: vi.fn(), }; }, }, diff --git a/src/pages/course-rooms/CourseRoomDetails.page.unit.ts b/src/pages/course-rooms/CourseRoomDetails.page.unit.ts index eec4792641..02b03f5f65 100644 --- a/src/pages/course-rooms/CourseRoomDetails.page.unit.ts +++ b/src/pages/course-rooms/CourseRoomDetails.page.unit.ts @@ -112,7 +112,7 @@ const $route = { }, path: "/rooms/", }; -const $router = { push: jest.fn(), resolve: jest.fn(), replace: jest.fn() }; +const $router = { push: vi.fn(), resolve: vi.fn(), replace: vi.fn() }; let copyModule: CopyModule; let loadingStateModuleMock: LoadingStateModule; @@ -132,7 +132,7 @@ const getWrapper = ( notifierModule = createModuleMocks(NotifierModule); copyModule = createModuleMocks(CopyModule, { - copy: jest.fn(), + copy: vi.fn(), getIsResultModalOpen: false, getCopyResult: { id: "copiedid", @@ -148,17 +148,17 @@ const getWrapper = ( getTopics: [], getTasks: [], getColumnBoards: [], - startExportFlow: jest.fn(), + startExportFlow: vi.fn(), }); shareModule = createModuleMocks(ShareModule, { getIsShareModalOpen: true, getParentType: ShareTokenBodyParamsParentTypeEnum.Courses, - createShareUrl: jest.fn(), - startShareFlow: jest.fn(), - resetShareFlow: jest.fn(), + createShareUrl: vi.fn(), + startShareFlow: vi.fn(), + resetShareFlow: vi.fn(), }); courseRoomDetailsModule = createModuleMocks(CourseRoomDetailsModule, { - fetchContent: jest.fn(), + fetchContent: vi.fn(), getRoomData: mockData, getPermissionData: permissionData, }); diff --git a/src/pages/course-rooms/CourseRoomOverview.page.unit.js b/src/pages/course-rooms/CourseRoomOverview.page.unit.js index cef1890194..49d3e021b8 100644 --- a/src/pages/course-rooms/CourseRoomOverview.page.unit.js +++ b/src/pages/course-rooms/CourseRoomOverview.page.unit.js @@ -120,7 +120,7 @@ let notifierModuleMock; const defaultMocks = { $route: { query: {} }, - $router: { replace: jest.fn() }, + $router: { replace: vi.fn() }, }; const getWrapper = (device = "desktop", options = {}) => { diff --git a/src/pages/course-rooms/tools/RoomExternalToolsSection.unit.ts b/src/pages/course-rooms/tools/RoomExternalToolsSection.unit.ts index 0525f55518..d0196502ff 100644 --- a/src/pages/course-rooms/tools/RoomExternalToolsSection.unit.ts +++ b/src/pages/course-rooms/tools/RoomExternalToolsSection.unit.ts @@ -20,8 +20,8 @@ import RoomExternalToolsErrorDialog from "./RoomExternalToolsErrorDialog.vue"; import RoomExternalToolsSection from "./RoomExternalToolsSection.vue"; jest.mock("vue-router", () => ({ - useRoute: jest.fn(), - useRouter: jest.fn(), + useRoute: vi.fn(), + useRouter: vi.fn(), })); const useRouterMock = useRouter; diff --git a/src/pages/course-rooms/tools/RoomVideoConferenceSection.unit.ts b/src/pages/course-rooms/tools/RoomVideoConferenceSection.unit.ts index 437f041731..dafcc597eb 100644 --- a/src/pages/course-rooms/tools/RoomVideoConferenceSection.unit.ts +++ b/src/pages/course-rooms/tools/RoomVideoConferenceSection.unit.ts @@ -761,7 +761,7 @@ describe("RoomVideoConferenceSection", () => { describe("when a videoconference is started or joined", () => { describe("when an error occurs", () => { const setup = () => { - const error = jest.fn(() => { + const error = vi.fn(() => { throw new Error(); }); diff --git a/src/pages/tasks/TaskOverview.unit.ts b/src/pages/tasks/TaskOverview.unit.ts index 797f779c4a..80e825070d 100644 --- a/src/pages/tasks/TaskOverview.unit.ts +++ b/src/pages/tasks/TaskOverview.unit.ts @@ -11,7 +11,7 @@ jest.mock("@/utils/pageTitle", () => ({ })); describe("TaskOverview", () => { - const fetchAllTasksSpy = jest.fn(); + const fetchAllTasksSpy = vi.fn(); const getWrapper = (userRole: string) => { return shallowMount(TaskOverview, { global: { diff --git a/src/router/guards/multi.guard.unit.ts b/src/router/guards/multi.guard.unit.ts index 10c11db266..e3f1247ef8 100644 --- a/src/router/guards/multi.guard.unit.ts +++ b/src/router/guards/multi.guard.unit.ts @@ -41,7 +41,7 @@ describe("Multiguard", () => { const setup = () => { const to: RouteLocationNormalized = createRoute("to", "/to"); const from: RouteLocationNormalized = createRoute("from", "/from"); - const next = jest.fn(); + const next = vi.fn(); const multiguard = Multiguard([]); @@ -64,7 +64,7 @@ describe("Multiguard", () => { }; const to = createRoute("to", "/to"); const from = createRoute("from", "/from"); - const next = jest.fn(); + const next = vi.fn(); const multiguard = Multiguard([(to, from, next) => next(expected)]); @@ -84,7 +84,7 @@ describe("Multiguard", () => { const setup = () => { const to = createRoute("to", "/to"); const from = createRoute("from", "/from"); - const next = jest.fn(); + const next = vi.fn(); const multiguard = Multiguard([ (to, from, next) => next(), @@ -110,7 +110,7 @@ describe("Multiguard", () => { }; const to = createRoute("to", "/to"); const from = createRoute("from", "/from"); - const next = jest.fn(); + const next = vi.fn(); const multiguard = Multiguard([ (to, from, next) => next(expected), @@ -136,7 +136,7 @@ describe("Multiguard", () => { }; const to = createRoute("to", "/to"); const from = createRoute("from", "/from"); - const next = jest.fn(); + const next = vi.fn(); const multiguard = Multiguard([ (to, from, next) => next(expected), diff --git a/src/router/guards/permission.guard.unit.ts b/src/router/guards/permission.guard.unit.ts index 985a76f787..2b152d844d 100644 --- a/src/router/guards/permission.guard.unit.ts +++ b/src/router/guards/permission.guard.unit.ts @@ -3,7 +3,7 @@ import { NavigationGuard, RouteLocationNormalized } from "vue-router"; import { NavigationGuardNext } from "vue-router"; import Mock = jest.Mock; -const mockError = jest.fn(); +const mockError = vi.fn(); jest.mock("@/store", () => ({ authModule: { @@ -21,7 +21,7 @@ describe("PermissionGuard", () => { function setup() { const route: RouteLocationNormalized = {} as RouteLocationNormalized; - const next: Mock = jest.fn(); + const next: Mock = vi.fn(); return { to: route, from: route, next }; } diff --git a/src/router/guards/validate-query-parameters.guard.unit.ts b/src/router/guards/validate-query-parameters.guard.unit.ts index c3f1179f06..90c787d8a6 100644 --- a/src/router/guards/validate-query-parameters.guard.unit.ts +++ b/src/router/guards/validate-query-parameters.guard.unit.ts @@ -7,13 +7,13 @@ import Mock = jest.Mock; jest.mock("@/store", () => ({ applicationErrorModule: { - setError: jest.fn(), + setError: vi.fn(), }, })); jest.mock("@/composables/application-error.composable", () => ({ useApplicationError: () => ({ - createApplicationError: jest.fn(() => ({ + createApplicationError: vi.fn(() => ({ status: 400, message: "Bad Request", })), @@ -27,7 +27,7 @@ describe("validateQueryParameters", () => { function setup() { const route: RouteLocationNormalized = {} as RouteLocationNormalized; - const next: Mock = jest.fn(); + const next: Mock = vi.fn(); return { to: route, from: route, next }; } diff --git a/src/store/accounts.unit.ts b/src/store/accounts.unit.ts index 67abe9da08..80249386aa 100644 --- a/src/store/accounts.unit.ts +++ b/src/store/accounts.unit.ts @@ -28,8 +28,8 @@ describe("accounts module", () => { }); it("getTTL should call resetBusinessError and setStatus mutations", async () => { const accountsModule = new AccountsModule({}); - const spyResetError = jest.fn(); - const spySetStatus = jest.fn(); + const spyResetError = vi.fn(); + const spySetStatus = vi.fn(); accountsModule.resetBusinessError = spyResetError; accountsModule.setStatus = spySetStatus; @@ -47,8 +47,8 @@ describe("accounts module", () => { }); it("resetJwtTimer should call resetBusinessError and setStatus mutations", async () => { const accountsModule = new AccountsModule({}); - const spyResetError = jest.fn(); - const spySetStatus = jest.fn(); + const spyResetError = vi.fn(); + const spySetStatus = vi.fn(); accountsModule.resetBusinessError = spyResetError; accountsModule.setStatus = spySetStatus; diff --git a/src/store/auth.unit.ts b/src/store/auth.unit.ts index e8c50f0510..c1c7e51fab 100644 --- a/src/store/auth.unit.ts +++ b/src/store/auth.unit.ts @@ -306,7 +306,7 @@ describe("auth store module", () => { it("should call backend succesfully", () => { const mockApi = { - userControllerChangeLanguage: jest.fn().mockReturnValue({ + userControllerChangeLanguage: vi.fn().mockReturnValue({ data: { successful: true }, }), }; @@ -322,7 +322,7 @@ describe("auth store module", () => { it("should catch error", () => { const mockApi = { - userControllerChangeLanguage: jest.fn().mockImplementation(() => { + userControllerChangeLanguage: vi.fn().mockImplementation(() => { throw new AxiosError("I'm an error"); }), }; @@ -351,7 +351,7 @@ describe("auth store module", () => { const authModule = new AuthModule({}); - const mockReplace = jest.fn(); + const mockReplace = vi.fn(); Object.defineProperty(window, "location", { configurable: true, value: { replace: mockReplace }, diff --git a/src/store/autoLogout.unit.ts b/src/store/autoLogout.unit.ts index 24b1d5a82f..05310681e0 100644 --- a/src/store/autoLogout.unit.ts +++ b/src/store/autoLogout.unit.ts @@ -14,7 +14,7 @@ describe("autoLogout module", () => { describe("actions", () => { it("init should call setInit mutation", () => { const autoLogoutModule = new AutoLogoutModule({}); - const spySetInit = jest.fn(); + const spySetInit = vi.fn(); autoLogoutModule.setInit = spySetInit; @@ -24,7 +24,7 @@ describe("autoLogout module", () => { it("extendSession should call setActive mutation", async () => { const autoLogoutModule = new AutoLogoutModule({}); - const spySetActive = jest.fn(); + const spySetActive = vi.fn(); autoLogoutModule.setActive = spySetActive; diff --git a/src/store/bulkConsent.unit.js b/src/store/bulkConsent.unit.js index 2061a2b426..7d3eb9e3d3 100644 --- a/src/store/bulkConsent.unit.js +++ b/src/store/bulkConsent.unit.js @@ -24,7 +24,7 @@ describe("store/bulkConsent", () => { describe("actions", () => { describe("register", () => { it("'register' action should commit mutation", async () => { - const spyCommit = jest.fn(); + const spyCommit = vi.fn(); await actions.register({ commit: spyCommit }, consentDataMock); @@ -32,7 +32,7 @@ describe("store/bulkConsent", () => { }); it("'setStudents' action should commit mutation", async () => { - const spyCommit = jest.fn(); + const spyCommit = vi.fn(); const userData = { _id: "60c8689dfa9e25030445595c", @@ -54,7 +54,7 @@ describe("store/bulkConsent", () => { }); it("'updateStudents' action should commit mutation", async () => { - const spyCommit = jest.fn(); + const spyCommit = vi.fn(); const userData = { _id: "60c8689dfa9e25030445595c", diff --git a/src/store/content.unit.ts b/src/store/content.unit.ts index f5428442ce..196400f889 100644 --- a/src/store/content.unit.ts +++ b/src/store/content.unit.ts @@ -99,7 +99,7 @@ describe("content module", () => { describe("actions", () => { it("selectElement action should call setSelectedElement mutation", () => { const contentModule = new ContentModule({}); - const selectedSpy = jest.fn(); + const selectedSpy = vi.fn(); contentModule.setSelectedElement = selectedSpy; expect(selectedSpy).not.toBeCalled(); contentModule.selectElement("mockId"); @@ -107,7 +107,7 @@ describe("content module", () => { }); it("unselectElemeent action should call setSelectedElement mutation", () => { const contentModule = new ContentModule({}); - const selectedSpy = jest.fn(); + const selectedSpy = vi.fn(); contentModule.setSelectedElement = selectedSpy; expect(selectedSpy).not.toBeCalled(); contentModule.unselectElement("mockId"); @@ -117,10 +117,10 @@ describe("content module", () => { const contentModule = new ContentModule({}); axiosInitializer(); const searchQuery = "mock"; - const incLoadingSpy = jest.fn(); - const setLastQuerySpy = jest.fn(); - const decLoadingSpy = jest.fn(); - const setResourcesSpy = jest.fn(); + const incLoadingSpy = vi.fn(); + const setLastQuerySpy = vi.fn(); + const decLoadingSpy = vi.fn(); + const setResourcesSpy = vi.fn(); contentModule.incLoading = incLoadingSpy; contentModule.setLastQuery = setLastQuerySpy; @@ -163,9 +163,9 @@ describe("content module", () => { $skip: 0, searchQuery: "mock", }; - const incLoadingSpy = jest.fn(); - const decLoadingSpy = jest.fn(); - const addResourceSpy = jest.fn(); + const incLoadingSpy = vi.fn(); + const decLoadingSpy = vi.fn(); + const addResourceSpy = vi.fn(); contentModule.incLoading = incLoadingSpy; contentModule.decLoading = decLoadingSpy; @@ -213,10 +213,10 @@ describe("content module", () => { $skip: 0, searchQuery: "mock", }; - const incLoadingSpy = jest.fn(); - const setLastQuerySpy = jest.fn(); - const decLoadingSpy = jest.fn(); - const setElementsSpy = jest.fn(); + const incLoadingSpy = vi.fn(); + const setLastQuerySpy = vi.fn(); + const decLoadingSpy = vi.fn(); + const setElementsSpy = vi.fn(); contentModule.incLoading = incLoadingSpy; contentModule.setLastQuery = setLastQuerySpy; @@ -255,9 +255,9 @@ describe("content module", () => { $skip: 0, searchQuery: "mock", }; - const incLoadingSpy = jest.fn(); - const decLoadingSpy = jest.fn(); - const addElementsSpy = jest.fn(); + const incLoadingSpy = vi.fn(); + const decLoadingSpy = vi.fn(); + const addElementsSpy = vi.fn(); contentModule.incLoading = incLoadingSpy; contentModule.decLoading = decLoadingSpy; @@ -288,7 +288,7 @@ describe("content module", () => { const contentModule = new ContentModule({}); axiosInitializer(); - const setLessonsSpy = jest.fn(); + const setLessonsSpy = vi.fn(); contentModule.setLessons = setLessonsSpy; @@ -326,7 +326,7 @@ describe("content module", () => { url: "", }, }; - const setNotificationSpy = jest.fn(); + const setNotificationSpy = vi.fn(); contentModule.setNotificationModal = setNotificationSpy; @@ -381,8 +381,8 @@ describe("content module", () => { const contentModule = new ContentModule({}); axiosInitializer(); - const setStatusSpy = jest.fn(); - const setCurrentResourceSpy = jest.fn(); + const setStatusSpy = vi.fn(); + const setCurrentResourceSpy = vi.fn(); contentModule.setStatus = setStatusSpy; contentModule.setCurrentResource = setCurrentResourceSpy; @@ -406,7 +406,7 @@ describe("content module", () => { setupStores({ envConfigModule: EnvConfigModule }); const contentModule = new ContentModule({}); - const initSpy = jest.fn(); + const initSpy = vi.fn(); contentModule.initMutation = initSpy; diff --git a/src/store/copy.unit.ts b/src/store/copy.unit.ts index b6db90cce0..58decc51c8 100644 --- a/src/store/copy.unit.ts +++ b/src/store/copy.unit.ts @@ -58,7 +58,7 @@ describe("copy module", () => { describe("copy", () => { it("should throw an error if copyResult is undefined", async () => { const roomCopyMockApi = { - courseRoomsControllerCopyCourse: jest.fn(async () => ({})), + courseRoomsControllerCopyCourse: vi.fn(async () => ({})), }; jest .spyOn(serverApi, "CourseRoomsApiFactory") @@ -81,7 +81,7 @@ describe("copy module", () => { describe("copy a task", () => { describe("should make a 'POST' request to the backend", () => { const taskMockApi = { - taskControllerCopyTask: jest.fn(async () => ({ data: {} })), + taskControllerCopyTask: vi.fn(async () => ({ data: {} })), }; jest .spyOn(serverApi, "TaskApiFactory") @@ -123,7 +123,7 @@ describe("copy module", () => { describe("copy a course", () => { it("should make a 'POST' request to the backend", async () => { const roomCopyMockApi = { - courseRoomsControllerCopyCourse: jest.fn(async () => ({ + courseRoomsControllerCopyCourse: vi.fn(async () => ({ data: {}, })), }; @@ -151,7 +151,7 @@ describe("copy module", () => { describe("copy a lesson", () => { it("should make a 'POST' request to the backend", async () => { const roomCopyMockApi = { - courseRoomsControllerCopyLesson: jest.fn(async () => ({ + courseRoomsControllerCopyLesson: vi.fn(async () => ({ data: {}, })), }; @@ -175,7 +175,7 @@ describe("copy module", () => { describe("copy a board", () => { it("should make a 'POST' request to the backend", async () => { const boardCopyMockApi = { - boardControllerCopyBoard: jest.fn(async () => ({ data: {} })), + boardControllerCopyBoard: vi.fn(async () => ({ data: {} })), }; jest .spyOn(serverApi, "BoardApiFactory") @@ -198,7 +198,7 @@ describe("copy module", () => { describe("validate share token", () => { it("should validate share token by using the api", async () => { const shareApiMock = { - shareTokenControllerLookupShareToken: jest.fn(async () => ({ + shareTokenControllerLookupShareToken: vi.fn(async () => ({ data: {}, })), }; @@ -222,7 +222,7 @@ describe("copy module", () => { describe("import a course", () => { it("should import a course by using the shareApi", async () => { const shareApiMock = { - shareTokenControllerImportShareToken: jest.fn(async () => ({ + shareTokenControllerImportShareToken: vi.fn(async () => ({ data: {}, })), }; @@ -250,7 +250,7 @@ describe("copy module", () => { it("should throw an error if copyResult is undefined", async () => { const shareApiMock = { - shareTokenControllerImportShareToken: jest.fn(async () => ({})), + shareTokenControllerImportShareToken: vi.fn(async () => ({})), }; jest .spyOn(serverApi, "ShareTokenApiFactory") @@ -274,7 +274,7 @@ describe("copy module", () => { describe("import a lesson", () => { it("should import a lesson by using the shareApi", async () => { const shareApiMock = { - shareTokenControllerImportShareToken: jest.fn(async () => ({ + shareTokenControllerImportShareToken: vi.fn(async () => ({ data: {}, })), }; @@ -302,7 +302,7 @@ describe("copy module", () => { it("should throw an error if copyResult is undefined", async () => { const shareApiMock = { - shareTokenControllerImportShareToken: jest.fn(async () => ({})), + shareTokenControllerImportShareToken: vi.fn(async () => ({})), }; jest .spyOn(serverApi, "ShareTokenApiFactory") diff --git a/src/store/course-room-details.unit.ts b/src/store/course-room-details.unit.ts index 962b40ef2c..f92fc5d260 100644 --- a/src/store/course-room-details.unit.ts +++ b/src/store/course-room-details.unit.ts @@ -55,9 +55,9 @@ describe("course-room module", () => { jest.clearAllMocks(); }); const mockApi = { - courseRoomsControllerGetRoomBoard: jest.fn(), - courseRoomsControllerPatchElementVisibility: jest.fn(), - courseRoomsControllerPatchOrderingOfElements: jest.fn(), + courseRoomsControllerGetRoomBoard: vi.fn(), + courseRoomsControllerPatchElementVisibility: vi.fn(), + courseRoomsControllerPatchOrderingOfElements: vi.fn(), }; describe("fetchCourse", () => { @@ -200,7 +200,7 @@ describe("course-room module", () => { describe("deleteLesson", () => { it("should call api to delete a lesson", async () => { const mockApi = { - lessonControllerDelete: jest.fn(), + lessonControllerDelete: vi.fn(), }; const spy = jest .spyOn(serverApi, "LessonApiFactory") @@ -219,7 +219,7 @@ describe("course-room module", () => { it("should catch error in catch block", async () => { const error = { statusCode: 418, message: "I'm a teapot" }; const mockApi = { - lessonControllerDelete: jest.fn(() => Promise.reject({ ...error })), + lessonControllerDelete: vi.fn(() => Promise.reject({ ...error })), }; const spy = jest .spyOn(serverApi, "LessonApiFactory") @@ -238,7 +238,7 @@ describe("course-room module", () => { describe("deleteTask", () => { it("should call api to delete a lesson", async () => { const mockApi = { - taskControllerDelete: jest.fn(), + taskControllerDelete: vi.fn(), }; const spy = jest .spyOn(serverApi, "TaskApiFactory") @@ -257,7 +257,7 @@ describe("course-room module", () => { it("should catch error in catch block", async () => { const error = { statusCode: 418, message: "I'm a teapot" }; const mockApi = { - taskControllerDelete: jest.fn(() => Promise.reject({ ...error })), + taskControllerDelete: vi.fn(() => Promise.reject({ ...error })), }; const spy = jest .spyOn(serverApi, "TaskApiFactory") @@ -276,7 +276,7 @@ describe("course-room module", () => { describe("createBoard", () => { it("should call api to create a column board", async () => { const mockApi = { - boardControllerCreateBoard: jest.fn(), + boardControllerCreateBoard: vi.fn(), }; const spy = jest .spyOn(serverApi, "BoardApiFactory") @@ -299,7 +299,7 @@ describe("course-room module", () => { it("should call api to create a list board", async () => { const mockApi = { - boardControllerCreateBoard: jest.fn(), + boardControllerCreateBoard: vi.fn(), }; const spy = jest .spyOn(serverApi, "BoardApiFactory") @@ -323,7 +323,7 @@ describe("course-room module", () => { it("should catch error in catch block", async () => { const error = { statusCode: 418, message: "I'm a teapot" }; const mockApi = { - boardControllerCreateBoard: jest.fn().mockRejectedValue(error), + boardControllerCreateBoard: vi.fn().mockRejectedValue(error), }; const spy = jest .spyOn(serverApi, "BoardApiFactory") @@ -348,7 +348,7 @@ describe("course-room module", () => { describe("deleteBoard", () => { it("should call api to delete a board", async () => { const mockApi = { - boardControllerDeleteBoard: jest.fn(), + boardControllerDeleteBoard: vi.fn(), }; const spy = jest .spyOn(serverApi, "BoardApiFactory") @@ -367,7 +367,7 @@ describe("course-room module", () => { it("should catch error in catch block", async () => { const error = { statusCode: 418, message: "I'm a teapot" }; const mockApi = { - boardControllerDeleteBoard: jest.fn().mockRejectedValue(error), + boardControllerDeleteBoard: vi.fn().mockRejectedValue(error), }; const spy = jest .spyOn(serverApi, "BoardApiFactory") @@ -387,7 +387,7 @@ describe("course-room module", () => { it("should call backend api", async () => { const courseRoomDetailsModule = new CourseRoomDetailsModule({}); const mockApi = { - lessonControllerDelete: jest.fn(() => Promise.resolve()), + lessonControllerDelete: vi.fn(() => Promise.resolve()), }; const spy = jest .spyOn(serverApi, "CoursesApiFactory") @@ -408,7 +408,7 @@ describe("course-room module", () => { const courseRoomDetailsModule = new CourseRoomDetailsModule({}); const error = { statusCode: 418, message: "I'm a teapot" }; const mockApi = { - courseControllerExportCourse: jest.fn(() => + courseControllerExportCourse: vi.fn(() => Promise.reject({ ...error }) ), }; @@ -450,7 +450,7 @@ describe("course-room module", () => { } as AxiosInstance); })(); const mockApi = { - taskControllerFinish: jest.fn(), + taskControllerFinish: vi.fn(), }; jest .spyOn(serverApi, "TaskApiFactory") diff --git a/src/store/course-room-list.unit.ts b/src/store/course-room-list.unit.ts index 64cef7e741..bf68ff79e4 100644 --- a/src/store/course-room-list.unit.ts +++ b/src/store/course-room-list.unit.ts @@ -118,7 +118,7 @@ describe("rooms module", () => { describe("align", () => { it("should call server and 'setPosition' mutation", async () => { const mockApi = { - dashboardControllerMoveElement: jest.fn(() => ({ + dashboardControllerMoveElement: vi.fn(() => ({ data: { id: "42", gridElements: [] }, })), }; @@ -172,7 +172,7 @@ describe("rooms module", () => { describe("update", () => { it("should call the backend", async () => { const mockApi = { - dashboardControllerPatchGroup: jest.fn((groupToPatch) => ({ + dashboardControllerPatchGroup: vi.fn((groupToPatch) => ({ data: { ...groupToPatch }, })), }; @@ -207,7 +207,7 @@ describe("rooms module", () => { it("handle error", async () => { const error = { status: 418, statusText: "I'm a teapot" }; const mockApi = { - dashboardControllerPatchGroup: jest.fn(() => + dashboardControllerPatchGroup: vi.fn(() => Promise.reject({ ...error }) ), }; @@ -242,7 +242,7 @@ describe("rooms module", () => { describe("fetchAllElements", () => { it("should call the backend", async () => { - const mockApi = { courseControllerFindForUser: jest.fn() }; + const mockApi = { courseControllerFindForUser: vi.fn() }; jest .spyOn(serverApi, "CoursesApiFactory") .mockReturnValue(mockApi as unknown as serverApi.CoursesApiInterface); @@ -263,7 +263,7 @@ describe("rooms module", () => { it("handle error", (done) => { const error = { status: 418, statusText: "I'm not a teapot" }; const mockApi = { - courseControllerFindForUser: jest.fn(() => + courseControllerFindForUser: vi.fn(() => Promise.reject({ ...error }) ), }; @@ -310,7 +310,7 @@ describe("rooms module", () => { status: "", message: "", }; - const setBusinessErrorMock = jest.fn(); + const setBusinessErrorMock = vi.fn(); const courseRoomListModule = new CourseRoomListModule({}); courseRoomListModule.setBusinessError = setBusinessErrorMock; diff --git a/src/store/courses.unit.js b/src/store/courses.unit.js index 1b70949b5a..829d54f34f 100644 --- a/src/store/courses.unit.js +++ b/src/store/courses.unit.js @@ -9,14 +9,14 @@ describe("courses store", () => { setupStores({ notifierModule: NotifierModule }); }); describe("removeCourseItem action", () => { - const dispatch = jest.fn(); + const dispatch = vi.fn(); const storeContext = { dispatch, }; coursesStore.actions.app = { i18n: { - t: jest.fn(), + t: vi.fn(), }, }; diff --git a/src/store/env-config.unit.ts b/src/store/env-config.unit.ts index 73902076a9..84cb98e593 100644 --- a/src/store/env-config.unit.ts +++ b/src/store/env-config.unit.ts @@ -69,7 +69,7 @@ describe("env-config module", () => { .mockReturnValue(fileApi); fileApi.publicConfig.mockResolvedValueOnce(fileStorageConfigResponse); - const contentInitMock = jest.fn(); + const contentInitMock = vi.fn(); const contentModuleMock = { ...ContentModule, actions: { @@ -78,7 +78,7 @@ describe("env-config module", () => { }, }; - const filePathsInitMock = jest.fn(); + const filePathsInitMock = vi.fn(); const filePathsModuleMock = { ...FilePathsModule, actions: { @@ -174,7 +174,7 @@ describe("env-config module", () => { .mockReturnValue(fileApi); fileApi.publicConfig.mockRejectedValueOnce(error); - const contentModuleInitMock = jest.fn(); + const contentModuleInitMock = vi.fn(); const contentModuleMock = { ...ContentModule, actions: { @@ -183,7 +183,7 @@ describe("env-config module", () => { }, }; - const filePathsModuleInitMock = jest.fn(); + const filePathsModuleInitMock = vi.fn(); const filePathsModuleMock = { ...FilePathsModule, actions: { @@ -192,7 +192,7 @@ describe("env-config module", () => { }, }; - const setErrorMock = jest.fn(); + const setErrorMock = vi.fn(); const applicationErrorModuleMock = { ...ApplicationErrorModule, actions: { @@ -294,7 +294,7 @@ describe("env-config module", () => { .mockReturnValue(fileApi); fileApi.publicConfig.mockResolvedValueOnce(fileStorageConfigResponse); - const contentInitMock = jest.fn(); + const contentInitMock = vi.fn(); const contentModuleMock = { ...ContentModule, actions: { @@ -303,7 +303,7 @@ describe("env-config module", () => { }, }; - const filePathsInitMock = jest.fn(); + const filePathsInitMock = vi.fn(); const filePathsModuleMock = { ...FilePathsModule, actions: { diff --git a/src/store/filePaths.unit.ts b/src/store/filePaths.unit.ts index cbbf5b38c1..4a6e50c148 100644 --- a/src/store/filePaths.unit.ts +++ b/src/store/filePaths.unit.ts @@ -55,9 +55,9 @@ describe("filePaths module", () => { DOCUMENT_BASE_DIR: mockURL, }); envConfigModule.setEnvs(envs); - const spyBaseDir = jest.fn(); - const spySpecificFiles = jest.fn(); - const spyGlobalFiles = jest.fn(); + const spyBaseDir = vi.fn(); + const spySpecificFiles = vi.fn(); + const spyGlobalFiles = vi.fn(); filePathsModule.setDocumentBaseDir = spyBaseDir; filePathsModule.setSpecificFiles = spySpecificFiles; diff --git a/src/store/finished-tasks.unit.ts b/src/store/finished-tasks.unit.ts index ef2d1aa24f..b9fd271bd7 100644 --- a/src/store/finished-tasks.unit.ts +++ b/src/store/finished-tasks.unit.ts @@ -34,7 +34,7 @@ describe("finished task store", () => { describe("fetchFinishedTasks", () => { it("should request an initial list of tasks", (done) => { const { taskApiMock, finishedTasksModule } = setup({ - taskControllerFindAllFinished: jest.fn(() => ({ + taskControllerFindAllFinished: vi.fn(() => ({ data: { data: [{ mockTask: "mock task value" }], total: 1, @@ -110,7 +110,7 @@ describe("finished task store", () => { finishedTasksModule.isInitialized = true; const mockApi = { - taskControllerFindAllFinished: jest.fn(), + taskControllerFindAllFinished: vi.fn(), }; const spy = jest @@ -134,7 +134,7 @@ describe("finished task store", () => { finishedTasksModule.isInitialized = true; const mockApi = { - taskControllerFindAllFinished: jest.fn(), + taskControllerFindAllFinished: vi.fn(), }; const spy = jest @@ -158,7 +158,7 @@ describe("finished task store", () => { const error = { status: 418, statusText: "I'm a teapot" }; const mockApi = { - taskControllerFindAllFinished: jest.fn(() => + taskControllerFindAllFinished: vi.fn(() => Promise.reject({ ...error }) ), }; @@ -242,7 +242,7 @@ describe("finished task store", () => { const error = { status: 418, statusText: "I'm a teapot" }; const mockApi = { - taskControllerFindAllFinished: jest.fn(() => + taskControllerFindAllFinished: vi.fn(() => Promise.reject({ ...error }) ), }; @@ -274,7 +274,7 @@ describe("finished task store", () => { const task = taskFactory.build(); const error = { status: 418, statusText: "I'm a teapot" }; const mockApi = { - taskControllerRestore: jest.fn(() => Promise.reject({ ...error })), + taskControllerRestore: vi.fn(() => Promise.reject({ ...error })), }; jest diff --git a/src/store/import-users.unit.ts b/src/store/import-users.unit.ts index 4123a909eb..35aba18b1c 100644 --- a/src/store/import-users.unit.ts +++ b/src/store/import-users.unit.ts @@ -35,9 +35,7 @@ describe("import-users store actions", () => { describe("fetchAllUsers", () => { it("should request a list of unmatched users", async () => { mockApi = { - importUserControllerFindAllUnmatchedUsers: jest.fn( - () => mockResponse - ), + importUserControllerFindAllUnmatchedUsers: vi.fn(() => mockResponse), }; spy.mockReturnValue( mockApi as unknown as serverApi.UserImportApiInterface @@ -59,9 +57,7 @@ describe("import-users store actions", () => { it("should request list of unmatched users with filter", async () => { mockApi = { - importUserControllerFindAllUnmatchedUsers: jest.fn( - () => mockResponse - ), + importUserControllerFindAllUnmatchedUsers: vi.fn(() => mockResponse), }; spy.mockReturnValue( mockApi as unknown as serverApi.UserImportApiInterface @@ -84,9 +80,7 @@ describe("import-users store actions", () => { it("should request list of unmatched users with pagination", async () => { mockApi = { - importUserControllerFindAllUnmatchedUsers: jest.fn( - () => mockResponse - ), + importUserControllerFindAllUnmatchedUsers: vi.fn(() => mockResponse), }; spy.mockReturnValue( mockApi as unknown as serverApi.UserImportApiInterface @@ -111,7 +105,7 @@ describe("import-users store actions", () => { it("should handle business errors", async () => { const error = { statusCode: "500", message: "foo" }; const mockApi = { - importUserControllerFindAllUnmatchedUsers: jest.fn(() => + importUserControllerFindAllUnmatchedUsers: vi.fn(() => Promise.reject({ ...error }) ), }; @@ -131,9 +125,7 @@ describe("import-users store actions", () => { describe("fetchTotalUnmatched", () => { it("should request list a unmatched users", async () => { mockApi = { - importUserControllerFindAllUnmatchedUsers: jest.fn( - () => mockResponse - ), + importUserControllerFindAllUnmatchedUsers: vi.fn(() => mockResponse), }; spy.mockReturnValue( mockApi as unknown as serverApi.UserImportApiInterface @@ -151,7 +143,7 @@ describe("import-users store actions", () => { it("should handle buness error", async () => { const error = { statusCode: "500", message: "foo" }; const mockApi = { - importUserControllerFindAllUnmatchedUsers: jest.fn(() => + importUserControllerFindAllUnmatchedUsers: vi.fn(() => Promise.reject({ ...error }) ), }; @@ -171,7 +163,7 @@ describe("import-users store actions", () => { describe("fetchAllImportUsers", () => { it("should request a list of import users", async () => { mockApi = { - importUserControllerFindAllImportUsers: jest.fn(() => mockResponse), + importUserControllerFindAllImportUsers: vi.fn(() => mockResponse), }; spy.mockReturnValue( mockApi as unknown as serverApi.UserImportApiInterface @@ -207,7 +199,7 @@ describe("import-users store actions", () => { it("featch importusers with filters", async () => { mockApi = { - importUserControllerFindAllImportUsers: jest.fn(() => mockResponse), + importUserControllerFindAllImportUsers: vi.fn(() => mockResponse), }; spy.mockReturnValue( mockApi as unknown as serverApi.UserImportApiInterface @@ -254,7 +246,7 @@ describe("import-users store actions", () => { it("featch importusers with sorting by firstName", async () => { mockApi = { - importUserControllerFindAllImportUsers: jest.fn(() => mockResponse), + importUserControllerFindAllImportUsers: vi.fn(() => mockResponse), }; spy.mockReturnValue( mockApi as unknown as serverApi.UserImportApiInterface @@ -291,7 +283,7 @@ describe("import-users store actions", () => { it("featch importusers with sorting by lastName desc", async () => { mockApi = { - importUserControllerFindAllImportUsers: jest.fn(() => mockResponse), + importUserControllerFindAllImportUsers: vi.fn(() => mockResponse), }; spy.mockReturnValue( mockApi as unknown as serverApi.UserImportApiInterface @@ -329,7 +321,7 @@ describe("import-users store actions", () => { it("featch importusers with pagination", async () => { mockApi = { - importUserControllerFindAllImportUsers: jest.fn(() => mockResponse), + importUserControllerFindAllImportUsers: vi.fn(() => mockResponse), }; spy.mockReturnValue( mockApi as unknown as serverApi.UserImportApiInterface @@ -368,7 +360,7 @@ describe("import-users store actions", () => { it("should handle buness error", async () => { const error = { statusCode: "500", message: "foo" }; const mockApi = { - importUserControllerFindAllImportUsers: jest.fn(() => + importUserControllerFindAllImportUsers: vi.fn(() => Promise.reject({ ...error }) ), }; @@ -388,7 +380,7 @@ describe("import-users store actions", () => { describe("fetchTotalMatched", () => { it("should request import users which are matched", async () => { mockApi = { - importUserControllerFindAllImportUsers: jest.fn(() => mockResponse), + importUserControllerFindAllImportUsers: vi.fn(() => mockResponse), }; spy.mockReturnValue( mockApi as unknown as serverApi.UserImportApiInterface @@ -420,7 +412,7 @@ describe("import-users store actions", () => { it("should handle buness error", async () => { const error = { statusCode: "500", message: "foo" }; const mockApi = { - importUserControllerFindAllImportUsers: jest.fn(() => + importUserControllerFindAllImportUsers: vi.fn(() => Promise.reject({ ...error }) ), }; @@ -440,7 +432,7 @@ describe("import-users store actions", () => { describe("deleteMatch", () => { it("should call removeMatch and return new importUser record without match", async () => { mockApi = { - importUserControllerRemoveMatch: jest.fn(() => mockResponse), + importUserControllerRemoveMatch: vi.fn(() => mockResponse), }; spy.mockReturnValue( mockApi as unknown as serverApi.UserImportApiInterface @@ -460,7 +452,7 @@ describe("import-users store actions", () => { it("should handle buness error", async () => { const error = { statusCode: "500", message: "foo" }; const mockApi = { - importUserControllerRemoveMatch: jest.fn(() => + importUserControllerRemoveMatch: vi.fn(() => Promise.reject({ ...error }) ), }; @@ -481,7 +473,7 @@ describe("import-users store actions", () => { describe("saveMatch", () => { it("should call SetMatch with payload and return importUser record with match", async () => { mockApi = { - importUserControllerSetMatch: jest.fn(() => mockResponse), + importUserControllerSetMatch: vi.fn(() => mockResponse), }; spy.mockReturnValue( mockApi as unknown as serverApi.UserImportApiInterface @@ -500,7 +492,7 @@ describe("import-users store actions", () => { it("should handle error", async () => { const error = { statusCode: "500", message: "foo" }; const mockApi = { - importUserControllerSetMatch: jest.fn(() => + importUserControllerSetMatch: vi.fn(() => Promise.reject({ ...error }) ), }; @@ -520,7 +512,7 @@ describe("import-users store actions", () => { describe("saveFlag", function () { it("should call UpdateFlag with flag=true and return importUser with flag=true", async () => { mockApi = { - importUserControllerUpdateFlag: jest.fn(() => mockResponse), + importUserControllerUpdateFlag: vi.fn(() => mockResponse), }; spy.mockReturnValue( mockApi as unknown as serverApi.UserImportApiInterface @@ -537,7 +529,7 @@ describe("import-users store actions", () => { }); it("should call UpdateFlag with flag=false and return importUser with flag=false", async () => { mockApi = { - importUserControllerUpdateFlag: jest.fn(() => mockResponse), + importUserControllerUpdateFlag: vi.fn(() => mockResponse), }; spy.mockReturnValue( mockApi as unknown as serverApi.UserImportApiInterface @@ -555,7 +547,7 @@ describe("import-users store actions", () => { it("should update the state", async () => { mockApi = { - importUserControllerUpdateFlag: jest.fn(() => mockResponse), + importUserControllerUpdateFlag: vi.fn(() => mockResponse), }; spy.mockReturnValue( mockApi as unknown as serverApi.UserImportApiInterface @@ -607,7 +599,7 @@ describe("import-users store actions", () => { it("should handle business error", async () => { const error = { statusCode: "500", message: "foo" }; const mockApi = { - importUserControllerUpdateFlag: jest.fn(() => + importUserControllerUpdateFlag: vi.fn(() => Promise.reject({ ...error }) ), }; @@ -627,7 +619,7 @@ describe("import-users store actions", () => { describe("when fetching the data", () => { const setup = () => { mockApi = { - importUserControllerPopulateImportUsers: jest.fn(), + importUserControllerPopulateImportUsers: vi.fn(), }; spy.mockReturnValue( @@ -651,7 +643,7 @@ describe("import-users store actions", () => { const error = axiosErrorFactory.build(); const apiError = mapAxiosErrorToResponseError(error); mockApi = { - importUserControllerPopulateImportUsers: jest.fn(() => + importUserControllerPopulateImportUsers: vi.fn(() => Promise.reject(error) ), }; @@ -683,7 +675,7 @@ describe("import-users store actions", () => { describe("when action is called", () => { const setup = () => { mockApi = { - importUserControllerCancelMigration: jest.fn(), + importUserControllerCancelMigration: vi.fn(), }; spy.mockReturnValue( @@ -707,7 +699,7 @@ describe("import-users store actions", () => { const error = axiosErrorFactory.build(); const apiError = mapAxiosErrorToResponseError(error); mockApi = { - importUserControllerCancelMigration: jest.fn(() => + importUserControllerCancelMigration: vi.fn(() => Promise.reject(error) ), }; @@ -739,7 +731,7 @@ describe("import-users store actions", () => { describe("when action is called", () => { const setup = () => { mockApi = { - importUserControllerClearAllAutoMatches: jest.fn(), + importUserControllerClearAllAutoMatches: vi.fn(), }; spy.mockReturnValue( @@ -763,7 +755,7 @@ describe("import-users store actions", () => { const error = axiosErrorFactory.build(); const apiError = mapAxiosErrorToResponseError(error); mockApi = { - importUserControllerClearAllAutoMatches: jest.fn(() => + importUserControllerClearAllAutoMatches: vi.fn(() => Promise.reject(error) ), }; diff --git a/src/store/ldap-config.unit.js b/src/store/ldap-config.unit.js index e809b787ec..1979717679 100644 --- a/src/store/ldap-config.unit.js +++ b/src/store/ldap-config.unit.js @@ -90,7 +90,7 @@ describe("store/ldap-config", () => { }, }); - const spyCommit = jest.fn(); + const spyCommit = vi.fn(); await actions.getData({ commit: spyCommit }, "id"); expect(receivedUrl).toBe("/v1/ldap-config/id"); expect(spyCommit.mock.calls).toHaveLength(3); @@ -108,7 +108,7 @@ describe("store/ldap-config", () => { }, }); - const spyCommit = jest.fn(); + const spyCommit = vi.fn(); await actions.verifyData({ commit: spyCommit }, clientMockData); expect(receivedUrl).toBe("/v1/ldap-config?verifyOnly=true"); expect(spyCommit.mock.calls).toHaveLength(4); @@ -125,7 +125,7 @@ describe("store/ldap-config", () => { }, }); - const spyCommit = jest.fn(); + const spyCommit = vi.fn(); await actions.verifyData({ commit: spyCommit }, clientMockData); expect(receivedUrl).toBe("/v1/ldap-config?verifyOnly=true"); expect(spyCommit.mock.calls).toHaveLength(4); @@ -143,7 +143,7 @@ describe("store/ldap-config", () => { }, }); - const spyCommit = jest.fn(); + const spyCommit = vi.fn(); await actions.verifyExisting( { commit: spyCommit }, { systemId: "systemId", systemData: clientMockData } @@ -163,7 +163,7 @@ describe("store/ldap-config", () => { }, }); - const spyCommit = jest.fn(); + const spyCommit = vi.fn(); await actions.verifyExisting( { commit: spyCommit }, { systemId: "systemId", systemData: clientMockData } @@ -183,7 +183,7 @@ describe("store/ldap-config", () => { return Promise.resolve({ data: clientMockData }); }, }); - const spyCommit = jest.fn(); + const spyCommit = vi.fn(); await actions.submitData({ commit: spyCommit }, clientMockData); expect(receivedUrl).toBe( "/v1/ldap-config?verifyOnly=false&activate=true" @@ -202,7 +202,7 @@ describe("store/ldap-config", () => { return Promise.resolve({ data: clientMockData }); }, }); - const spyCommit = jest.fn(); + const spyCommit = vi.fn(); await actions.patchData( { commit: spyCommit }, { systemId: "systemId", systemData: clientMockData } diff --git a/src/store/news.unit.ts b/src/store/news.unit.ts index e97aa4e9a2..56663eaa20 100644 --- a/src/store/news.unit.ts +++ b/src/store/news.unit.ts @@ -5,7 +5,7 @@ describe("news store", () => { describe("findNews", () => { it("should request a list of news", (done) => { const mockApi = { - newsControllerFindAll: jest.fn(() => ({ + newsControllerFindAll: vi.fn(() => ({ data: { data: [{ mockNews: "mock news value" }], total: 3, @@ -34,7 +34,7 @@ describe("news store", () => { it("should handle an error", (done) => { const error = { status: 418, statusText: "I'm a teapot" }; const mockApi = { - newsControllerFindAll: jest.fn(() => Promise.reject({ ...error })), + newsControllerFindAll: vi.fn(() => Promise.reject({ ...error })), }; jest .spyOn(serverApi, "NewsApiFactory") @@ -54,7 +54,7 @@ describe("news store", () => { describe("fetchNews", () => { it("should request a single news", (done) => { const mockApi = { - newsControllerFindOne: jest.fn(() => ({ + newsControllerFindOne: vi.fn(() => ({ data: { mockNews: "mock news value" }, })), }; @@ -77,7 +77,7 @@ describe("news store", () => { it("should handle an error", (done) => { const error = { status: 418, statusText: "I'm a teapot" }; const mockApi = { - newsControllerFindOne: jest.fn(() => Promise.reject({ ...error })), + newsControllerFindOne: vi.fn(() => Promise.reject({ ...error })), }; jest .spyOn(serverApi, "NewsApiFactory") @@ -98,7 +98,7 @@ describe("news store", () => { describe("createNews", () => { it("should request a single news", (done) => { const mockApi = { - newsControllerCreate: jest.fn((newsToCreate) => ({ + newsControllerCreate: vi.fn((newsToCreate) => ({ data: { id: 42, ...newsToCreate }, })), }; @@ -130,7 +130,7 @@ describe("news store", () => { it("should handle an error", (done) => { const error = { status: 418, statusText: "I'm a teapot" }; const mockApi = { - newsControllerCreate: jest.fn(() => Promise.reject({ ...error })), + newsControllerCreate: vi.fn(() => Promise.reject({ ...error })), }; jest .spyOn(serverApi, "NewsApiFactory") diff --git a/src/store/schools.unit.ts b/src/store/schools.unit.ts index 3025ebf4b8..fd605e80ca 100644 --- a/src/store/schools.unit.ts +++ b/src/store/schools.unit.ts @@ -313,7 +313,7 @@ describe("schools module", () => { schoolsModule = new SchoolsModule({}); spy = jest.spyOn(serverApi, "UserImportApiFactory"); mockApi = { - importUserControllerEndSchoolInMaintenance: jest.fn(() => ({})), + importUserControllerEndSchoolInMaintenance: vi.fn(() => ({})), }; spy.mockReturnValue( mockApi as unknown as serverApi.UserImportApiInterface @@ -369,7 +369,7 @@ describe("schools module", () => { JSON.stringify({ statusCode: "500", message: "foo" }) ); mockApi = { - importUserControllerEndSchoolInMaintenance: jest.fn(() => + importUserControllerEndSchoolInMaintenance: vi.fn(() => Promise.reject(error) ), }; @@ -406,7 +406,7 @@ describe("schools module", () => { schoolsModule = new SchoolsModule({}); spy = jest.spyOn(serverApi, "UserImportApiFactory"); mockApi = { - importUserControllerStartSchoolInUserMigration: jest.fn(() => ({})), + importUserControllerStartSchoolInUserMigration: vi.fn(() => ({})), }; spy.mockReturnValue( mockApi as unknown as serverApi.UserImportApiInterface @@ -463,7 +463,7 @@ describe("schools module", () => { it("should handle error", async () => { const error = { statusCode: "500", message: "foo" }; mockApi = { - importUserControllerStartSchoolInUserMigration: jest.fn(() => + importUserControllerStartSchoolInUserMigration: vi.fn(() => Promise.reject({ ...error }) ), }; diff --git a/src/store/share.unit.ts b/src/store/share.unit.ts index af5d88c2ab..e4e692f4d6 100644 --- a/src/store/share.unit.ts +++ b/src/store/share.unit.ts @@ -28,7 +28,7 @@ describe("share module", () => { describe("createShareUrl", () => { describe("should make a 'POST' request to the backend", () => { const shareTokenMockApi = { - shareTokenControllerCreateShareToken: jest.fn(async () => ({ + shareTokenControllerCreateShareToken: vi.fn(async () => ({ data: { token: "sampleToken", payload: { @@ -76,7 +76,7 @@ describe("share module", () => { const shareModule = new ShareModule({}); const error = { statusCode: 418, message: "server error" }; const shareTokenErrorMockApi = { - shareTokenControllerCreateShareToken: jest.fn(() => + shareTokenControllerCreateShareToken: vi.fn(() => Promise.reject({ ...error }) ), }; @@ -95,7 +95,7 @@ describe("share module", () => { it("should return undefined if shareTokenResult is undefined", async () => { const shareModule = new ShareModule({}); const shareTokenErrorMockApi = { - shareTokenControllerCreateShareToken: jest.fn(() => + shareTokenControllerCreateShareToken: vi.fn(() => Promise.resolve(undefined) ), }; diff --git a/src/store/status-alerts.unit.ts b/src/store/status-alerts.unit.ts index f8ffd0d24c..934ba1471e 100644 --- a/src/store/status-alerts.unit.ts +++ b/src/store/status-alerts.unit.ts @@ -12,7 +12,7 @@ describe("status alerts module", () => { describe("fetchStatusAlerts", () => { it("should call api and set the alerts corectly", async () => { const mockApi = { - alertControllerFind: jest.fn(() => ({ + alertControllerFind: vi.fn(() => ({ data: { data: mockStatusAlerts, }, @@ -41,7 +41,7 @@ describe("status alerts module", () => { it("should handle exception", async () => { const error = { status: 418, statusText: "I'm a teapot" }; const mockApi = { - alertControllerFind: jest.fn(() => Promise.reject({ ...error })), + alertControllerFind: vi.fn(() => Promise.reject({ ...error })), }; jest .spyOn(serverApi, "AlertApiFactory") diff --git a/src/store/systems.unit.ts b/src/store/systems.unit.ts index c72cce97e6..653166e86b 100644 --- a/src/store/systems.unit.ts +++ b/src/store/systems.unit.ts @@ -75,7 +75,7 @@ describe("SystemsModule", () => { }; const mockApi = { - systemControllerFind: jest.fn().mockResolvedValue({ + systemControllerFind: vi.fn().mockResolvedValue({ data: { data: [ { diff --git a/src/store/tasks.unit.ts b/src/store/tasks.unit.ts index 500a5f0e2d..64247d5f0f 100644 --- a/src/store/tasks.unit.ts +++ b/src/store/tasks.unit.ts @@ -37,7 +37,7 @@ describe("task store", () => { describe("fetchAllTasks", () => { it("should request a list of tasks", (done) => { const mockApi = { - taskControllerFindAll: jest.fn(() => ({ + taskControllerFindAll: vi.fn(() => ({ data: { data: [{ mockTask: "mock task value" }], total: 3, @@ -117,7 +117,7 @@ describe("task store", () => { it("should handle an error", (done) => { const error = { status: 418, statusText: "I'm a teapot" }; const mockApi = { - taskControllerFindAll: jest.fn(() => Promise.reject({ ...error })), + taskControllerFindAll: vi.fn(() => Promise.reject({ ...error })), }; jest .spyOn(serverApi, "TaskApiFactory") @@ -144,7 +144,7 @@ describe("task store", () => { it("should call api to revert a published task", (done) => { const mockApi = { - taskControllerRevertPublished: jest.fn(), + taskControllerRevertPublished: vi.fn(), }; const spy = jest .spyOn(serverApi, "TaskApiFactory") @@ -177,7 +177,7 @@ describe("task store", () => { const task = taskFactory.build(); const error = { status: 418, statusText: "I'm a teapot" }; const mockApi = { - taskControllerFinish: jest.fn(() => Promise.reject({ ...error })), + taskControllerFinish: vi.fn(() => Promise.reject({ ...error })), }; jest @@ -204,7 +204,7 @@ describe("task store", () => { it("should call api to delete a task", (done) => { const mockApi = { - taskControllerDelete: jest.fn(), + taskControllerDelete: vi.fn(), }; const spy = jest .spyOn(serverApi, "TaskApiFactory") diff --git a/src/store/users.unit.js b/src/store/users.unit.js index b3f004be56..bcf6ef2048 100644 --- a/src/store/users.unit.js +++ b/src/store/users.unit.js @@ -7,7 +7,7 @@ describe("store/users", () => { it("calls backend and sets state correctly", async () => { const receivedRequests = []; const ctxMock = { - commit: jest.fn(), + commit: vi.fn(), }; initializeAxios({ get: async (url, params) => { @@ -32,7 +32,7 @@ describe("store/users", () => { it("calls backend and sets state correctly", async () => { const receivedRequests = []; const ctxMock = { - commit: jest.fn(), + commit: vi.fn(), }; initializeAxios({ get: async (url, params) => { @@ -129,7 +129,7 @@ describe("store/users", () => { describe("createStudent", () => { it("should call backend", async () => { const receivedRequests = []; - const spyCommit = jest.fn(); + const spyCommit = vi.fn(); const ctxMock = { commit: spyCommit }; const studentData = { firstName: "Marla", @@ -146,7 +146,7 @@ describe("store/users", () => { }, }); actions.$router = { - push: jest.fn(), + push: vi.fn(), }; await actions.createStudent(ctxMock, payloadMock); @@ -157,7 +157,7 @@ describe("store/users", () => { }); it("should handle backend error", async () => { - const spyCommit = jest.fn(); + const spyCommit = vi.fn(); const ctxMock = { commit: spyCommit }; const studentData = { firstName: "Marla", @@ -191,7 +191,7 @@ describe("store/users", () => { receivedRequests.push({ url, params }); }, }); - const spyCommit = jest.fn(); + const spyCommit = vi.fn(); const payload = { ids: ["5f2987e020834114b8efd6f1", "5f2987e020834114b8efd6f2"], userType: "teacher", diff --git a/src/utils/fileHelper.unit.ts b/src/utils/fileHelper.unit.ts index 12df1ec71e..84e8e25067 100644 --- a/src/utils/fileHelper.unit.ts +++ b/src/utils/fileHelper.unit.ts @@ -25,13 +25,13 @@ describe("@/utils/fileHelper", () => { ...document.createElement("a"), href: "", download: "", - click: jest.fn(), + click: vi.fn(), }; const createElementSpy = jest .spyOn(document, "createElement") .mockImplementation(() => link); - document.body.appendChild = jest.fn(); - document.body.removeChild = jest.fn(); + document.body.appendChild = vi.fn(); + document.body.removeChild = vi.fn(); return { url, fileName, link, createElementSpy }; }; diff --git a/src/utils/helpers.unit.js b/src/utils/helpers.unit.js index 668a8691bb..c28abfb55b 100644 --- a/src/utils/helpers.unit.js +++ b/src/utils/helpers.unit.js @@ -4,7 +4,7 @@ describe("helpers", () => { describe("delay", () => { test("should not resolve until timeout has passed", async () => { jest.useFakeTimers(); - const spy = jest.fn(); + const spy = vi.fn(); delay(100).then(spy); // not resolved after half time diff --git a/src/utils/mock-store-module.ts b/src/utils/mock-store-module.ts index 4cbd09a104..f51657e454 100644 --- a/src/utils/mock-store-module.ts +++ b/src/utils/mock-store-module.ts @@ -23,7 +23,7 @@ const mockMutations = ( statics: StaticsType ) => { Object.keys(module.mutations as MutationTree).forEach((key) => { - statics[key] = jest.fn(); + statics[key] = vi.fn(); }); }; @@ -33,7 +33,7 @@ const mockActions = ( statics: StaticsType ) => { Object.keys(module.actions as ActionTree).forEach((key) => { - statics[key] = jest.fn(); + statics[key] = vi.fn(); }); }; diff --git a/tests/test-utils/api-mocks/fileStorageApiMock.ts b/tests/test-utils/api-mocks/fileStorageApiMock.ts index 7d44e1c2e7..887a593943 100644 --- a/tests/test-utils/api-mocks/fileStorageApiMock.ts +++ b/tests/test-utils/api-mocks/fileStorageApiMock.ts @@ -21,12 +21,12 @@ export const setupFileStorageApiMock = (props: Props = {}) => { } = props; const mockedFileStorageApi = jest.mocked(useFileStorageApi); const getFileRecord = - getFileRecordMock ?? jest.fn(() => ref()); + getFileRecordMock ?? vi.fn(() => ref()); - const fetchFile = fetchFileMock ?? jest.fn(); - const rename = renameMock ?? jest.fn(); - const upload = uploadMock ?? jest.fn(); - const uploadFromUrl = uploadFromUrlMock ?? jest.fn(); + const fetchFile = fetchFileMock ?? vi.fn(); + const rename = renameMock ?? vi.fn(); + const upload = uploadMock ?? vi.fn(); + const uploadFromUrl = uploadFromUrlMock ?? vi.fn(); const mocks = { fetchFile, diff --git a/tests/test-utils/composable-mocks/setupConfirmationComposableMock.ts b/tests/test-utils/composable-mocks/setupConfirmationComposableMock.ts index c581ca5ede..81d358be4a 100644 --- a/tests/test-utils/composable-mocks/setupConfirmationComposableMock.ts +++ b/tests/test-utils/composable-mocks/setupConfirmationComposableMock.ts @@ -3,14 +3,14 @@ import { useConfirmationDialog } from "@ui-confirmation-dialog"; import { ref } from "vue"; interface Props { - askConfirmationMock?: ReturnType; + askConfirmationMock?: ReturnType; } export default function setupConfirmationComposableMock(props: Props = {}) { const { askConfirmationMock } = props; const confirmationMock = jest.mocked(useConfirmationDialog); - const askConfirmation = askConfirmationMock ?? jest.fn(); + const askConfirmation = askConfirmationMock ?? vi.fn(); const isDialogOpen = ref(false); const mocks = { diff --git a/tests/test-utils/composable-mocks/setupDeleteConfirmationComposableMock.ts b/tests/test-utils/composable-mocks/setupDeleteConfirmationComposableMock.ts index 2e3a29161a..f5587e72b6 100644 --- a/tests/test-utils/composable-mocks/setupDeleteConfirmationComposableMock.ts +++ b/tests/test-utils/composable-mocks/setupDeleteConfirmationComposableMock.ts @@ -12,7 +12,7 @@ export default function setupDeleteConfirmationComposableMock( const { askDeleteConfirmationMock } = props; const deleteConfirmationMock = jest.mocked(useDeleteConfirmationDialog); - const askDeleteConfirmation = askDeleteConfirmationMock ?? jest.fn(); + const askDeleteConfirmation = askDeleteConfirmationMock ?? vi.fn(); const isDeleteDialogOpen = ref(false); const mocks = { diff --git a/tests/test-utils/pageStubs.js b/tests/test-utils/pageStubs.js index 1593427c15..e13dee92a2 100644 --- a/tests/test-utils/pageStubs.js +++ b/tests/test-utils/pageStubs.js @@ -2,13 +2,13 @@ export default function mock$objects(wrapper, options = null) { wrapper.vm.$toast = {}; wrapper.vm.$toast.success = options && options.$toast && options.$toast.success - ? jest.fn(options.$toast.success) - : jest.fn(); + ? vi.fn(options.$toast.success) + : vi.fn(); wrapper.vm.$toast.success = options && options.$toast && options.$toast.error - ? jest.fn(options.$toast.error) - : jest.fn(); - wrapper.vm.$toast.error = jest.fn(); - wrapper.vm.$toast.info = jest.fn(); - wrapper.vm.$router = { push: jest.fn() }; + ? vi.fn(options.$toast.error) + : vi.fn(); + wrapper.vm.$toast.error = vi.fn(); + wrapper.vm.$toast.info = vi.fn(); + wrapper.vm.$router = { push: vi.fn() }; } diff --git a/vitest.config.mts b/vitest.config.mts index e0be791fff..a90ecdf9ae 100644 --- a/vitest.config.mts +++ b/vitest.config.mts @@ -1,4 +1,7 @@ // .mts extension to avoid CJS deprecation warning + +// https://github.com/vuejs/core/blob/main/vitest.config.ts +// https://vitest.dev/config/ import { defineConfig } from "vitest/config"; export default defineConfig({ From a533e351809ff0caa62d680a6ffecc33ff19f0a5 Mon Sep 17 00:00:00 2001 From: Odalys Adam Date: Mon, 21 Oct 2024 23:02:44 +0200 Subject: [PATCH 05/18] replace jest.mock & jest.mocked with vi.mock(ed) --- .../ExternalToolSection.unit.ts | 4 +- .../ProvisioningOptionsPage.unit.ts | 6 +-- src/components/atoms/vRoomAvatar.unit.ts | 2 +- .../ErrorHandler.composable.unit.ts | 10 ++--- .../error-handling/errorContent.unit.ts | 2 +- .../ContextExternalToolConfigurator.unit.ts | 6 +-- .../LernstoreCollectionDetailView.unit.js | 2 +- .../lern-store/LernstoreDetailView.unit.js | 2 +- .../molecules/ApplicationErrorRouting.unit.ts | 2 +- .../organisms/DataFilter/DataFilter.unit.ts | 4 +- .../composables/filter.composable.unit.ts | 4 +- .../localStorage.composable.unit.ts | 2 +- .../administration/SchoolPolicy.unit.ts | 4 +- .../administration/SchoolTerms.unit.ts | 4 +- .../rooms/RoomExternalToolCard.unit.ts | 2 +- .../rooms/RoomVideoConferenceCard.unit.ts | 6 +-- .../templates/RoomDashboard.unit.ts | 2 +- .../application-error.composable.unit.ts | 2 +- src/composables/copy.unit.ts | 2 +- src/layouts/LoggedIn.unit.ts | 2 +- src/layouts/lernStore.layout.unit.ts | 2 +- src/layouts/loggedOut.layout.unit.ts | 2 +- src/modules/data/board/Board.store.unit.ts | 38 ++++++++--------- .../BoardPageInformation.composable.unit.ts | 10 ++--- src/modules/data/board/Card.store.unit.ts | 34 +++++++-------- .../board/CardRequestPool.composable.unit.ts | 2 +- .../data/board/ContentElementState.unit.ts | 6 +-- .../ariaLiveNotificationHandler.unit.ts | 8 ++-- .../boardRestApi.composable.unit.ts | 20 ++++----- .../boardSocketApi.composable.unit.ts | 28 ++++++------- .../board/boardInactivity.composable.unit.ts | 20 ++++----- .../cardRestApi.composable.unit.ts | 24 +++++------ .../cardSocketApi.composable.unit.ts | 22 +++++----- src/modules/data/board/socket/socket.unit.ts | 18 ++++---- ...ToolConfigurationStatus.composable.unit.ts | 2 +- ...ExternalToolLaunchState.composable.unit.ts | 4 +- ...SchoolExternalToolUsage.composable.unit.ts | 2 +- ...lToolConfigurationState.composable.unit.ts | 2 +- ...ontextExternalToolState.composable.unit.ts | 2 +- ...nalToolDisplayListState.composable.unit.ts | 2 +- ...xternalToolDisplayState.composable.unit.ts | 2 +- .../data/group/GroupState.composable.unit.ts | 4 +- .../group/groupListState.composable.unit.ts | 4 +- ...rovisioningOptionsState.composable.unit.ts | 2 +- .../data/room/courseList.composable.unit.ts | 8 ++-- .../data/system/SystemApi.composable.unit.ts | 4 +- .../CollaborativeTextEditorElement.unit.ts | 6 +-- ...CollaborativeTextEditorElementMenu.unit.ts | 4 +- ...laborativeTextEditorApi.composable.unit.ts | 8 ++-- ...TextEditorNotifications.composable.unit.ts | 4 +- .../collaborativeTextEditorApiMock.ts | 2 +- .../collaborativeTextEditorNotifier.ts | 2 +- .../DeletedElement.unit.ts | 6 +-- .../DrawingContentElement.unit.ts | 4 +- .../ExternalToolElement.unit.ts | 8 ++-- .../ExternalToolElementAlert.unit.ts | 4 +- ...rnalToolElementConfigurationDialog.unit.ts | 4 +- .../FileContentElement.unit.ts | 10 ++--- .../audio-display/AudioDisplay.unit.ts | 6 +-- .../image-display/ImageDisplay.unit.ts | 8 ++-- .../footer/attributes/FileAttributes.unit.ts | 6 +-- .../footer/download/FileDownload.unit.ts | 4 +- .../FileStorageApi.composable.unit.ts | 12 +++--- ...ileStorageNotifications.composable.unit.ts | 4 +- .../shared/test-utils/fileStorageNotifier.ts | 2 +- .../components/LinkContentElement.unit.ts | 14 +++---- .../PreviewGenerator.composable.unit.ts | 2 +- .../SubmissionContentElement.unit.ts | 18 ++++---- ...sionContentElementState.composable.unit.ts | 4 +- .../RichTextContentElement.unit.ts | 6 +-- src/modules/feature/board/board/Board.unit.ts | 42 +++++++++---------- .../feature/board/board/BoardColumn.unit.ts | 22 +++++----- .../board/board/BoardColumnHeader.unit.ts | 10 ++--- .../feature/board/board/BoardHeader.unit.ts | 10 ++--- .../feature/board/card/CardHost.unit.ts | 24 +++++------ .../AddElementDialog.composable.unit.ts | 14 +++---- .../board/shared/AddElementDialog.unit.ts | 2 +- .../board/shared/BoardAnyTitleInput.unit.ts | 2 +- .../board/test-utils/AddElementDialogMock.ts | 2 +- .../sharedElementTypeSelectionMock.ts | 2 +- .../course-sync/EndCourseSyncDialog.unit.ts | 4 +- .../course-sync/GroupSelectionDialog.unit.ts | 4 +- .../StartExsistingCourseSyncDialog.unit.ts | 4 +- .../feature/media-shelf/MediaBoard.unit.ts | 6 +-- .../MediaBoardAvailableElement.unit.ts | 4 +- .../MediaBoardAvailableLine.unit.ts | 4 +- .../MediaBoardExternalToolElement.unit.ts | 2 +- .../media-shelf/MediaBoardLine.unit.ts | 4 +- .../media-shelf/MediaBoardLineHeader.unit.ts | 4 +- .../data/mediaBoardState.composable.unit.ts | 10 ++--- .../page/board/ColumnBoard.page.unit.ts | 2 +- .../class-members/ClassMembers.page.unit.ts | 4 +- .../class-members/ClassMembersInfoBox.unit.ts | 4 +- .../page/media-shelf/MediaShelf.page.unit.ts | 4 +- .../page/room/RoomParticipants.page.unit.ts | 2 +- .../ui/board/BoardMenuActionDelete.unit.ts | 4 +- .../ConfirmationDialog.unit.ts | 4 +- .../DeleteConfirmation.composable.unit.ts | 4 +- src/modules/ui/layout/sidebar/Sidebar.unit.ts | 6 +-- .../sidebar/SidebarCategoryItem.unit.ts | 6 +-- .../ui/layout/sidebar/SidebarItem.unit.ts | 6 +-- .../SidebarSelection.composable.unit.ts | 6 +-- src/modules/ui/light-box/LightBox.unit.ts | 8 ++-- .../ui/room-details/RoomBoardCard.unit.ts | 2 +- src/modules/ui/skip-link/SkipLink.unit.ts | 2 +- .../util/board/editMode.composable.unit.ts | 4 +- .../util/input-masks/InputMask.unit.ts | 2 +- src/pages/ErrorPage.unit.ts | 4 +- .../administration/ClassOverview.page.unit.ts | 4 +- .../administration/RoomsOverview.page.unit.ts | 10 ++--- .../SchoolSettings.page.unit.ts | 4 +- src/pages/administration/migration.unit.ts | 4 +- ...choolExternalToolConfigurator.page.unit.ts | 4 +- .../administration/student-create.unit.js | 2 +- .../administration/teacher-create.unit.js | 2 +- ...ntextExternalToolConfigurator.page.unit.ts | 2 +- .../CourseRoomDetails.page.unit.ts | 2 +- .../tools/RoomExternalToolsOverview.unit.ts | 2 +- .../tools/RoomExternalToolsSection.unit.ts | 2 +- src/pages/h5p/H5PEditor.page.unit.ts | 2 +- src/pages/h5p/H5PPlayer.page.unit.ts | 2 +- src/pages/tasks/TaskOverview.unit.ts | 2 +- .../UserLoginMigrationConsent.page.unit.ts | 2 +- .../UserLoginMigrationError.page.unit.ts | 2 +- .../UserLoginMigrationSuccess.page.unit.ts | 2 +- src/router/guards/permission.guard.unit.ts | 2 +- .../validate-query-parameters.guard.unit.ts | 4 +- src/store/finished-tasks.unit.ts | 2 +- src/utils/api.unit.ts | 4 +- .../api-mocks/fileStorageApiMock.ts | 2 +- .../setupConfirmationComposableMock.ts | 2 +- .../setupDeleteConfirmationComposableMock.ts | 2 +- 132 files changed, 397 insertions(+), 411 deletions(-) diff --git a/src/components/administration/ExternalToolSection.unit.ts b/src/components/administration/ExternalToolSection.unit.ts index 780cfe8e53..8381449d4e 100644 --- a/src/components/administration/ExternalToolSection.unit.ts +++ b/src/components/administration/ExternalToolSection.unit.ts @@ -31,9 +31,9 @@ import ExternalToolSection from "./ExternalToolSection.vue"; import { SchoolExternalToolMetadata } from "@/store/external-tool"; import { ConfigResponse } from "@/serverApi/v3"; -jest.mock("@data-external-tool"); +vi.mock("@data-external-tool"); -jest.mock("vue-router"); +vi.mock("vue-router"); const useRouterMock = useRouter; describe("ExternalToolSection", () => { diff --git a/src/components/administration/ProvisioningOptionsPage.unit.ts b/src/components/administration/ProvisioningOptionsPage.unit.ts index a6c1fa9d9d..2fdcd90e73 100644 --- a/src/components/administration/ProvisioningOptionsPage.unit.ts +++ b/src/components/administration/ProvisioningOptionsPage.unit.ts @@ -23,13 +23,13 @@ import { Router, useRouter } from "vue-router"; import { VCheckboxBtn } from "vuetify/lib/components/index.mjs"; import ProvisioningOptionsPage from "./ProvisioningOptionsPage.vue"; -jest.mock("@data-provisioning-options"); +vi.mock("@data-provisioning-options"); -jest.mock("@/utils/pageTitle", () => ({ +vi.mock("@/utils/pageTitle", () => ({ buildPageTitle: (pageTitle) => pageTitle ?? "", })); -jest.mock("vue-router"); +vi.mock("vue-router"); const useRouterMock = useRouter; jest diff --git a/src/components/atoms/vRoomAvatar.unit.ts b/src/components/atoms/vRoomAvatar.unit.ts index 8b4b4ecd55..d4c9581219 100644 --- a/src/components/atoms/vRoomAvatar.unit.ts +++ b/src/components/atoms/vRoomAvatar.unit.ts @@ -22,7 +22,7 @@ const mockData = { isSynchronized: false, }; -jest.mock("vue-router"); +vi.mock("vue-router"); describe("vRoomAvatar", () => { const setup = (optionalProps: object = {}) => { diff --git a/src/components/error-handling/ErrorHandler.composable.unit.ts b/src/components/error-handling/ErrorHandler.composable.unit.ts index 898e19a9e1..e3aaa736fa 100644 --- a/src/components/error-handling/ErrorHandler.composable.unit.ts +++ b/src/components/error-handling/ErrorHandler.composable.unit.ts @@ -10,11 +10,11 @@ import { mountComposable } from "@@/tests/test-utils"; import { NOTIFIER_MODULE_KEY } from "@/utils/inject"; import { notifierModule } from "@/store"; -jest.mock("axios"); -const mockedIsAxiosError = jest.mocked(isAxiosError); +vi.mock("axios"); +const mockedIsAxiosError = vi.mocked(isAxiosError); -jest.mock("@util-board"); -const mockedUseBoardNotifier = jest.mocked(useBoardNotifier); +vi.mock("@util-board"); +const mockedUseBoardNotifier = vi.mocked(useBoardNotifier); const keys = [ "components.board.notifications.errors.notCreated", "components.board.notifications.errors.notLoaded", @@ -25,7 +25,7 @@ const translationMap: Record = {}; keys.forEach((key) => (translationMap[key] = key)); -jest.mock("vue-i18n", () => { +vi.mock("vue-i18n", () => { return { ...jest.requireActual("vue-i18n"), useI18n: vi.fn().mockReturnValue({ diff --git a/src/components/error-handling/errorContent.unit.ts b/src/components/error-handling/errorContent.unit.ts index fb615d4f2d..3a8e8437e5 100644 --- a/src/components/error-handling/errorContent.unit.ts +++ b/src/components/error-handling/errorContent.unit.ts @@ -7,7 +7,7 @@ import { createTestingI18n, } from "@@/tests/test-utils/setup"; -jest.mock("@/utils/pageTitle", () => ({ +vi.mock("@/utils/pageTitle", () => ({ buildPageTitle: (pageTitle) => pageTitle ?? "", })); diff --git a/src/components/external-tools/configuration/ContextExternalToolConfigurator.unit.ts b/src/components/external-tools/configuration/ContextExternalToolConfigurator.unit.ts index adeec29014..573167b3f2 100644 --- a/src/components/external-tools/configuration/ContextExternalToolConfigurator.unit.ts +++ b/src/components/external-tools/configuration/ContextExternalToolConfigurator.unit.ts @@ -26,10 +26,8 @@ import { nextTick, ref } from "vue"; import { ComponentProps } from "vue-component-type-helpers"; import ContextExternalToolConfigurator from "./ContextExternalToolConfigurator.vue"; -jest.mock( - "@data-external-tool/contextExternalToolConfigurationState.composable" -); -jest.mock("@data-external-tool/contextExternalToolState.composable"); +vi.mock("@data-external-tool/contextExternalToolConfigurationState.composable"); +vi.mock("@data-external-tool/contextExternalToolState.composable"); describe("CourseContextExternalToolConfigurator", () => { let useContextExternalToolConfigurationStateMock: DeepMocked< diff --git a/src/components/lern-store/LernstoreCollectionDetailView.unit.js b/src/components/lern-store/LernstoreCollectionDetailView.unit.js index e728ffe302..da5c60c928 100644 --- a/src/components/lern-store/LernstoreCollectionDetailView.unit.js +++ b/src/components/lern-store/LernstoreCollectionDetailView.unit.js @@ -10,7 +10,7 @@ import { } from "@@/tests/test-utils/setup"; import { RouterLinkStub } from "@vue/test-utils"; -jest.mock("@/utils/pageTitle", () => ({ +vi.mock("@/utils/pageTitle", () => ({ buildPageTitle: (pageTitle) => pageTitle ?? "", })); diff --git a/src/components/lern-store/LernstoreDetailView.unit.js b/src/components/lern-store/LernstoreDetailView.unit.js index 85cde64adb..864228b364 100644 --- a/src/components/lern-store/LernstoreDetailView.unit.js +++ b/src/components/lern-store/LernstoreDetailView.unit.js @@ -5,7 +5,7 @@ import { createTestingI18n, } from "@@/tests/test-utils/setup"; -jest.mock("@/utils/pageTitle", () => ({ +vi.mock("@/utils/pageTitle", () => ({ buildPageTitle: (pageTitle) => pageTitle ?? "", })); diff --git a/src/components/molecules/ApplicationErrorRouting.unit.ts b/src/components/molecules/ApplicationErrorRouting.unit.ts index 7de686075f..b345c12967 100644 --- a/src/components/molecules/ApplicationErrorRouting.unit.ts +++ b/src/components/molecules/ApplicationErrorRouting.unit.ts @@ -11,7 +11,7 @@ import { ref } from "vue"; import { Router, useRouter } from "vue-router"; import ApplicationErrorRouting from "./ApplicationErrorRouting.vue"; -jest.mock("vue-router", () => ({ +vi.mock("vue-router", () => ({ useRoute: vi.fn(), useRouter: vi.fn(), })); diff --git a/src/components/organisms/DataFilter/DataFilter.unit.ts b/src/components/organisms/DataFilter/DataFilter.unit.ts index c7cb72f869..afb489478f 100644 --- a/src/components/organisms/DataFilter/DataFilter.unit.ts +++ b/src/components/organisms/DataFilter/DataFilter.unit.ts @@ -7,9 +7,9 @@ import DataFilter from "./DataFilter.vue"; import { useDataTableFilter } from "./composables/filter.composable"; import { computed, ref } from "vue"; -jest.mock("./composables/filter.composable"); +vi.mock("./composables/filter.composable"); -const mockedUseBoardApi = jest.mocked(useDataTableFilter); +const mockedUseBoardApi = vi.mocked(useDataTableFilter); describe("@components/DataFilter/DataFilter.vue", () => { const updateFilterMock = vi.fn(); const removeFilterMock = vi.fn(); diff --git a/src/components/organisms/DataFilter/composables/filter.composable.unit.ts b/src/components/organisms/DataFilter/composables/filter.composable.unit.ts index dfdae23ae4..428f27e826 100644 --- a/src/components/organisms/DataFilter/composables/filter.composable.unit.ts +++ b/src/components/organisms/DataFilter/composables/filter.composable.unit.ts @@ -16,14 +16,14 @@ const defaultState = { version: 1, }; -jest.mock("@vueuse/core", () => { +vi.mock("@vueuse/core", () => { return { ...jest.requireActual("@vueuse/core"), useStorage: vi.fn().mockReturnValue({ value: defaultState }), }; }); -jest.mock("vue-i18n", () => { +vi.mock("vue-i18n", () => { return { ...jest.requireActual("vue-i18n"), useI18n: vi.fn().mockReturnValue({ t: (key: string) => key }), diff --git a/src/components/organisms/DataFilter/composables/localStorage.composable.unit.ts b/src/components/organisms/DataFilter/composables/localStorage.composable.unit.ts index eaed8f1bde..614a716758 100644 --- a/src/components/organisms/DataFilter/composables/localStorage.composable.unit.ts +++ b/src/components/organisms/DataFilter/composables/localStorage.composable.unit.ts @@ -15,7 +15,7 @@ const defaultState = { version: 1, }; -jest.mock("@vueuse/core", () => { +vi.mock("@vueuse/core", () => { return { ...jest.requireActual("@vueuse/core"), useStorage: vi.fn().mockReturnValue({ value: defaultState }), diff --git a/src/components/organisms/administration/SchoolPolicy.unit.ts b/src/components/organisms/administration/SchoolPolicy.unit.ts index 2c44b958c1..9b07bc51ce 100644 --- a/src/components/organisms/administration/SchoolPolicy.unit.ts +++ b/src/components/organisms/administration/SchoolPolicy.unit.ts @@ -19,7 +19,7 @@ import { } from "@@/tests/test-utils/setup"; import { downloadFile } from "@/utils/fileHelper"; -jest.mock("@/utils/fileHelper"); +vi.mock("@/utils/fileHelper"); describe("SchoolPolicy", () => { let authModule: jest.Mocked; @@ -187,7 +187,7 @@ describe("SchoolPolicy", () => { it("should call downloadFile method", async () => { const wrapper = setup(); - const downloadFileMock = jest.mocked(downloadFile).mockReturnValueOnce(); + const downloadFileMock = vi.mocked(downloadFile).mockReturnValueOnce(); const policyItem = wrapper.find('[data-testid="policy-item"]'); await policyItem.trigger("click"); diff --git a/src/components/organisms/administration/SchoolTerms.unit.ts b/src/components/organisms/administration/SchoolTerms.unit.ts index 9ec9f3594b..ad25a99f83 100644 --- a/src/components/organisms/administration/SchoolTerms.unit.ts +++ b/src/components/organisms/administration/SchoolTerms.unit.ts @@ -19,7 +19,7 @@ import { createTestingVuetify, } from "@@/tests/test-utils/setup"; -jest.mock("@/utils/fileHelper"); +vi.mock("@/utils/fileHelper"); describe("SchoolTerms", () => { let authModule: jest.Mocked; @@ -187,7 +187,7 @@ describe("SchoolTerms", () => { it("should call downloadFile method", () => { const wrapper = setup(); - const downloadFileMock = jest.mocked(downloadFile).mockReturnValueOnce(); + const downloadFileMock = vi.mocked(downloadFile).mockReturnValueOnce(); const termsItem = wrapper.findComponent( '[data-testid="terms-item"]' ) as VueWrapper; diff --git a/src/components/rooms/RoomExternalToolCard.unit.ts b/src/components/rooms/RoomExternalToolCard.unit.ts index 0c716e0dd0..bcf00b72b3 100644 --- a/src/components/rooms/RoomExternalToolCard.unit.ts +++ b/src/components/rooms/RoomExternalToolCard.unit.ts @@ -16,7 +16,7 @@ import { flushPromises, mount } from "@vue/test-utils"; import { nextTick } from "vue"; import RoomExternalToolCard from "./RoomExternalToolCard.vue"; -jest.mock("@data-external-tool"); +vi.mock("@data-external-tool"); describe("RoomExternalToolCard", () => { let useExternalToolLaunchStateMock: DeepMocked< diff --git a/src/components/rooms/RoomVideoConferenceCard.unit.ts b/src/components/rooms/RoomVideoConferenceCard.unit.ts index 3530fd7481..70543ee644 100644 --- a/src/components/rooms/RoomVideoConferenceCard.unit.ts +++ b/src/components/rooms/RoomVideoConferenceCard.unit.ts @@ -5,9 +5,9 @@ import { } from "@@/tests/test-utils/setup"; import RoomVideoConferenceCard from "./RoomVideoConferenceCard.vue"; -jest.mock("@/assets/img/bbb/no_permission.png", () => "noPermissionImagePath"); -jest.mock("@/assets/img/bbb/not_started.png", () => "notStartetImagePath"); -jest.mock("@/assets/img/bbb/available.png", () => "availableImagePath"); +vi.mock("@/assets/img/bbb/no_permission.png", () => "noPermissionImagePath"); +vi.mock("@/assets/img/bbb/not_started.png", () => "notStartetImagePath"); +vi.mock("@/assets/img/bbb/available.png", () => "availableImagePath"); describe("RoomVideoConferenceCard", () => { const getWrapper = (propsData: { diff --git a/src/components/templates/RoomDashboard.unit.ts b/src/components/templates/RoomDashboard.unit.ts index b62184f289..4aeeac1c89 100644 --- a/src/components/templates/RoomDashboard.unit.ts +++ b/src/components/templates/RoomDashboard.unit.ts @@ -28,7 +28,7 @@ import { nextTick } from "vue"; import { Router, useRouter } from "vue-router"; import { VCard } from "vuetify/lib/components/index.mjs"; -jest.mock("vue-router"); +vi.mock("vue-router"); const useRouterMock = useRouter; const mockData = { diff --git a/src/composables/application-error.composable.unit.ts b/src/composables/application-error.composable.unit.ts index 3bea4c40ec..010b37b491 100644 --- a/src/composables/application-error.composable.unit.ts +++ b/src/composables/application-error.composable.unit.ts @@ -2,7 +2,7 @@ import { useApplicationError } from "@/composables/application-error.composable" import { mountComposable } from "@@/tests/test-utils/mountComposable"; import { HttpStatusCode } from "../store/types/http-status-code.enum"; -jest.mock("./loadingState"); +vi.mock("./loadingState"); describe("application-error composable", () => { const setup = () => { diff --git a/src/composables/copy.unit.ts b/src/composables/copy.unit.ts index 3e62199f67..b0ba206f18 100644 --- a/src/composables/copy.unit.ts +++ b/src/composables/copy.unit.ts @@ -9,7 +9,7 @@ import { ref, watch } from "vue"; import { useCopy } from "./copy"; import { createTestingI18n } from "@@/tests/test-utils/setup"; -jest.mock("./loadingState"); +vi.mock("./loadingState"); describe("copy composable", () => { const setup = () => { diff --git a/src/layouts/LoggedIn.unit.ts b/src/layouts/LoggedIn.unit.ts index 30327061cb..1ace833ae3 100644 --- a/src/layouts/LoggedIn.unit.ts +++ b/src/layouts/LoggedIn.unit.ts @@ -22,7 +22,7 @@ import { Topbar } from "@ui-layout"; import { createTestingPinia } from "@pinia/testing"; import setupStores from "@@/tests/test-utils/setupStores"; -jest.mock("vue-router", () => ({ +vi.mock("vue-router", () => ({ useRoute: () => ({ path: "rooms/courses-list" }), })); diff --git a/src/layouts/lernStore.layout.unit.ts b/src/layouts/lernStore.layout.unit.ts index d2b347f097..5fbbb2f73d 100644 --- a/src/layouts/lernStore.layout.unit.ts +++ b/src/layouts/lernStore.layout.unit.ts @@ -18,7 +18,7 @@ const query = { isCollection: "true", }; -jest.mock("vue-router", () => ({ +vi.mock("vue-router", () => ({ useRoute: vi.fn(), })); diff --git a/src/layouts/loggedOut.layout.unit.ts b/src/layouts/loggedOut.layout.unit.ts index 16d3e1d9fd..cb7ec9d2d5 100644 --- a/src/layouts/loggedOut.layout.unit.ts +++ b/src/layouts/loggedOut.layout.unit.ts @@ -15,7 +15,7 @@ import { mount } from "@vue/test-utils"; import { useRouter } from "vue-router"; import loggedOut from "./loggedOut.layout.vue"; -jest.mock("vue-router"); +vi.mock("vue-router"); const useRouterMock = useRouter; describe("loggedOutLayout", () => { diff --git a/src/modules/data/board/Board.store.unit.ts b/src/modules/data/board/Board.store.unit.ts index 8e531e359a..a311cc3ad9 100644 --- a/src/modules/data/board/Board.store.unit.ts +++ b/src/modules/data/board/Board.store.unit.ts @@ -30,36 +30,34 @@ import { Router, useRoute, useRouter } from "vue-router"; import { createApplicationError } from "@/utils/create-application-error.factory"; import { HttpStatusCode } from "@/store/types/http-status-code.enum"; -jest.mock("./boardActions/boardSocketApi.composable"); -const mockedUseBoardSocketApi = jest.mocked(useBoardSocketApi); +vi.mock("./boardActions/boardSocketApi.composable"); +const mockedUseBoardSocketApi = vi.mocked(useBoardSocketApi); -jest.mock("./boardActions/boardRestApi.composable"); -const mockedUseBoardRestApi = jest.mocked(useBoardRestApi); +vi.mock("./boardActions/boardRestApi.composable"); +const mockedUseBoardRestApi = vi.mocked(useBoardRestApi); -jest.mock("@util-board"); -const mockedSharedEditMode = jest.mocked(useSharedEditMode); -const mockedUseBoardNotifier = jest.mocked(useBoardNotifier); -const mockUseSharedLastCreatedElement = jest.mocked( - useSharedLastCreatedElement -); +vi.mock("@util-board"); +const mockedSharedEditMode = vi.mocked(useSharedEditMode); +const mockedUseBoardNotifier = vi.mocked(useBoardNotifier); +const mockUseSharedLastCreatedElement = vi.mocked(useSharedLastCreatedElement); -jest.mock("@/components/error-handling/ErrorHandler.composable"); -const mockedUseErrorHandler = jest.mocked(useErrorHandler); +vi.mock("@/components/error-handling/ErrorHandler.composable"); +const mockedUseErrorHandler = vi.mocked(useErrorHandler); -jest.mock("@data-board/socket/socket"); -const mockedUseSocketConnection = jest.mocked(useSocketConnection); +vi.mock("@data-board/socket/socket"); +const mockedUseSocketConnection = vi.mocked(useSocketConnection); -jest.mock("./cardActions/cardSocketApi.composable"); -const mockedUseCardSocketApi = jest.mocked(useCardSocketApi); +vi.mock("./cardActions/cardSocketApi.composable"); +const mockedUseCardSocketApi = vi.mocked(useCardSocketApi); -jest.mock("./BoardFocusHandler.composable"); -const mockedBoardFocusHandler = jest.mocked(useBoardFocusHandler); +vi.mock("./BoardFocusHandler.composable"); +const mockedBoardFocusHandler = vi.mocked(useBoardFocusHandler); -jest.mock("vue-router"); +vi.mock("vue-router"); const useRouterMock = useRouter; const useRouteMock = useRoute; -jest.mock("vue-i18n", () => { +vi.mock("vue-i18n", () => { return { ...jest.requireActual("vue-i18n"), useI18n: () => ({ t: vi.fn().mockImplementation((key) => key) }), diff --git a/src/modules/data/board/BoardPageInformation.composable.unit.ts b/src/modules/data/board/BoardPageInformation.composable.unit.ts index 90f888408e..c2714be8e0 100644 --- a/src/modules/data/board/BoardPageInformation.composable.unit.ts +++ b/src/modules/data/board/BoardPageInformation.composable.unit.ts @@ -4,24 +4,24 @@ import { useBoardApi } from "./BoardApi.composable"; import { useSharedBoardPageInformation } from "./BoardPageInformation.composable"; import { BoardContextType } from "@/types/board/BoardContext"; -jest.mock("./BoardApi.composable"); -const mockedUseBoardApi = jest.mocked(useBoardApi); +vi.mock("./BoardApi.composable"); +const mockedUseBoardApi = vi.mocked(useBoardApi); -jest.mock( +vi.mock( "@/utils/create-shared-composable", () => ({ createTestableSharedComposable: (composable) => composable, }) ); -jest.mock("vue-i18n", () => { +vi.mock("vue-i18n", () => { return { ...jest.requireActual("vue-i18n"), useI18n: vi.fn().mockReturnValue({ t: (key: string) => key }), }; }); -jest.mock("@/utils/pageTitle", () => ({ +vi.mock("@/utils/pageTitle", () => ({ buildPageTitle: (pageTitle) => pageTitle ?? "", })); diff --git a/src/modules/data/board/Card.store.unit.ts b/src/modules/data/board/Card.store.unit.ts index 3530aef194..66ad9f8c96 100644 --- a/src/modules/data/board/Card.store.unit.ts +++ b/src/modules/data/board/Card.store.unit.ts @@ -28,31 +28,31 @@ import { useCardRestApi } from "./cardActions/cardRestApi.composable"; import { useCardSocketApi } from "./cardActions/cardSocketApi.composable"; import { useBoardFocusHandler } from "./BoardFocusHandler.composable"; -jest.mock("vue-i18n"); +vi.mock("vue-i18n"); (useI18n as jest.Mock).mockReturnValue({ t: (key: string) => key }); -jest.mock("@data-board/BoardApi.composable"); -const mockedUseBoardApi = jest.mocked(useBoardApi); +vi.mock("@data-board/BoardApi.composable"); +const mockedUseBoardApi = vi.mocked(useBoardApi); -jest.mock("./cardActions/cardSocketApi.composable"); -const mockedUseCardSocketApi = jest.mocked(useCardSocketApi); +vi.mock("./cardActions/cardSocketApi.composable"); +const mockedUseCardSocketApi = vi.mocked(useCardSocketApi); -jest.mock("./cardActions/cardRestApi.composable"); -const mockedUseCardRestApi = jest.mocked(useCardRestApi); +vi.mock("./cardActions/cardRestApi.composable"); +const mockedUseCardRestApi = vi.mocked(useCardRestApi); -jest.mock("@util-board"); -const mockedSharedEditMode = jest.mocked(useSharedEditMode); -const mockedUseBoardNotifier = jest.mocked(useBoardNotifier); -const mockedSharedLastCreatedElement = jest.mocked(useSharedLastCreatedElement); +vi.mock("@util-board"); +const mockedSharedEditMode = vi.mocked(useSharedEditMode); +const mockedUseBoardNotifier = vi.mocked(useBoardNotifier); +const mockedSharedLastCreatedElement = vi.mocked(useSharedLastCreatedElement); -jest.mock("@/components/error-handling/ErrorHandler.composable"); -const mockedUseErrorHandler = jest.mocked(useErrorHandler); +vi.mock("@/components/error-handling/ErrorHandler.composable"); +const mockedUseErrorHandler = vi.mocked(useErrorHandler); -jest.mock("@data-board/socket/socket"); -const mockedUseSocketConnection = jest.mocked(useSocketConnection); +vi.mock("@data-board/socket/socket"); +const mockedUseSocketConnection = vi.mocked(useSocketConnection); -jest.mock("./BoardFocusHandler.composable"); -const mockedBoardFocusHandler = jest.mocked(useBoardFocusHandler); +vi.mock("./BoardFocusHandler.composable"); +const mockedBoardFocusHandler = vi.mocked(useBoardFocusHandler); describe("CardStore", () => { let mockedBoardNotifierCalls: DeepMocked>; diff --git a/src/modules/data/board/CardRequestPool.composable.unit.ts b/src/modules/data/board/CardRequestPool.composable.unit.ts index 5381df045e..6f039d0bad 100644 --- a/src/modules/data/board/CardRequestPool.composable.unit.ts +++ b/src/modules/data/board/CardRequestPool.composable.unit.ts @@ -4,7 +4,7 @@ import * as serverApi from "@/serverApi/v3/api"; import * as axios from "axios"; import { initializeAxios } from "@/utils/api"; -jest.mock("axios"); +vi.mock("axios"); let mockReturnData: { data: { data: { id: string }[] } }; const cardsApiFactoryMock = { diff --git a/src/modules/data/board/ContentElementState.unit.ts b/src/modules/data/board/ContentElementState.unit.ts index a1ee385457..78b5d4fb2f 100644 --- a/src/modules/data/board/ContentElementState.unit.ts +++ b/src/modules/data/board/ContentElementState.unit.ts @@ -13,7 +13,7 @@ import { useContentElementState } from "./ContentElementState.composable"; import { Router, useRouter } from "vue-router"; import { createMock } from "@golevelup/ts-jest"; -jest.mock("@util-board/InlineEditInteractionHandler.composable"); +vi.mock("@util-board/InlineEditInteractionHandler.composable"); const notifierModule = createModuleMocks(NotifierModule); const TEST_ELEMENT: RichTextElementResponse = { @@ -29,14 +29,14 @@ const TEST_ELEMENT: RichTextElementResponse = { }, }; -jest.mock("vue-i18n", () => { +vi.mock("vue-i18n", () => { return { ...jest.requireActual("@vueuse/core"), useI18n: vi.fn().mockReturnValue({ t: (key: string) => key }), }; }); -jest.mock("vue-router"); +vi.mock("vue-router"); const useRouterMock = useRouter; describe("useContentElementState composable", () => { diff --git a/src/modules/data/board/ariaNotification/ariaLiveNotificationHandler.unit.ts b/src/modules/data/board/ariaNotification/ariaLiveNotificationHandler.unit.ts index 57b4f2b3b9..bab243caa4 100644 --- a/src/modules/data/board/ariaNotification/ariaLiveNotificationHandler.unit.ts +++ b/src/modules/data/board/ariaNotification/ariaLiveNotificationHandler.unit.ts @@ -25,21 +25,21 @@ const card = { visibilitySettings: {}, }; -jest.mock("vue-i18n", () => { +vi.mock("vue-i18n", () => { return { ...jest.requireActual("vue-i18n"), useI18n: vi.fn().mockReturnValue({ t: (key: string) => key }), }; }); -jest.mock("../Board.store", () => ({ +vi.mock("../Board.store", () => ({ useBoardStore: vi.fn().mockReturnValue({ getColumnIndex: vi.fn().mockReturnValue(10), getCardLocation: vi.fn().mockReturnValue(1), }), })); -jest.mock("../Card.store", () => ({ +vi.mock("../Card.store", () => ({ useCardStore: vi.fn().mockReturnValue({ cards: [card], }), @@ -49,7 +49,7 @@ describe("useBoardAriaNotification", () => { jest.useFakeTimers(); const mockNotifyOnScreenReader = vi.fn(); - jest.mock("@/composables/ariaLiveNotifier", () => ({ + vi.mock("@/composables/ariaLiveNotifier", () => ({ notifyOnScreenReader: () => mockNotifyOnScreenReader, })); diff --git a/src/modules/data/board/boardActions/boardRestApi.composable.unit.ts b/src/modules/data/board/boardActions/boardRestApi.composable.unit.ts index 56b53b2b90..63f63efea8 100644 --- a/src/modules/data/board/boardActions/boardRestApi.composable.unit.ts +++ b/src/modules/data/board/boardActions/boardRestApi.composable.unit.ts @@ -29,22 +29,22 @@ import { createApplicationError } from "@/utils/create-application-error.factory import { HttpStatusCode } from "@/store/types/http-status-code.enum"; import { Router, useRouter } from "vue-router"; -jest.mock("@/components/error-handling/ErrorHandler.composable"); -const mockedUseErrorHandler = jest.mocked(useErrorHandler); +vi.mock("@/components/error-handling/ErrorHandler.composable"); +const mockedUseErrorHandler = vi.mocked(useErrorHandler); -jest.mock("../BoardApi.composable"); -const mockedUseBoardApi = jest.mocked(useBoardApi); +vi.mock("../BoardApi.composable"); +const mockedUseBoardApi = vi.mocked(useBoardApi); -jest.mock("@util-board/editMode.composable"); -const mockedSharedEditMode = jest.mocked(useSharedEditMode); +vi.mock("@util-board/editMode.composable"); +const mockedSharedEditMode = vi.mocked(useSharedEditMode); -jest.mock("../socket/socket"); -const mockedUseSocketConnection = jest.mocked(useSocketConnection); +vi.mock("../socket/socket"); +const mockedUseSocketConnection = vi.mocked(useSocketConnection); -jest.mock("vue-router"); +vi.mock("vue-router"); const useRouterMock = useRouter; -jest.mock("vue-i18n", () => { +vi.mock("vue-i18n", () => { return { ...jest.requireActual("vue-i18n"), useI18n: () => { diff --git a/src/modules/data/board/boardActions/boardSocketApi.composable.unit.ts b/src/modules/data/board/boardActions/boardSocketApi.composable.unit.ts index fa728bd4f1..85bce8b08d 100644 --- a/src/modules/data/board/boardActions/boardSocketApi.composable.unit.ts +++ b/src/modules/data/board/boardActions/boardSocketApi.composable.unit.ts @@ -41,27 +41,27 @@ import { HttpStatusCode } from "@/store/types/http-status-code.enum"; import { createApplicationError } from "@/utils/create-application-error.factory"; import { Router, useRouter } from "vue-router"; -jest.mock("../socket/socket"); -const mockedUseSocketConnection = jest.mocked(useSocketConnection); +vi.mock("../socket/socket"); +const mockedUseSocketConnection = vi.mocked(useSocketConnection); -jest.mock("../fixSamePositionDnD.composable"); -const mockedUseForceRender = jest.mocked(useForceRender); +vi.mock("../fixSamePositionDnD.composable"); +const mockedUseForceRender = vi.mocked(useForceRender); -jest.mock("./boardRestApi.composable"); -const mockedUseBoardRestApi = jest.mocked(useBoardRestApi); +vi.mock("./boardRestApi.composable"); +const mockedUseBoardRestApi = vi.mocked(useBoardRestApi); -jest.mock("vue-i18n"); +vi.mock("vue-i18n"); (useI18n as jest.Mock).mockReturnValue({ t: (key: string) => key }); -jest.mock("@util-board/BoardNotifier.composable"); -jest.mock("@util-board/LastCreatedElement.composable"); -const mockedUseBoardNotifier = jest.mocked(useBoardNotifier); -const mockedSharedLastCreatedElement = jest.mocked(useSharedLastCreatedElement); +vi.mock("@util-board/BoardNotifier.composable"); +vi.mock("@util-board/LastCreatedElement.composable"); +const mockedUseBoardNotifier = vi.mocked(useBoardNotifier); +const mockedSharedLastCreatedElement = vi.mocked(useSharedLastCreatedElement); -jest.mock("@/components/error-handling/ErrorHandler.composable"); -const mockedUseErrorHandler = jest.mocked(useErrorHandler); +vi.mock("@/components/error-handling/ErrorHandler.composable"); +const mockedUseErrorHandler = vi.mocked(useErrorHandler); -jest.mock("vue-router"); +vi.mock("vue-router"); const useRouterMock = useRouter; describe("useBoardSocketApi", () => { diff --git a/src/modules/data/board/boardInactivity.composable.unit.ts b/src/modules/data/board/boardInactivity.composable.unit.ts index b804d2624e..2e262f24e9 100644 --- a/src/modules/data/board/boardInactivity.composable.unit.ts +++ b/src/modules/data/board/boardInactivity.composable.unit.ts @@ -24,26 +24,24 @@ import { useCardStore } from "./Card.store"; import { useSocketConnection } from "./socket/socket"; import { Router, useRouter } from "vue-router"; -jest.mock("vue-i18n", () => ({ +vi.mock("vue-i18n", () => ({ useI18n: () => ({ t: vi.fn().mockImplementation((key) => key), }), })); -const mockedUseBoardNotifier = jest.mocked(useBoardNotifier); +const mockedUseBoardNotifier = vi.mocked(useBoardNotifier); -jest.mock("./socket/socket"); -const mockedUseSocketConnection = jest.mocked(useSocketConnection); +vi.mock("./socket/socket"); +const mockedUseSocketConnection = vi.mocked(useSocketConnection); -jest.mock("vue-router"); +vi.mock("vue-router"); const useRouterMock = useRouter; -jest.mock("@util-board/BoardNotifier.composable"); -jest.mock("@util-board/LastCreatedElement.composable"); -const mockUseBoardNotifier = jest.mocked(useBoardNotifier); -const mockUseSharedLastCreatedElement = jest.mocked( - useSharedLastCreatedElement -); +vi.mock("@util-board/BoardNotifier.composable"); +vi.mock("@util-board/LastCreatedElement.composable"); +const mockUseBoardNotifier = vi.mocked(useBoardNotifier); +const mockUseSharedLastCreatedElement = vi.mocked(useSharedLastCreatedElement); let mockBoardNotifierCalls: DeepMocked>; let boardStore: ReturnType; diff --git a/src/modules/data/board/cardActions/cardRestApi.composable.unit.ts b/src/modules/data/board/cardActions/cardRestApi.composable.unit.ts index d00b18ffe1..d606c24b8c 100644 --- a/src/modules/data/board/cardActions/cardRestApi.composable.unit.ts +++ b/src/modules/data/board/cardActions/cardRestApi.composable.unit.ts @@ -25,25 +25,25 @@ import { import { useCardRestApi } from "./cardRestApi.composable"; import { Router, useRouter } from "vue-router"; -jest.mock("@/components/error-handling/ErrorHandler.composable"); -const mockedUseErrorHandler = jest.mocked(useErrorHandler); +vi.mock("@/components/error-handling/ErrorHandler.composable"); +const mockedUseErrorHandler = vi.mocked(useErrorHandler); -jest.mock("../BoardApi.composable"); -const mockedUseBoardApi = jest.mocked(useBoardApi); +vi.mock("../BoardApi.composable"); +const mockedUseBoardApi = vi.mocked(useBoardApi); -jest.mock("../CardRequestPool.composable"); -const mockedSharedCardRequestPool = jest.mocked(useSharedCardRequestPool); +vi.mock("../CardRequestPool.composable"); +const mockedSharedCardRequestPool = vi.mocked(useSharedCardRequestPool); -jest.mock("@util-board/editMode.composable"); -const mockedSharedEditMode = jest.mocked(useSharedEditMode); +vi.mock("@util-board/editMode.composable"); +const mockedSharedEditMode = vi.mocked(useSharedEditMode); -jest.mock("../socket/socket"); -const mockedUseSocketConnection = jest.mocked(useSocketConnection); +vi.mock("../socket/socket"); +const mockedUseSocketConnection = vi.mocked(useSocketConnection); -jest.mock("vue-router"); +vi.mock("vue-router"); const useRouterMock = useRouter; -jest.mock("vue-i18n", () => { +vi.mock("vue-i18n", () => { return { ...jest.requireActual("vue-i18n"), useI18n: () => ({ t: vi.fn().mockImplementation((key) => key) }), diff --git a/src/modules/data/board/cardActions/cardSocketApi.composable.unit.ts b/src/modules/data/board/cardActions/cardSocketApi.composable.unit.ts index 3aa20334e1..d3c039b46f 100644 --- a/src/modules/data/board/cardActions/cardSocketApi.composable.unit.ts +++ b/src/modules/data/board/cardActions/cardSocketApi.composable.unit.ts @@ -34,24 +34,22 @@ import * as CardActions from "./cardActions"; import { useCardSocketApi } from "./cardSocketApi.composable"; import { Router, useRouter } from "vue-router"; -jest.mock("vue-i18n"); +vi.mock("vue-i18n"); (useI18n as jest.Mock).mockReturnValue({ t: (key: string) => key }); -jest.mock("@data-board/socket/socket"); -const mockedUseSocketConnection = jest.mocked(useSocketConnection); +vi.mock("@data-board/socket/socket"); +const mockedUseSocketConnection = vi.mocked(useSocketConnection); -jest.mock("@/components/error-handling/ErrorHandler.composable"); -const mockedUseErrorHandler = jest.mocked(useErrorHandler); +vi.mock("@/components/error-handling/ErrorHandler.composable"); +const mockedUseErrorHandler = vi.mocked(useErrorHandler); -jest.mock("@util-board/BoardNotifier.composable"); -jest.mock("@util-board/LastCreatedElement.composable"); -jest.mock("vue-router"); +vi.mock("@util-board/BoardNotifier.composable"); +vi.mock("@util-board/LastCreatedElement.composable"); +vi.mock("vue-router"); const useRouterMock = useRouter; -const mockedUseBoardNotifier = jest.mocked(useBoardNotifier); -const mockUseSharedLastCreatedElement = jest.mocked( - useSharedLastCreatedElement -); +const mockedUseBoardNotifier = vi.mocked(useBoardNotifier); +const mockUseSharedLastCreatedElement = vi.mocked(useSharedLastCreatedElement); describe("useCardSocketApi", () => { let mockedSocketConnectionHandler: DeepMocked< diff --git a/src/modules/data/board/socket/socket.unit.ts b/src/modules/data/board/socket/socket.unit.ts index 5704b0b308..4ed999568c 100644 --- a/src/modules/data/board/socket/socket.unit.ts +++ b/src/modules/data/board/socket/socket.unit.ts @@ -15,19 +15,19 @@ import * as socketModule from "socket.io-client"; import { useI18n } from "vue-i18n"; import { Router, useRouter } from "vue-router"; -jest.mock("vue-i18n"); +vi.mock("vue-i18n"); (useI18n as jest.Mock).mockReturnValue({ t: (key: string) => key }); -jest.mock("socket.io-client"); -const mockSocketIOClient = jest.mocked(socketModule); +vi.mock("socket.io-client"); +const mockSocketIOClient = vi.mocked(socketModule); -jest.mock("@util-board/BoardNotifier.composable"); -const mockUseBoardNotifier = jest.mocked(useBoardNotifier); +vi.mock("@util-board/BoardNotifier.composable"); +const mockUseBoardNotifier = vi.mocked(useBoardNotifier); -jest.mock("../boardActions/boardSocketApi.composable"); -jest.mock("../boardActions/boardRestApi.composable"); +vi.mock("../boardActions/boardSocketApi.composable"); +vi.mock("../boardActions/boardRestApi.composable"); -jest.mock("@vueuse/shared", () => { +vi.mock("@vueuse/shared", () => { return { ...jest.requireActual("@vueuse/shared"), useTimeoutFn: vi.fn().mockImplementation((cb: () => void) => { @@ -39,7 +39,7 @@ jest.mock("@vueuse/shared", () => { }; }); -jest.mock("vue-router"); +vi.mock("vue-router"); const useRouterMock = useRouter; const startMock = vi.fn(); diff --git a/src/modules/data/external-tool/ContextExternalToolConfigurationStatus.composable.unit.ts b/src/modules/data/external-tool/ContextExternalToolConfigurationStatus.composable.unit.ts index c63754ee1a..7834b411d1 100644 --- a/src/modules/data/external-tool/ContextExternalToolConfigurationStatus.composable.unit.ts +++ b/src/modules/data/external-tool/ContextExternalToolConfigurationStatus.composable.unit.ts @@ -8,7 +8,7 @@ import { } from "@@/tests/test-utils"; import { useContextExternalToolConfigurationStatus } from "./ContextExternalToolConfigurationStatus.composable"; -jest.mock("vue-i18n", () => { +vi.mock("vue-i18n", () => { return { ...jest.requireActual("vue-i18n"), useI18n: vi.fn().mockReturnValue({ t: (key: string) => key }), diff --git a/src/modules/data/external-tool/ExternalToolLaunchState.composable.unit.ts b/src/modules/data/external-tool/ExternalToolLaunchState.composable.unit.ts index 4140eb43b2..c7eba67467 100644 --- a/src/modules/data/external-tool/ExternalToolLaunchState.composable.unit.ts +++ b/src/modules/data/external-tool/ExternalToolLaunchState.composable.unit.ts @@ -12,7 +12,7 @@ import { createMock, DeepMocked } from "@golevelup/ts-jest"; import { useExternalToolApi } from "./ExternalToolApi.composable"; import { useExternalToolLaunchState } from "./ExternalToolLaunchState.composable"; -jest.mock("@data-external-tool/ExternalToolApi.composable"); +vi.mock("@data-external-tool/ExternalToolApi.composable"); describe("ExternalToolLaunchState.composable", () => { let useExternalToolApiMock: DeepMocked>; @@ -21,7 +21,7 @@ describe("ExternalToolLaunchState.composable", () => { useExternalToolApiMock = createMock>(); - jest.mocked(useExternalToolApi).mockReturnValue(useExternalToolApiMock); + vi.mocked(useExternalToolApi).mockReturnValue(useExternalToolApiMock); }); afterEach(() => { diff --git a/src/modules/data/external-tool/SchoolExternalToolUsage.composable.unit.ts b/src/modules/data/external-tool/SchoolExternalToolUsage.composable.unit.ts index 0ab3f1c2ce..f27386d119 100644 --- a/src/modules/data/external-tool/SchoolExternalToolUsage.composable.unit.ts +++ b/src/modules/data/external-tool/SchoolExternalToolUsage.composable.unit.ts @@ -9,7 +9,7 @@ import { import { mapAxiosErrorToResponseError } from "@/utils/api"; import { BusinessError } from "@/store/types/commons"; -jest.mock("@data-external-tool/SchoolExternalToolApi.composable"); +vi.mock("@data-external-tool/SchoolExternalToolApi.composable"); describe("SchoolExternalToolUsage.composable", () => { let useSchoolExternalToolApiMock: DeepMocked< diff --git a/src/modules/data/external-tool/contextExternalToolConfigurationState.composable.unit.ts b/src/modules/data/external-tool/contextExternalToolConfigurationState.composable.unit.ts index 7534d9e40e..4517a90c4d 100644 --- a/src/modules/data/external-tool/contextExternalToolConfigurationState.composable.unit.ts +++ b/src/modules/data/external-tool/contextExternalToolConfigurationState.composable.unit.ts @@ -10,7 +10,7 @@ import { useContextExternalToolApi } from "./contextExternalToolApi.composable"; import { useContextExternalToolConfigurationState } from "./contextExternalToolConfigurationState.composable"; import { ContextExternalToolConfigurationTemplate } from "./types"; -jest.mock("@data-external-tool/contextExternalToolApi.composable"); +vi.mock("@data-external-tool/contextExternalToolApi.composable"); describe("contextExternalToolConfigurationState.composable", () => { let useContextExternalToolApiMock: DeepMocked< diff --git a/src/modules/data/external-tool/contextExternalToolState.composable.unit.ts b/src/modules/data/external-tool/contextExternalToolState.composable.unit.ts index a47a37ef7b..985eafb63e 100644 --- a/src/modules/data/external-tool/contextExternalToolState.composable.unit.ts +++ b/src/modules/data/external-tool/contextExternalToolState.composable.unit.ts @@ -9,7 +9,7 @@ import { useContextExternalToolApi } from "./contextExternalToolApi.composable"; import { useContextExternalToolState } from "./contextExternalToolState.composable"; import { ContextExternalTool } from "./types"; -jest.mock("@data-external-tool/contextExternalToolApi.composable"); +vi.mock("@data-external-tool/contextExternalToolApi.composable"); describe("contextExternalToolState.composable", () => { let useContextExternalToolApiMock: DeepMocked< diff --git a/src/modules/data/external-tool/externalToolDisplayListState.composable.unit.ts b/src/modules/data/external-tool/externalToolDisplayListState.composable.unit.ts index f6c2006dde..c2783df188 100644 --- a/src/modules/data/external-tool/externalToolDisplayListState.composable.unit.ts +++ b/src/modules/data/external-tool/externalToolDisplayListState.composable.unit.ts @@ -10,7 +10,7 @@ import { useExternalToolDisplayListState } from "./externalToolDisplayListState. import { useExternalToolReferenceApi } from "./externalToolReferenceApi.composable"; import { ExternalToolDisplayData } from "./types"; -jest.mock("@data-external-tool/externalToolReferenceApi.composable"); +vi.mock("@data-external-tool/externalToolReferenceApi.composable"); describe("externalToolDisplayListState.composable", () => { let useExternalToolReferenceApiMock: DeepMocked< diff --git a/src/modules/data/external-tool/externalToolDisplayState.composable.unit.ts b/src/modules/data/external-tool/externalToolDisplayState.composable.unit.ts index 872f93543f..d540a7a875 100644 --- a/src/modules/data/external-tool/externalToolDisplayState.composable.unit.ts +++ b/src/modules/data/external-tool/externalToolDisplayState.composable.unit.ts @@ -9,7 +9,7 @@ import { useExternalToolDisplayState } from "./externalToolDisplayState.composab import { useExternalToolReferenceApi } from "./externalToolReferenceApi.composable"; import { ExternalToolDisplayData } from "./types"; -jest.mock("@data-external-tool/externalToolReferenceApi.composable"); +vi.mock("@data-external-tool/externalToolReferenceApi.composable"); describe("externalToolDisplayState.composable", () => { let useExternalToolReferenceApiMock: DeepMocked< diff --git a/src/modules/data/group/GroupState.composable.unit.ts b/src/modules/data/group/GroupState.composable.unit.ts index 42495f2adb..ff7be65f08 100644 --- a/src/modules/data/group/GroupState.composable.unit.ts +++ b/src/modules/data/group/GroupState.composable.unit.ts @@ -7,7 +7,7 @@ import { mountComposable } from "@@/tests/test-utils"; import { NOTIFIER_MODULE_KEY } from "@/utils/inject"; import { createTestingI18n } from "@@/tests/test-utils/setup"; -jest.mock("@data-group/GroupApi.composable"); +vi.mock("@data-group/GroupApi.composable"); describe("GroupState.composable", () => { let useGroupApiMock: DeepMocked>; @@ -17,7 +17,7 @@ describe("GroupState.composable", () => { beforeEach(() => { useGroupApiMock = createMock>(); - jest.mocked(useGroupApi).mockReturnValue(useGroupApiMock); + vi.mocked(useGroupApi).mockReturnValue(useGroupApiMock); }); afterEach(() => { diff --git a/src/modules/data/group/groupListState.composable.unit.ts b/src/modules/data/group/groupListState.composable.unit.ts index bbf050bca7..11096b10e6 100644 --- a/src/modules/data/group/groupListState.composable.unit.ts +++ b/src/modules/data/group/groupListState.composable.unit.ts @@ -7,7 +7,7 @@ import { createTestingI18n } from "@@/tests/test-utils/setup"; import { createMock, DeepMocked } from "@golevelup/ts-jest"; import { GroupListFilter, useGroupApi, useGroupListState } from "./index"; -jest.mock("@data-group/GroupApi.composable"); +vi.mock("@data-group/GroupApi.composable"); describe("groupListState.composable", () => { let useGroupApiMock: DeepMocked>; @@ -17,7 +17,7 @@ describe("groupListState.composable", () => { beforeEach(() => { useGroupApiMock = createMock>(); - jest.mocked(useGroupApi).mockReturnValue(useGroupApiMock); + vi.mocked(useGroupApi).mockReturnValue(useGroupApiMock); }); afterEach(() => { diff --git a/src/modules/data/provisioning-options/ProvisioningOptionsState.composable.unit.ts b/src/modules/data/provisioning-options/ProvisioningOptionsState.composable.unit.ts index 5b8c40a293..353eb7cfef 100644 --- a/src/modules/data/provisioning-options/ProvisioningOptionsState.composable.unit.ts +++ b/src/modules/data/provisioning-options/ProvisioningOptionsState.composable.unit.ts @@ -16,7 +16,7 @@ import { useProvisioningOptionsApi } from "./ProvisioningOptionsApi.composable"; import { useProvisioningOptionsState } from "./ProvisioningOptionsState.composable"; import { ProvisioningOptions } from "./type/ProvisioningOptions"; -jest.mock("@data-provisioning-options/ProvisioningOptionsApi.composable"); +vi.mock("@data-provisioning-options/ProvisioningOptionsApi.composable"); describe("ProvisioningOptionsState.composable", () => { let useProvisioningOptionsApiMock: DeepMocked< diff --git a/src/modules/data/room/courseList.composable.unit.ts b/src/modules/data/room/courseList.composable.unit.ts index 2506183cc5..44c5225303 100644 --- a/src/modules/data/room/courseList.composable.unit.ts +++ b/src/modules/data/room/courseList.composable.unit.ts @@ -22,8 +22,8 @@ import { useCourseInfoApi } from "./courseInfoApi.composable"; import { useCourseApi } from "./courseApi.composable"; import { useCourseList } from "./courseList.composable"; -jest.mock("./courseApi.composable"); -jest.mock("./courseInfoApi.composable"); +vi.mock("./courseApi.composable"); +vi.mock("./courseInfoApi.composable"); describe("courseList.composable", () => { let useCourseApiMock: DeepMocked>; @@ -36,8 +36,8 @@ describe("courseList.composable", () => { useCourseApiMock = createMock>(); useCourseInfoApiMock = createMock>(); - jest.mocked(useCourseApi).mockReturnValue(useCourseApiMock); - jest.mocked(useCourseInfoApi).mockReturnValue(useCourseInfoApiMock); + vi.mocked(useCourseApi).mockReturnValue(useCourseApiMock); + vi.mocked(useCourseInfoApi).mockReturnValue(useCourseInfoApiMock); }); afterEach(() => { diff --git a/src/modules/data/system/SystemApi.composable.unit.ts b/src/modules/data/system/SystemApi.composable.unit.ts index eb9a7357e2..7f9113cef9 100644 --- a/src/modules/data/system/SystemApi.composable.unit.ts +++ b/src/modules/data/system/SystemApi.composable.unit.ts @@ -5,7 +5,7 @@ import { mockApiResponse } from "@@/tests/test-utils"; import { useSystemApi } from "@data-system"; import { useErrorHandler } from "@/components/error-handling/ErrorHandler.composable"; -jest.mock("@/components/error-handling/ErrorHandler.composable"); +vi.mock("@/components/error-handling/ErrorHandler.composable"); describe("SystemApi.composable", () => { let systemApi: DeepMocked; @@ -16,7 +16,7 @@ describe("SystemApi.composable", () => { useErrorHandlerMock = createMock>(); jest.spyOn(serverApi, "SystemsApiFactory").mockReturnValue(systemApi); - jest.mocked(useErrorHandler).mockReturnValue(useErrorHandlerMock); + vi.mocked(useErrorHandler).mockReturnValue(useErrorHandlerMock); }); afterEach(() => { diff --git a/src/modules/feature/board-collaborative-text-editor-element/CollaborativeTextEditorElement.unit.ts b/src/modules/feature/board-collaborative-text-editor-element/CollaborativeTextEditorElement.unit.ts index 90e19ec0cc..8e34bfff15 100644 --- a/src/modules/feature/board-collaborative-text-editor-element/CollaborativeTextEditorElement.unit.ts +++ b/src/modules/feature/board-collaborative-text-editor-element/CollaborativeTextEditorElement.unit.ts @@ -17,13 +17,13 @@ import CollaborativeTextEditorElementMenu from "./components/CollaborativeTextEd import { setupCollaborativeTextEditorApiMock } from "./test-utils/collaborativeTextEditorApiMock"; // Mocks -jest.mock("@data-board", () => ({ +vi.mock("@data-board", () => ({ useBoardFocusHandler: vi.fn(), useContentElementState: vi.fn(() => ({ modelValue: {} })), useDeleteConfirmationDialog: vi.fn(), })); -jest.mock("@feature-board"); -jest.mock("./composables/CollaborativeTextEditorApi.composable"); +vi.mock("@feature-board"); +vi.mock("./composables/CollaborativeTextEditorApi.composable"); describe("CollaborativeTextEditorElement", () => { const notifierModule = createModuleMocks(NotifierModule); diff --git a/src/modules/feature/board-collaborative-text-editor-element/components/CollaborativeTextEditorElementMenu.unit.ts b/src/modules/feature/board-collaborative-text-editor-element/components/CollaborativeTextEditorElementMenu.unit.ts index 62f6daf21d..688546037f 100644 --- a/src/modules/feature/board-collaborative-text-editor-element/components/CollaborativeTextEditorElementMenu.unit.ts +++ b/src/modules/feature/board-collaborative-text-editor-element/components/CollaborativeTextEditorElementMenu.unit.ts @@ -14,9 +14,9 @@ import { ref } from "vue"; import CollaborativeTextEditorElementMenu from "./CollaborativeTextEditorElementMenu.vue"; // Mocks -jest.mock("@ui-confirmation-dialog"); +vi.mock("@ui-confirmation-dialog"); -const mockedUseDeleteConfirmationDialog = jest.mocked( +const mockedUseDeleteConfirmationDialog = vi.mocked( useDeleteConfirmationDialog ); diff --git a/src/modules/feature/board-collaborative-text-editor-element/composables/CollaborativeTextEditorApi.composable.unit.ts b/src/modules/feature/board-collaborative-text-editor-element/composables/CollaborativeTextEditorApi.composable.unit.ts index c36d589069..cf8472fa00 100644 --- a/src/modules/feature/board-collaborative-text-editor-element/composables/CollaborativeTextEditorApi.composable.unit.ts +++ b/src/modules/feature/board-collaborative-text-editor-element/composables/CollaborativeTextEditorApi.composable.unit.ts @@ -13,14 +13,14 @@ import { useCollaborativeTextEditorApi, } from "./CollaborativeTextEditorApi.composable"; -jest.mock("./CollaborativeTextEditorNotifications.composable"); +vi.mock("./CollaborativeTextEditorNotifications.composable"); -jest.mock("@/utils/api"); -const mockedMapAxiosErrorToResponseError = jest.mocked( +vi.mock("@/utils/api"); +const mockedMapAxiosErrorToResponseError = vi.mocked( mapAxiosErrorToResponseError ); -jest.mock( +vi.mock( "@/utils/create-global-state", () => ({ createTestableGlobaleState: (composable) => composable, diff --git a/src/modules/feature/board-collaborative-text-editor-element/composables/CollaborativeTextEditorNotifications.composable.unit.ts b/src/modules/feature/board-collaborative-text-editor-element/composables/CollaborativeTextEditorNotifications.composable.unit.ts index c8e6dc1ed1..cd0cc33140 100644 --- a/src/modules/feature/board-collaborative-text-editor-element/composables/CollaborativeTextEditorNotifications.composable.unit.ts +++ b/src/modules/feature/board-collaborative-text-editor-element/composables/CollaborativeTextEditorNotifications.composable.unit.ts @@ -5,7 +5,7 @@ import { mountComposable } from "@@/tests/test-utils/mountComposable"; import { useI18n } from "vue-i18n"; import { useCollaborativeTextEditorNotifier } from "./CollaborativeTextEditorNotifications.composable"; -jest.mock("vue-i18n", () => { +vi.mock("vue-i18n", () => { return { ...jest.requireActual("vue-i18n"), useI18n: vi.fn().mockReturnValue({ @@ -20,7 +20,7 @@ jest.mock("vue-i18n", () => { }; }); -const mockI18nModule = jest.mocked(useI18n()); +const mockI18nModule = vi.mocked(useI18n()); const notifierModule = createModuleMocks(NotifierModule); diff --git a/src/modules/feature/board-collaborative-text-editor-element/test-utils/collaborativeTextEditorApiMock.ts b/src/modules/feature/board-collaborative-text-editor-element/test-utils/collaborativeTextEditorApiMock.ts index bd64785293..19de556042 100644 --- a/src/modules/feature/board-collaborative-text-editor-element/test-utils/collaborativeTextEditorApiMock.ts +++ b/src/modules/feature/board-collaborative-text-editor-element/test-utils/collaborativeTextEditorApiMock.ts @@ -7,7 +7,7 @@ interface Props { export const setupCollaborativeTextEditorApiMock = (props: Props = {}) => { const { getUrlMock } = props; - const mockedCollaborativeTextEditorApi = jest.mocked( + const mockedCollaborativeTextEditorApi = vi.mocked( useCollaborativeTextEditorApi ); diff --git a/src/modules/feature/board-collaborative-text-editor-element/test-utils/collaborativeTextEditorNotifier.ts b/src/modules/feature/board-collaborative-text-editor-element/test-utils/collaborativeTextEditorNotifier.ts index 9affe64a32..4248488760 100644 --- a/src/modules/feature/board-collaborative-text-editor-element/test-utils/collaborativeTextEditorNotifier.ts +++ b/src/modules/feature/board-collaborative-text-editor-element/test-utils/collaborativeTextEditorNotifier.ts @@ -14,7 +14,7 @@ export const setupCollaborativeTextEditorNotifier = (props: Props = {}) => { showInternalServerErrorMock, } = props; - const mockedSelectedFile = jest.mocked(useCollaborativeTextEditorNotifier); + const mockedSelectedFile = vi.mocked(useCollaborativeTextEditorNotifier); const showForbiddenError = showForbiddenErrorMock ?? vi.fn(); const showUnauthorizedError = showUnauthorizedErrorMock ?? vi.fn(); diff --git a/src/modules/feature/board-deleted-element/DeletedElement.unit.ts b/src/modules/feature/board-deleted-element/DeletedElement.unit.ts index cca12dbf06..a98d448a13 100644 --- a/src/modules/feature/board-deleted-element/DeletedElement.unit.ts +++ b/src/modules/feature/board-deleted-element/DeletedElement.unit.ts @@ -12,7 +12,7 @@ import { ComponentProps } from "vue-component-type-helpers"; import DeletedElement from "./DeletedElement.vue"; import DeletedElementMenu from "./DeletedElementMenu.vue"; -jest.mock("@data-board"); +vi.mock("@data-board"); describe("DeletedElement", () => { let useBoardFocusHandlerMock: DeepMocked< @@ -29,8 +29,8 @@ describe("DeletedElement", () => { ReturnType >({ isTeacher: true }); - jest.mocked(useBoardFocusHandler).mockReturnValue(useBoardFocusHandlerMock); - jest.mocked(useBoardPermissions).mockReturnValue(useBoardPermissionsMock); + vi.mocked(useBoardFocusHandler).mockReturnValue(useBoardFocusHandlerMock); + vi.mocked(useBoardPermissions).mockReturnValue(useBoardPermissionsMock); }); afterEach(() => { diff --git a/src/modules/feature/board-drawing-element/DrawingContentElement.unit.ts b/src/modules/feature/board-drawing-element/DrawingContentElement.unit.ts index f949405766..cfd90ea233 100644 --- a/src/modules/feature/board-drawing-element/DrawingContentElement.unit.ts +++ b/src/modules/feature/board-drawing-element/DrawingContentElement.unit.ts @@ -21,12 +21,12 @@ import DrawingContentElement from "./DrawingContentElement.vue"; import InnerContent from "./InnerContent.vue"; // Mocks -jest.mock("@data-board", () => ({ +vi.mock("@data-board", () => ({ useBoardFocusHandler: vi.fn(), useContentElementState: vi.fn(() => ({ modelValue: {} })), useDeleteConfirmationDialog: vi.fn(), })); -jest.mock("@feature-board"); +vi.mock("@feature-board"); const DRAWING_ELEMENT = drawingElementResponseFactory.build(); diff --git a/src/modules/feature/board-external-tool-element/ExternalToolElement.unit.ts b/src/modules/feature/board-external-tool-element/ExternalToolElement.unit.ts index f769c66845..45642c28c8 100644 --- a/src/modules/feature/board-external-tool-element/ExternalToolElement.unit.ts +++ b/src/modules/feature/board-external-tool-element/ExternalToolElement.unit.ts @@ -31,9 +31,9 @@ import ExternalToolElement from "./ExternalToolElement.vue"; import ExternalToolElementAlert from "./ExternalToolElementAlert.vue"; import ExternalToolElementConfigurationDialog from "./ExternalToolElementConfigurationDialog.vue"; -jest.mock("@data-board"); -jest.mock("@data-external-tool"); -jest.mock("@util-board"); +vi.mock("@data-board"); +vi.mock("@data-external-tool"); +vi.mock("@util-board"); describe("ExternalToolElement", () => { let useContentElementStateMock: DeepMocked< @@ -78,7 +78,7 @@ describe("ExternalToolElement", () => { jest .mocked(useContentElementState) .mockReturnValue(useContentElementStateMock); - jest.mocked(useBoardFocusHandler).mockReturnValue(useBoardFocusHandlerMock); + vi.mocked(useBoardFocusHandler).mockReturnValue(useBoardFocusHandlerMock); jest .mocked(useExternalToolDisplayState) .mockReturnValue(useExternalToolElementDisplayStateMock); diff --git a/src/modules/feature/board-external-tool-element/ExternalToolElementAlert.unit.ts b/src/modules/feature/board-external-tool-element/ExternalToolElementAlert.unit.ts index 4c6d6f8462..d8dd6d1f87 100644 --- a/src/modules/feature/board-external-tool-element/ExternalToolElementAlert.unit.ts +++ b/src/modules/feature/board-external-tool-element/ExternalToolElementAlert.unit.ts @@ -17,7 +17,7 @@ import { InfoAlert, WarningAlert } from "@ui-alert"; import { mount } from "@vue/test-utils"; import ExternalToolElementAlert from "./ExternalToolElementAlert.vue"; -jest.mock("@data-board"); +vi.mock("@data-board"); describe("ExternalToolElementAlert", () => { let useBoardPermissionsMock: DeepMocked< @@ -37,7 +37,7 @@ describe("ExternalToolElementAlert", () => { ReturnType >(); - jest.mocked(useBoardPermissions).mockReturnValue(useBoardPermissionsMock); + vi.mocked(useBoardPermissions).mockReturnValue(useBoardPermissionsMock); }); afterEach(() => { diff --git a/src/modules/feature/board-external-tool-element/ExternalToolElementConfigurationDialog.unit.ts b/src/modules/feature/board-external-tool-element/ExternalToolElementConfigurationDialog.unit.ts index d49439ffe8..842bcadf96 100644 --- a/src/modules/feature/board-external-tool-element/ExternalToolElementConfigurationDialog.unit.ts +++ b/src/modules/feature/board-external-tool-element/ExternalToolElementConfigurationDialog.unit.ts @@ -12,7 +12,7 @@ import { nextTick } from "vue"; import { ComponentProps } from "vue-component-type-helpers"; import ExternalToolElementConfigurationDialog from "./ExternalToolElementConfigurationDialog.vue"; -jest.mock("@util-board"); +vi.mock("@util-board"); describe("ExternalToolElementConfigurationDialog", () => { let useBoardNotifierMock: DeepMocked>; @@ -20,7 +20,7 @@ describe("ExternalToolElementConfigurationDialog", () => { beforeEach(() => { useBoardNotifierMock = createMock>(); - jest.mocked(useBoardNotifier).mockReturnValue(useBoardNotifierMock); + vi.mocked(useBoardNotifier).mockReturnValue(useBoardNotifierMock); }); afterEach(() => { diff --git a/src/modules/feature/board-file-element/FileContentElement.unit.ts b/src/modules/feature/board-file-element/FileContentElement.unit.ts index 364798906a..fea695ad3c 100644 --- a/src/modules/feature/board-file-element/FileContentElement.unit.ts +++ b/src/modules/feature/board-file-element/FileContentElement.unit.ts @@ -24,15 +24,15 @@ import { FileAlert } from "./shared/types/FileAlert.enum"; import { FileProperties } from "./shared/types/file-properties"; import FileUpload from "./upload/FileUpload.vue"; -jest.mock("@data-board", () => { +vi.mock("@data-board", () => { return { useBoardFocusHandler: vi.fn(), useContentElementState: vi.fn(() => ({ modelValue: {} })), }; }); -jest.mock("@feature-board"); -jest.mock("./shared/composables/FileStorageApi.composable"); -jest.mock("./content/alert/useFileAlerts.composable"); +vi.mock("@feature-board"); +vi.mock("./shared/composables/FileStorageApi.composable"); +vi.mock("./content/alert/useFileAlerts.composable"); describe("FileContentElement", () => { const notifierModule = createModuleMocks(NotifierModule); @@ -43,7 +43,7 @@ describe("FileContentElement", () => { const menu = "slot-menu"; const addAlertMock = vi.fn(); - jest.mocked(useFileAlerts).mockReturnValue({ + vi.mocked(useFileAlerts).mockReturnValue({ addAlert: addAlertMock, alerts: computed(() => []), }); diff --git a/src/modules/feature/board-file-element/content/display/audio-display/AudioDisplay.unit.ts b/src/modules/feature/board-file-element/content/display/audio-display/AudioDisplay.unit.ts index 33551333b0..002b8de3fb 100644 --- a/src/modules/feature/board-file-element/content/display/audio-display/AudioDisplay.unit.ts +++ b/src/modules/feature/board-file-element/content/display/audio-display/AudioDisplay.unit.ts @@ -9,7 +9,7 @@ import { useMediaControls } from "@vueuse/core"; import { nextTick, ref } from "vue"; import AudioDisplay from "./AudioDisplay.vue"; -jest.mock("@vueuse/core", () => { +vi.mock("@vueuse/core", () => { const original = jest.requireActual("@vueuse/core"); return { @@ -43,7 +43,7 @@ describe("AudioDisplay", () => { rate: rateRef, onSourceError: onSourceErrorMock, }); - jest.mocked(useMediaControls).mockReturnValue(useMediaControlsMock); + vi.mocked(useMediaControls).mockReturnValue(useMediaControlsMock); const wrapper = mount(AudioDisplay, { props, @@ -202,7 +202,7 @@ describe("AudioDisplay", () => { duration: durationRef, rate: rateRef, }); - jest.mocked(useMediaControls).mockReturnValue(useMediaControlsMock); + vi.mocked(useMediaControls).mockReturnValue(useMediaControlsMock); const wrapper = mount(AudioDisplay, { props, diff --git a/src/modules/feature/board-file-element/content/display/image-display/ImageDisplay.unit.ts b/src/modules/feature/board-file-element/content/display/image-display/ImageDisplay.unit.ts index 83aea22e16..8ad075cdb9 100644 --- a/src/modules/feature/board-file-element/content/display/image-display/ImageDisplay.unit.ts +++ b/src/modules/feature/board-file-element/content/display/image-display/ImageDisplay.unit.ts @@ -9,11 +9,11 @@ import { mount } from "@vue/test-utils"; import { ref } from "vue"; import ImageDisplay from "./ImageDisplay.vue"; -jest.mock("@ui-light-box"); -jest.mock("@/utils/fileHelper"); +vi.mock("@ui-light-box"); +vi.mock("@/utils/fileHelper"); -const mockedUseLightBox = jest.mocked(useLightBox); -const mockedConvertDownloadToPreviewUrl = jest.mocked( +const mockedUseLightBox = vi.mocked(useLightBox); +const mockedConvertDownloadToPreviewUrl = vi.mocked( convertDownloadToPreviewUrl ); diff --git a/src/modules/feature/board-file-element/content/footer/attributes/FileAttributes.unit.ts b/src/modules/feature/board-file-element/content/footer/attributes/FileAttributes.unit.ts index 7f9c45562b..01f98b30ca 100644 --- a/src/modules/feature/board-file-element/content/footer/attributes/FileAttributes.unit.ts +++ b/src/modules/feature/board-file-element/content/footer/attributes/FileAttributes.unit.ts @@ -7,9 +7,9 @@ import { mount } from "@vue/test-utils"; import { useI18n } from "vue-i18n"; import FileAttributes from "./FileAttributes.vue"; -jest.mock("@/utils/fileHelper"); +vi.mock("@/utils/fileHelper"); -jest.mock("vue-i18n"); +vi.mock("vue-i18n"); describe("FileAttributes", () => { const setup = () => { @@ -23,7 +23,7 @@ describe("FileAttributes", () => { const getFileExtensionMock = jest .mocked(getFileExtension) .mockReturnValueOnce(extension); - const i18nMock = jest.mocked(useI18n).mockReturnValue({ + const i18nMock = vi.mocked(useI18n).mockReturnValue({ t: vi.fn().mockImplementation((key: string) => key), n: vi.fn().mockImplementation((key: string) => key), }); diff --git a/src/modules/feature/board-file-element/content/footer/download/FileDownload.unit.ts b/src/modules/feature/board-file-element/content/footer/download/FileDownload.unit.ts index 9bad66e09a..6103ec4d5f 100644 --- a/src/modules/feature/board-file-element/content/footer/download/FileDownload.unit.ts +++ b/src/modules/feature/board-file-element/content/footer/download/FileDownload.unit.ts @@ -8,7 +8,7 @@ import { shallowMount } from "@vue/test-utils"; import { nextTick } from "vue"; import FileDownload from "./FileDownload.vue"; -jest.mock("@/utils/fileHelper"); +vi.mock("@/utils/fileHelper"); describe("FileDownload", () => { beforeEach(() => { @@ -117,7 +117,7 @@ describe("FileDownload", () => { isDownloadAllowed: false, }; - const downloadFileMock = jest.mocked(downloadFile).mockReturnValueOnce(); + const downloadFileMock = vi.mocked(downloadFile).mockReturnValueOnce(); const wrapper = shallowMount(FileDownload, { global: { plugins: [createTestingVuetify(), createTestingI18n()] }, diff --git a/src/modules/feature/board-file-element/shared/composables/FileStorageApi.composable.unit.ts b/src/modules/feature/board-file-element/shared/composables/FileStorageApi.composable.unit.ts index c333143cb2..335671c421 100644 --- a/src/modules/feature/board-file-element/shared/composables/FileStorageApi.composable.unit.ts +++ b/src/modules/feature/board-file-element/shared/composables/FileStorageApi.composable.unit.ts @@ -15,22 +15,22 @@ import { AxiosResponse } from "axios"; import { setupFileStorageNotifier } from "../test-utils/fileStorageNotifier"; import { ErrorType, useFileStorageApi } from "./FileStorageApi.composable"; -jest.mock("./FileStorageNotifications.composable"); +vi.mock("./FileStorageNotifications.composable"); -jest.mock("@/utils/helpers"); +vi.mock("@/utils/helpers"); -jest.mock("@/utils/api"); -const mockedMapAxiosErrorToResponseError = jest.mocked( +vi.mock("@/utils/api"); +const mockedMapAxiosErrorToResponseError = vi.mocked( mapAxiosErrorToResponseError ); -jest.mock("@/store/store-accessor", () => ({ +vi.mock("@/store/store-accessor", () => ({ authModule: { getSchool: { id: "schoolId" }, }, })); -jest.mock( +vi.mock( "@/utils/create-global-state", () => ({ createTestableGlobaleState: (composable) => composable, diff --git a/src/modules/feature/board-file-element/shared/composables/FileStorageNotifications.composable.unit.ts b/src/modules/feature/board-file-element/shared/composables/FileStorageNotifications.composable.unit.ts index 6a8f569752..68718a66e9 100644 --- a/src/modules/feature/board-file-element/shared/composables/FileStorageNotifications.composable.unit.ts +++ b/src/modules/feature/board-file-element/shared/composables/FileStorageNotifications.composable.unit.ts @@ -6,7 +6,7 @@ import { mountComposable } from "@@/tests/test-utils/mountComposable"; import { useI18n } from "vue-i18n"; import { useFileStorageNotifier } from "./FileStorageNotifications.composable"; -jest.mock("vue-i18n", () => { +vi.mock("vue-i18n", () => { return { ...jest.requireActual("vue-i18n"), useI18n: vi.fn().mockReturnValue({ @@ -17,7 +17,7 @@ jest.mock("vue-i18n", () => { }); const maxFileSize = 100; -const mockI18nModule = jest.mocked(useI18n()); +const mockI18nModule = vi.mocked(useI18n()); const notifierModule = createModuleMocks(NotifierModule); const configModule = createModuleMocks(EnvConfigModule, { diff --git a/src/modules/feature/board-file-element/shared/test-utils/fileStorageNotifier.ts b/src/modules/feature/board-file-element/shared/test-utils/fileStorageNotifier.ts index 2df61c05ee..c55a3dc4d2 100644 --- a/src/modules/feature/board-file-element/shared/test-utils/fileStorageNotifier.ts +++ b/src/modules/feature/board-file-element/shared/test-utils/fileStorageNotifier.ts @@ -18,7 +18,7 @@ export const setupFileStorageNotifier = (props: Props = {}) => { showFileExistsErrorMock, } = props; - const mockedSelectedFile = jest.mocked(useFileStorageNotifier); + const mockedSelectedFile = vi.mocked(useFileStorageNotifier); const showFileTooBigError = showFileTooBigErrorMock ?? vi.fn(); const showForbiddenError = showForbiddenErrorMock ?? vi.fn(); diff --git a/src/modules/feature/board-link-element/components/LinkContentElement.unit.ts b/src/modules/feature/board-link-element/components/LinkContentElement.unit.ts index 0866ca2647..ff92288bc2 100644 --- a/src/modules/feature/board-link-element/components/LinkContentElement.unit.ts +++ b/src/modules/feature/board-link-element/components/LinkContentElement.unit.ts @@ -31,13 +31,13 @@ import { BoardMenuActionMoveUp, } from "@ui-board"; -jest.mock("@data-board/ContentElementState.composable"); +vi.mock("@data-board/ContentElementState.composable"); -jest.mock("@data-board/BoardFocusHandler.composable"); -jest.mock("../composables/MetaTagExtractorApi.composable"); -jest.mock("../composables/PreviewGenerator.composable"); +vi.mock("@data-board/BoardFocusHandler.composable"); +vi.mock("../composables/MetaTagExtractorApi.composable"); +vi.mock("../composables/PreviewGenerator.composable"); -const mockedUseContentElementState = jest.mocked(useContentElementState); +const mockedUseContentElementState = vi.mocked(useContentElementState); let defaultElement = linkElementResponseFactory.build(); const mockedEnvConfigModule = createModuleMocks(EnvConfigModule, { @@ -65,11 +65,11 @@ describe("LinkContentElement", () => { usePreviewGeneratorMock = createMock>(); - jest.mocked(useBoardFocusHandler).mockReturnValue(useBoardFocusHandlerMock); + vi.mocked(useBoardFocusHandler).mockReturnValue(useBoardFocusHandlerMock); jest .mocked(useMetaTagExtractorApi) .mockReturnValue(useMetaTagExtractorApiMock); - jest.mocked(usePreviewGenerator).mockReturnValue(usePreviewGeneratorMock); + vi.mocked(usePreviewGenerator).mockReturnValue(usePreviewGeneratorMock); defaultElement = linkElementResponseFactory.build(); }); diff --git a/src/modules/feature/board-link-element/composables/PreviewGenerator.composable.unit.ts b/src/modules/feature/board-link-element/composables/PreviewGenerator.composable.unit.ts index a92f16af4c..a5cc453c39 100644 --- a/src/modules/feature/board-link-element/composables/PreviewGenerator.composable.unit.ts +++ b/src/modules/feature/board-link-element/composables/PreviewGenerator.composable.unit.ts @@ -8,7 +8,7 @@ import { mount } from "@vue/test-utils"; import { defineComponent, ref } from "vue"; import { usePreviewGenerator } from "./PreviewGenerator.composable"; -jest.mock("@feature-board-file-element"); +vi.mock("@feature-board-file-element"); describe("usePreviewGenerator", () => { afterEach(() => { diff --git a/src/modules/feature/board-submission-element/components/SubmissionContentElement.unit.ts b/src/modules/feature/board-submission-element/components/SubmissionContentElement.unit.ts index 01cb804579..7e6fdc4c52 100644 --- a/src/modules/feature/board-submission-element/components/SubmissionContentElement.unit.ts +++ b/src/modules/feature/board-submission-element/components/SubmissionContentElement.unit.ts @@ -17,19 +17,17 @@ import { createTestingVuetify, } from "@@/tests/test-utils/setup"; -jest.mock("@data-board/BoardFocusHandler.composable"); -jest.mock("@feature-board"); +vi.mock("@data-board/BoardFocusHandler.composable"); +vi.mock("@feature-board"); -jest.mock("@ui-confirmation-dialog"); +vi.mock("@ui-confirmation-dialog"); const mockedUse = createMock>(); mockedUse.askDeleteConfirmation.mockResolvedValue(true); -const useDeleteConfirmationDialogMock = jest.mocked( - useDeleteConfirmationDialog -); +const useDeleteConfirmationDialogMock = vi.mocked(useDeleteConfirmationDialog); useDeleteConfirmationDialogMock.mockReturnValue(mockedUse); -jest.mock("@data-board/ContentElementState.composable"); -const mockedUseContentElementState = jest.mocked(useContentElementState); +vi.mock("@data-board/ContentElementState.composable"); +const mockedUseContentElementState = vi.mocked(useContentElementState); const mockedUseContentElementStateResponse = createMock>(); @@ -37,8 +35,8 @@ mockedUseContentElementState.mockReturnValue( mockedUseContentElementStateResponse ); -jest.mock("../composables/SubmissionContentElementState.composable"); -const mockedUseSubmissionContentElementState = jest.mocked( +vi.mock("../composables/SubmissionContentElementState.composable"); +const mockedUseSubmissionContentElementState = vi.mocked( useSubmissionContentElementState ); const mockedUseSubmissionContentElementStateResponse: ReturnType< diff --git a/src/modules/feature/board-submission-element/composables/SubmissionContentElementState.composable.unit.ts b/src/modules/feature/board-submission-element/composables/SubmissionContentElementState.composable.unit.ts index fb42084e54..d6f2ff517d 100644 --- a/src/modules/feature/board-submission-element/composables/SubmissionContentElementState.composable.unit.ts +++ b/src/modules/feature/board-submission-element/composables/SubmissionContentElementState.composable.unit.ts @@ -14,8 +14,8 @@ const notifierModule = createModuleMocks(NotifierModule); const mockedSubmissionsResponse = submissionsResponseFactory.build(); -jest.mock("./SubmissionItemApi.composable"); -const mockedUseSubmissionItemApi = jest.mocked(useSubmissionItemApi); +vi.mock("./SubmissionItemApi.composable"); +const mockedUseSubmissionItemApi = vi.mocked(useSubmissionItemApi); describe("SubmissionContentElementState.composable", () => { let mockedUseSubmissionItemApiCalls: DeepMocked< diff --git a/src/modules/feature/board-text-element/RichTextContentElement.unit.ts b/src/modules/feature/board-text-element/RichTextContentElement.unit.ts index c6c9380972..2b5d90a2e4 100644 --- a/src/modules/feature/board-text-element/RichTextContentElement.unit.ts +++ b/src/modules/feature/board-text-element/RichTextContentElement.unit.ts @@ -12,20 +12,20 @@ import RichTextContentElementComponent from "./RichTextContentElement.vue"; import RichTextContentElementDisplayComponent from "./RichTextContentElementDisplay.vue"; import RichTextContentElementEditComponent from "./RichTextContentElementEdit.vue"; -jest.mock("@data-board", () => { +vi.mock("@data-board", () => { return { useBoardFocusHandler: vi.fn(), useContentElementState: vi.fn(() => ({ modelValue: {} })), useDeleteConfirmationDialog: vi.fn(), }; }); -jest.mock("@ui-confirmation-dialog", () => { +vi.mock("@ui-confirmation-dialog", () => { return { useDeleteConfirmationDialog: vi.fn(), }; }); -jest.mock("@util-board", () => { +vi.mock("@util-board", () => { return { useInlineEditInteractionHandler: vi.fn(), }; diff --git a/src/modules/feature/board/board/Board.unit.ts b/src/modules/feature/board/board/Board.unit.ts index d5091cd9ec..b236a0a7db 100644 --- a/src/modules/feature/board/board/Board.unit.ts +++ b/src/modules/feature/board/board/Board.unit.ts @@ -65,45 +65,43 @@ import { useApplicationError } from "@/composables/application-error.composable" import { HttpStatusCode } from "@/store/types/http-status-code.enum"; import { createApplicationError } from "@/utils/create-application-error.factory"; -jest.mock("@util-board/BoardNotifier.composable"); -const mockedUseBoardNotifier = jest.mocked(useBoardNotifier); +vi.mock("@util-board/BoardNotifier.composable"); +const mockedUseBoardNotifier = vi.mocked(useBoardNotifier); -jest.mock("@util-board/LastCreatedElement.composable"); -const mockUseSharedLastCreatedElement = jest.mocked( - useSharedLastCreatedElement -); +vi.mock("@util-board/LastCreatedElement.composable"); +const mockUseSharedLastCreatedElement = vi.mocked(useSharedLastCreatedElement); -jest.mock("@util-board/extractDataAttribute.util"); -const mockExtractDataAttribute = jest.mocked(extractDataAttribute); +vi.mock("@util-board/extractDataAttribute.util"); +const mockExtractDataAttribute = vi.mocked(extractDataAttribute); -jest.mock("@util-board/editMode.composable"); -const mockedUseSharedEditMode = jest.mocked(useSharedEditMode); -const mockedUseEditMode = jest.mocked(useCourseBoardEditMode); +vi.mock("@util-board/editMode.composable"); +const mockedUseSharedEditMode = vi.mocked(useSharedEditMode); +const mockedUseEditMode = vi.mocked(useCourseBoardEditMode); -jest.mock("@data-board/BoardPageInformation.composable"); -const mockedUseSharedBoardPageInformation = jest.mocked( +vi.mock("@data-board/BoardPageInformation.composable"); +const mockedUseSharedBoardPageInformation = vi.mocked( useSharedBoardPageInformation ); -jest.mock("@data-board/BoardPermissions.composable"); -const mockedUseBoardPermissions = jest.mocked(useBoardPermissions); +vi.mock("@data-board/BoardPermissions.composable"); +const mockedUseBoardPermissions = vi.mocked(useBoardPermissions); -jest.mock("@/utils/pageTitle", () => ({ +vi.mock("@/utils/pageTitle", () => ({ buildPageTitle: (pageTitle) => pageTitle ?? "", })); -jest.mock("@/composables/copy"); -const mockUseCopy = jest.mocked(useCopy); +vi.mock("@/composables/copy"); +const mockUseCopy = vi.mocked(useCopy); -jest.mock("vue-router"); +vi.mock("vue-router"); const useRouterMock = useRouter; const useRouteMock = useRoute; -jest.mock("@data-board/boardInactivity.composable"); +vi.mock("@data-board/boardInactivity.composable"); const mockUseBoardInactivity = useBoardInactivity; -jest.mock("@/composables/application-error.composable"); -const mockedCreateApplicationError = jest.mocked(useApplicationError); +vi.mock("@/composables/application-error.composable"); +const mockedCreateApplicationError = vi.mocked(useApplicationError); describe("Board", () => { let mockedBoardNotifierCalls: DeepMocked>; diff --git a/src/modules/feature/board/board/BoardColumn.unit.ts b/src/modules/feature/board/board/BoardColumn.unit.ts index a2e9f11b9c..9984e7d7aa 100644 --- a/src/modules/feature/board/board/BoardColumn.unit.ts +++ b/src/modules/feature/board/board/BoardColumn.unit.ts @@ -34,18 +34,16 @@ import BoardColumnVue from "./BoardColumn.vue"; const { isDragging, dragEnd } = useDragAndDrop(); -jest.mock("@data-board/BoardPermissions.composable"); -const mockedUserPermissions = jest.mocked(useBoardPermissions); - -jest.mock("@util-board/BoardNotifier.composable"); -jest.mock("@util-board/LastCreatedElement.composable"); -const mockedUseBoardNotifier = jest.mocked(useBoardNotifier); -const mockUseSharedLastCreatedElement = jest.mocked( - useSharedLastCreatedElement -); - -jest.mock("@data-board/fixSamePositionDnD.composable"); -const mockedUseForceRender = jest.mocked(useForceRender); +vi.mock("@data-board/BoardPermissions.composable"); +const mockedUserPermissions = vi.mocked(useBoardPermissions); + +vi.mock("@util-board/BoardNotifier.composable"); +vi.mock("@util-board/LastCreatedElement.composable"); +const mockedUseBoardNotifier = vi.mocked(useBoardNotifier); +const mockUseSharedLastCreatedElement = vi.mocked(useSharedLastCreatedElement); + +vi.mock("@data-board/fixSamePositionDnD.composable"); +const mockedUseForceRender = vi.mocked(useForceRender); mockUseSharedLastCreatedElement.mockReturnValue({ lastCreatedElementId: computed(() => "element-id"), diff --git a/src/modules/feature/board/board/BoardColumnHeader.unit.ts b/src/modules/feature/board/board/BoardColumnHeader.unit.ts index caee7d7037..b6b4d5b916 100644 --- a/src/modules/feature/board/board/BoardColumnHeader.unit.ts +++ b/src/modules/feature/board/board/BoardColumnHeader.unit.ts @@ -19,13 +19,13 @@ import { computed } from "vue"; import BoardAnyTitleInput from "../shared/BoardAnyTitleInput.vue"; import BoardColumnHeader from "./BoardColumnHeader.vue"; -jest.mock("@data-board"); -jest.mock("@util-board"); -const mockedUserPermissions = jest.mocked(useBoardPermissions); -const mockUseBoardFocusHandler = jest.mocked(useBoardFocusHandler); +vi.mock("@data-board"); +vi.mock("@util-board"); +const mockedUserPermissions = vi.mocked(useBoardPermissions); +const mockUseBoardFocusHandler = vi.mocked(useBoardFocusHandler); describe("BoardColumnHeader", () => { - const mockedUseEditMode = jest.mocked(useCourseBoardEditMode); + const mockedUseEditMode = vi.mocked(useCourseBoardEditMode); const setup = ( options?: { diff --git a/src/modules/feature/board/board/BoardHeader.unit.ts b/src/modules/feature/board/board/BoardHeader.unit.ts index 37098bb6a4..ad73171a94 100644 --- a/src/modules/feature/board/board/BoardHeader.unit.ts +++ b/src/modules/feature/board/board/BoardHeader.unit.ts @@ -25,13 +25,13 @@ import { computed } from "vue"; import BoardAnyTitleInput from "../shared/BoardAnyTitleInput.vue"; import BoardHeader from "./BoardHeader.vue"; -jest.mock("@data-board"); -jest.mock("@util-board"); -const mockedUserPermissions = jest.mocked(useBoardPermissions); -const mockUseBoardFocusHandler = jest.mocked(useBoardFocusHandler); +vi.mock("@data-board"); +vi.mock("@util-board"); +const mockedUserPermissions = vi.mocked(useBoardPermissions); +const mockUseBoardFocusHandler = vi.mocked(useBoardFocusHandler); describe("BoardHeader", () => { - const mockedUseEditMode = jest.mocked(useCourseBoardEditMode); + const mockedUseEditMode = vi.mocked(useCourseBoardEditMode); const setup = ( options?: { diff --git a/src/modules/feature/board/card/CardHost.unit.ts b/src/modules/feature/board/card/CardHost.unit.ts index 898619d4ad..f3903611dd 100644 --- a/src/modules/feature/board/card/CardHost.unit.ts +++ b/src/modules/feature/board/card/CardHost.unit.ts @@ -38,21 +38,21 @@ import { setupAddElementDialogMock } from "../test-utils/AddElementDialogMock"; import CardHost from "./CardHost.vue"; import ContentElementList from "./ContentElementList.vue"; -jest.mock("@util-board"); -const mockedUseBoardNotifier = jest.mocked(useBoardNotifier); -const mockedSharedLastCreatedElement = jest.mocked(useSharedLastCreatedElement); -const mockedEditMode = jest.mocked(useCourseBoardEditMode); -const mockedUseSharedEditMode = jest.mocked(useSharedEditMode); +vi.mock("@util-board"); +const mockedUseBoardNotifier = vi.mocked(useBoardNotifier); +const mockedSharedLastCreatedElement = vi.mocked(useSharedLastCreatedElement); +const mockedEditMode = vi.mocked(useCourseBoardEditMode); +const mockedUseSharedEditMode = vi.mocked(useSharedEditMode); -jest.mock("@data-board/BoardFocusHandler.composable"); -const mockedBoardFocusHandler = jest.mocked(useBoardFocusHandler); +vi.mock("@data-board/BoardFocusHandler.composable"); +const mockedBoardFocusHandler = vi.mocked(useBoardFocusHandler); -jest.mock("@data-board/BoardPermissions.composable"); -const mockedUseBoardPermissions = jest.mocked(useBoardPermissions); +vi.mock("@data-board/BoardPermissions.composable"); +const mockedUseBoardPermissions = vi.mocked(useBoardPermissions); -jest.mock("../shared/AddElementDialog.composable"); -jest.mock("@ui-confirmation-dialog"); -const mockedUseDeleteConfirmationDialog = jest.mocked( +vi.mock("../shared/AddElementDialog.composable"); +vi.mock("@ui-confirmation-dialog"); +const mockedUseDeleteConfirmationDialog = vi.mocked( useDeleteConfirmationDialog ); diff --git a/src/modules/feature/board/shared/AddElementDialog.composable.unit.ts b/src/modules/feature/board/shared/AddElementDialog.composable.unit.ts index 360815b6fd..43364c5c50 100644 --- a/src/modules/feature/board/shared/AddElementDialog.composable.unit.ts +++ b/src/modules/feature/board/shared/AddElementDialog.composable.unit.ts @@ -11,14 +11,14 @@ import { useAddElementDialog } from "./AddElementDialog.composable"; setupStores({ notifierModule: NotifierModule }); -jest.mock("./SharedElementTypeSelection.composable"); +vi.mock("./SharedElementTypeSelection.composable"); -jest.mock("@/utils/inject"); -const mockedInjectStrict = jest.mocked(injectStrict); +vi.mock("@/utils/inject"); +const mockedInjectStrict = vi.mocked(injectStrict); const translationMap: Record = {}; -jest.mock("vue-i18n", () => { +vi.mock("vue-i18n", () => { return { ...jest.requireActual("vue-i18n"), useI18n: vi.fn().mockReturnValue({ @@ -29,9 +29,9 @@ jest.mock("vue-i18n", () => { }; }); -jest.mock("@util-board"); -const mockedUseBoardNotifier = jest.mocked(useBoardNotifier); -jest.mocked(useSharedLastCreatedElement).mockImplementation(() => { +vi.mock("@util-board"); +const mockedUseBoardNotifier = vi.mocked(useBoardNotifier); +vi.mocked(useSharedLastCreatedElement).mockImplementation(() => { return { lastCreatedElementId: ref(undefined), resetLastCreatedElementId: vi.fn(), diff --git a/src/modules/feature/board/shared/AddElementDialog.unit.ts b/src/modules/feature/board/shared/AddElementDialog.unit.ts index 9014c87353..b853c714c0 100644 --- a/src/modules/feature/board/shared/AddElementDialog.unit.ts +++ b/src/modules/feature/board/shared/AddElementDialog.unit.ts @@ -12,7 +12,7 @@ import { nextTick } from "vue"; import { setupSharedElementTypeSelectionMock } from "../test-utils/sharedElementTypeSelectionMock"; import AddElementDialog from "./AddElementDialog.vue"; -jest.mock("./SharedElementTypeSelection.composable"); +vi.mock("./SharedElementTypeSelection.composable"); describe("ElementTypeSelection", () => { const envConfigModule: jest.Mocked = createModuleMocks( diff --git a/src/modules/feature/board/shared/BoardAnyTitleInput.unit.ts b/src/modules/feature/board/shared/BoardAnyTitleInput.unit.ts index ac59aed6db..887915f439 100644 --- a/src/modules/feature/board/shared/BoardAnyTitleInput.unit.ts +++ b/src/modules/feature/board/shared/BoardAnyTitleInput.unit.ts @@ -5,7 +5,7 @@ import { import { mount, VueWrapper } from "@vue/test-utils"; import BoardAnyTitleInput from "./BoardAnyTitleInput.vue"; -jest.mock("@util-board"); +vi.mock("@util-board"); const defaultProps = { value: "props value", diff --git a/src/modules/feature/board/test-utils/AddElementDialogMock.ts b/src/modules/feature/board/test-utils/AddElementDialogMock.ts index 292b06ef24..850afe4e81 100644 --- a/src/modules/feature/board/test-utils/AddElementDialogMock.ts +++ b/src/modules/feature/board/test-utils/AddElementDialogMock.ts @@ -7,7 +7,7 @@ interface Props { } export const setupAddElementDialogMock = (props: Props = {}) => { - const mockedUseAddElementDialog = jest.mocked(useAddElementDialog); + const mockedUseAddElementDialog = vi.mocked(useAddElementDialog); const createTextElementMock = vi.fn(); const createFileElementMock = vi.fn(); diff --git a/src/modules/feature/board/test-utils/sharedElementTypeSelectionMock.ts b/src/modules/feature/board/test-utils/sharedElementTypeSelectionMock.ts index 292d81759d..0feb0a5d87 100644 --- a/src/modules/feature/board/test-utils/sharedElementTypeSelectionMock.ts +++ b/src/modules/feature/board/test-utils/sharedElementTypeSelectionMock.ts @@ -15,7 +15,7 @@ interface ElementTypeSelectionOptions { export const setupSharedElementTypeSelectionMock = (props: Props = {}) => { const { closeDialogMock } = props; - const mockedSharedElementTypeSelection = jest.mocked( + const mockedSharedElementTypeSelection = vi.mocked( useSharedElementTypeSelection ); diff --git a/src/modules/feature/course-sync/EndCourseSyncDialog.unit.ts b/src/modules/feature/course-sync/EndCourseSyncDialog.unit.ts index 717950ba39..d14257dacf 100644 --- a/src/modules/feature/course-sync/EndCourseSyncDialog.unit.ts +++ b/src/modules/feature/course-sync/EndCourseSyncDialog.unit.ts @@ -10,7 +10,7 @@ import { createMock, DeepMocked } from "@golevelup/ts-jest"; import { mount } from "@vue/test-utils"; import EndCourseSyncDialog from "./EndCourseSyncDialog.vue"; -jest.mock("@data-room"); +vi.mock("@data-room"); describe("EndCourseSyncDialog", () => { let courseApiMock: DeepMocked>; @@ -42,7 +42,7 @@ describe("EndCourseSyncDialog", () => { beforeEach(() => { courseApiMock = createMock>(); - jest.mocked(useCourseApi).mockReturnValue(courseApiMock); + vi.mocked(useCourseApi).mockReturnValue(courseApiMock); }); afterEach(() => { diff --git a/src/modules/feature/course-sync/GroupSelectionDialog.unit.ts b/src/modules/feature/course-sync/GroupSelectionDialog.unit.ts index 426c0ba751..fded2704e1 100644 --- a/src/modules/feature/course-sync/GroupSelectionDialog.unit.ts +++ b/src/modules/feature/course-sync/GroupSelectionDialog.unit.ts @@ -13,7 +13,7 @@ import vueDompurifyHTMLPlugin from "vue-dompurify-html"; import { VAutocomplete } from "vuetify/lib/components/index.mjs"; import GroupSelectionDialog from "./GroupSelectionDialog.vue"; -jest.mock("@data-group", () => { +vi.mock("@data-group", () => { return { ...jest.requireActual("@data-group"), useGroupListState: vi.fn(), @@ -54,7 +54,7 @@ describe("GroupSelectionDialog", () => { beforeEach(() => { useGroupListStateMock = createMock>(); - jest.mocked(useGroupListState).mockReturnValue(useGroupListStateMock); + vi.mocked(useGroupListState).mockReturnValue(useGroupListStateMock); }); afterEach(() => { diff --git a/src/modules/feature/course-sync/StartExsistingCourseSyncDialog.unit.ts b/src/modules/feature/course-sync/StartExsistingCourseSyncDialog.unit.ts index a9d569b9f6..01492f023f 100644 --- a/src/modules/feature/course-sync/StartExsistingCourseSyncDialog.unit.ts +++ b/src/modules/feature/course-sync/StartExsistingCourseSyncDialog.unit.ts @@ -16,7 +16,7 @@ import vueDompurifyHTMLPlugin from "vue-dompurify-html"; import GroupSelectionDialog from "./GroupSelectionDialog.vue"; import StartExistingCourseSyncDialog from "./StartExistingCourseSyncDialog.vue"; -jest.mock("@data-room"); +vi.mock("@data-room"); describe("StartExistingCourseSyncDialog", () => { let courseApiMock: DeepMocked>; @@ -56,7 +56,7 @@ describe("StartExistingCourseSyncDialog", () => { beforeEach(() => { courseApiMock = createMock>(); - jest.mocked(useCourseApi).mockReturnValue(courseApiMock); + vi.mocked(useCourseApi).mockReturnValue(courseApiMock); }); afterEach(() => { diff --git a/src/modules/feature/media-shelf/MediaBoard.unit.ts b/src/modules/feature/media-shelf/MediaBoard.unit.ts index 28fab0233e..2e4c832d3a 100644 --- a/src/modules/feature/media-shelf/MediaBoard.unit.ts +++ b/src/modules/feature/media-shelf/MediaBoard.unit.ts @@ -27,15 +27,15 @@ import MediaBoardAvailableLine from "./MediaBoardAvailableLine.vue"; import MediaBoardLine from "./MediaBoardLine.vue"; import MediaBoardLineGhost from "./MediaBoardLineGhost.vue"; -jest.mock("./data/mediaBoardState.composable"); -jest.mock("@vueuse/core", () => { +vi.mock("./data/mediaBoardState.composable"); +vi.mock("@vueuse/core", () => { return { ...jest.requireActual("@vueuse/core"), useMediaQuery: vi.fn(), }; }); -jest.mocked(useMediaQuery).mockReturnValue(ref(true)); +vi.mocked(useMediaQuery).mockReturnValue(ref(true)); describe("MediaBoard", () => { let useSharedMediaBoardStateMock: DeepMocked< diff --git a/src/modules/feature/media-shelf/MediaBoardAvailableElement.unit.ts b/src/modules/feature/media-shelf/MediaBoardAvailableElement.unit.ts index b7f5cc5d46..8c4edfe7a1 100644 --- a/src/modules/feature/media-shelf/MediaBoardAvailableElement.unit.ts +++ b/src/modules/feature/media-shelf/MediaBoardAvailableElement.unit.ts @@ -21,8 +21,8 @@ import { MediaElementDisplay, useSharedMediaBoardState } from "./data"; import MediaBoardAvailableElement from "./MediaBoardAvailableElement.vue"; import MediaBoardElementDisplay from "./MediaBoardElementDisplay.vue"; -jest.mock("@data-external-tool"); -jest.mock("./data"); +vi.mock("@data-external-tool"); +vi.mock("./data"); describe("MediaBoardAvailableElement", () => { let useExternalToolLaunchStateMock: DeepMocked< diff --git a/src/modules/feature/media-shelf/MediaBoardAvailableLine.unit.ts b/src/modules/feature/media-shelf/MediaBoardAvailableLine.unit.ts index 831f333c7e..3e6cb9b179 100644 --- a/src/modules/feature/media-shelf/MediaBoardAvailableLine.unit.ts +++ b/src/modules/feature/media-shelf/MediaBoardAvailableLine.unit.ts @@ -19,14 +19,14 @@ import { availableMediaLineId, ElementCreate } from "./data"; import MediaBoardAvailableLine from "./MediaBoardAvailableLine.vue"; import MediaBoardLineMenu from "./MediaBoardLineMenu.vue"; -jest.mock("@vueuse/core", () => { +vi.mock("@vueuse/core", () => { return { ...jest.requireActual("@vueuse/core"), useMediaQuery: vi.fn(), }; }); -jest.mocked(useMediaQuery).mockReturnValue(ref(true)); +vi.mocked(useMediaQuery).mockReturnValue(ref(true)); describe("MediaBoardAvailableLine", () => { const getWrapper = ( diff --git a/src/modules/feature/media-shelf/MediaBoardExternalToolElement.unit.ts b/src/modules/feature/media-shelf/MediaBoardExternalToolElement.unit.ts index 71214b2b04..5734c56ca2 100644 --- a/src/modules/feature/media-shelf/MediaBoardExternalToolElement.unit.ts +++ b/src/modules/feature/media-shelf/MediaBoardExternalToolElement.unit.ts @@ -29,7 +29,7 @@ import MediaBoardElementDisplay from "./MediaBoardElementDisplay.vue"; import MediaBoardExternalToolElement from "./MediaBoardExternalToolElement.vue"; import MediaBoardExternalToolElementMenu from "./MediaBoardExternalToolElementMenu.vue"; -jest.mock("@data-external-tool"); +vi.mock("@data-external-tool"); describe("MediaBoardExternalToolElement", () => { let useExternalToolDisplayStateMock: DeepMocked< diff --git a/src/modules/feature/media-shelf/MediaBoardLine.unit.ts b/src/modules/feature/media-shelf/MediaBoardLine.unit.ts index b693457c5a..fc87db9060 100644 --- a/src/modules/feature/media-shelf/MediaBoardLine.unit.ts +++ b/src/modules/feature/media-shelf/MediaBoardLine.unit.ts @@ -23,14 +23,14 @@ import MediaBoardLineHeader from "./MediaBoardLineHeader.vue"; import MediaBoardLineMenu from "./MediaBoardLineMenu.vue"; import MediaBoardExternalToolDeletedElement from "./MediaBoardExternalToolDeletedElement.vue"; -jest.mock("@vueuse/core", () => { +vi.mock("@vueuse/core", () => { return { ...jest.requireActual("@vueuse/core"), useMediaQuery: vi.fn(), }; }); -jest.mocked(useMediaQuery).mockReturnValue(ref(true)); +vi.mocked(useMediaQuery).mockReturnValue(ref(true)); describe("MediaBoardLine", () => { const getWrapper = ( diff --git a/src/modules/feature/media-shelf/MediaBoardLineHeader.unit.ts b/src/modules/feature/media-shelf/MediaBoardLineHeader.unit.ts index 950dd1a847..31c1374df5 100644 --- a/src/modules/feature/media-shelf/MediaBoardLineHeader.unit.ts +++ b/src/modules/feature/media-shelf/MediaBoardLineHeader.unit.ts @@ -8,7 +8,7 @@ import { createMock, DeepMocked } from "@golevelup/ts-jest"; import { shallowMount } from "@vue/test-utils"; import MediaBoardLineHeader from "./MediaBoardLineHeader.vue"; -jest.mock("@data-board"); +vi.mock("@data-board"); describe("MediaBoardLineHeader", () => { let useBoardFocusHandlerMock: DeepMocked< @@ -34,7 +34,7 @@ describe("MediaBoardLineHeader", () => { useBoardFocusHandlerMock = createMock>(); - jest.mocked(useBoardFocusHandler).mockReturnValue(useBoardFocusHandlerMock); + vi.mocked(useBoardFocusHandler).mockReturnValue(useBoardFocusHandlerMock); }); afterEach(() => { diff --git a/src/modules/feature/media-shelf/data/mediaBoardState.composable.unit.ts b/src/modules/feature/media-shelf/data/mediaBoardState.composable.unit.ts index 936d4c35e4..b53eda4597 100644 --- a/src/modules/feature/media-shelf/data/mediaBoardState.composable.unit.ts +++ b/src/modules/feature/media-shelf/data/mediaBoardState.composable.unit.ts @@ -10,10 +10,10 @@ import { createMock, DeepMocked } from "@golevelup/ts-jest"; import { useMediaBoardApi } from "./mediaBoardApi.composable"; import { useSharedMediaBoardState as useMediaBoardState } from "./mediaBoardState.composable"; -jest.mock("./mediaBoardApi.composable"); -jest.mock("@/components/error-handling/ErrorHandler.composable"); +vi.mock("./mediaBoardApi.composable"); +vi.mock("@/components/error-handling/ErrorHandler.composable"); -jest.mock( +vi.mock( "@/utils/create-shared-composable", () => ({ createTestableSharedComposable: (composable) => composable, @@ -28,8 +28,8 @@ describe("mediaBoardState.composable", () => { mediaBoardApiMock = createMock>(); useErrorHandlerMock = createMock>(); - jest.mocked(useMediaBoardApi).mockReturnValue(mediaBoardApiMock); - jest.mocked(useErrorHandler).mockReturnValue(useErrorHandlerMock); + vi.mocked(useMediaBoardApi).mockReturnValue(mediaBoardApiMock); + vi.mocked(useErrorHandler).mockReturnValue(useErrorHandlerMock); }); afterEach(() => { diff --git a/src/modules/page/board/ColumnBoard.page.unit.ts b/src/modules/page/board/ColumnBoard.page.unit.ts index 12ad4121b3..0ffbb238b1 100644 --- a/src/modules/page/board/ColumnBoard.page.unit.ts +++ b/src/modules/page/board/ColumnBoard.page.unit.ts @@ -5,7 +5,7 @@ import { import { shallowMount } from "@vue/test-utils"; import ColumnBoardPage from "./ColumnBoard.page.vue"; -jest.mock("@/utils/pageTitle", () => ({ +vi.mock("@/utils/pageTitle", () => ({ buildPageTitle: (pageTitle) => pageTitle ?? "", })); diff --git a/src/modules/page/class-members/ClassMembers.page.unit.ts b/src/modules/page/class-members/ClassMembers.page.unit.ts index 734a0fe931..f31a43889f 100644 --- a/src/modules/page/class-members/ClassMembers.page.unit.ts +++ b/src/modules/page/class-members/ClassMembers.page.unit.ts @@ -14,7 +14,7 @@ import { } from "@@/tests/test-utils/setup"; import vueDompurifyHTMLPlugin from "vue-dompurify-html"; -jest.mock("@data-group", () => { +vi.mock("@data-group", () => { return { ...jest.requireActual("@data-group"), useGroupState: vi.fn(), @@ -55,7 +55,7 @@ describe("@pages/ClassMembers.page.vue", () => { beforeEach(() => { useGroupStateMock = createMock>(); - jest.mocked(useGroupState).mockReturnValue(useGroupStateMock); + vi.mocked(useGroupState).mockReturnValue(useGroupStateMock); }); afterEach(() => { diff --git a/src/modules/page/class-members/ClassMembersInfoBox.unit.ts b/src/modules/page/class-members/ClassMembersInfoBox.unit.ts index ec319df512..0d2f889cac 100644 --- a/src/modules/page/class-members/ClassMembersInfoBox.unit.ts +++ b/src/modules/page/class-members/ClassMembersInfoBox.unit.ts @@ -6,7 +6,7 @@ import { createMock, DeepMocked } from "@golevelup/ts-jest"; import { createTestingVuetify } from "@@/tests/test-utils/setup"; import vueDompurifyHTMLPlugin from "vue-dompurify-html"; -jest.mock("@data-system"); +vi.mock("@data-system"); describe("ClassMembersInfoBox", () => { let useSystemApiMock: DeepMocked>; @@ -31,7 +31,7 @@ describe("ClassMembersInfoBox", () => { beforeEach(() => { useSystemApiMock = createMock>(); - jest.mocked(useSystemApi).mockReturnValue(useSystemApiMock); + vi.mocked(useSystemApi).mockReturnValue(useSystemApiMock); useSystemApiMock.getSystem.mockResolvedValue({ id: "systemId", diff --git a/src/modules/page/media-shelf/MediaShelf.page.unit.ts b/src/modules/page/media-shelf/MediaShelf.page.unit.ts index 3fa5ea2ab1..6455f8a5ee 100644 --- a/src/modules/page/media-shelf/MediaShelf.page.unit.ts +++ b/src/modules/page/media-shelf/MediaShelf.page.unit.ts @@ -13,14 +13,14 @@ import { flushPromises, mount } from "@vue/test-utils"; import { ref } from "vue"; import MediaShelfPage from "./MediaShelf.page.vue"; -jest.mock("@feature-media-shelf", () => { +vi.mock("@feature-media-shelf", () => { return { ...jest.requireActual("@feature-media-shelf"), useSharedMediaBoardState: vi.fn(), }; }); -jest.mock("@/utils/pageTitle", () => ({ +vi.mock("@/utils/pageTitle", () => ({ buildPageTitle: (pageTitle) => pageTitle ?? "", })); diff --git a/src/modules/page/room/RoomParticipants.page.unit.ts b/src/modules/page/room/RoomParticipants.page.unit.ts index c7e88fb092..0a396f5576 100644 --- a/src/modules/page/room/RoomParticipants.page.unit.ts +++ b/src/modules/page/room/RoomParticipants.page.unit.ts @@ -15,7 +15,7 @@ import { nextTick } from "vue"; import { Breadcrumb } from "@/components/templates/default-wireframe.types"; import { participants } from "@data-room"; -jest.mock("vue-router"); +vi.mock("vue-router"); const useRouterMock = useRouter; const useRouteMock = useRoute; useRouteMock.mockReturnValue({ params: { id: "room-id" } }); diff --git a/src/modules/ui/board/BoardMenuActionDelete.unit.ts b/src/modules/ui/board/BoardMenuActionDelete.unit.ts index 6f9bcdf882..2dfedf44b1 100644 --- a/src/modules/ui/board/BoardMenuActionDelete.unit.ts +++ b/src/modules/ui/board/BoardMenuActionDelete.unit.ts @@ -11,8 +11,8 @@ import { BoardMenuScope } from "./board-menu-scope"; import BoardMenuAction from "./BoardMenuAction.vue"; import { MENU_SCOPE } from "./injection-tokens"; -jest.mock("@ui-confirmation-dialog"); -const mockedUseDeleteConfirmationDialog = jest.mocked( +vi.mock("@ui-confirmation-dialog"); +const mockedUseDeleteConfirmationDialog = vi.mocked( useDeleteConfirmationDialog ); diff --git a/src/modules/ui/confirmation-dialog/ConfirmationDialog.unit.ts b/src/modules/ui/confirmation-dialog/ConfirmationDialog.unit.ts index ff1c1cf439..7014ec9490 100644 --- a/src/modules/ui/confirmation-dialog/ConfirmationDialog.unit.ts +++ b/src/modules/ui/confirmation-dialog/ConfirmationDialog.unit.ts @@ -3,9 +3,9 @@ import { ref } from "vue"; import { useInternalConfirmationDialog } from "./Confirmation.composable"; import DeleteConfirmation from "./ConfirmationDialog.vue"; import { createTestingI18n } from "@@/tests/test-utils/setup"; -jest.mock("./Confirmation.composable"); +vi.mock("./Confirmation.composable"); -const mockedUseInternalConfirmationDialog = jest.mocked( +const mockedUseInternalConfirmationDialog = vi.mocked( useInternalConfirmationDialog ); diff --git a/src/modules/ui/confirmation-dialog/DeleteConfirmation.composable.unit.ts b/src/modules/ui/confirmation-dialog/DeleteConfirmation.composable.unit.ts index 52c917891c..8f9f8b2406 100644 --- a/src/modules/ui/confirmation-dialog/DeleteConfirmation.composable.unit.ts +++ b/src/modules/ui/confirmation-dialog/DeleteConfirmation.composable.unit.ts @@ -3,9 +3,9 @@ import { mountComposable } from "@@/tests/test-utils/mountComposable"; import { useDeleteConfirmationDialog } from "./DeleteConfirmation.composable"; import { createTestingI18n } from "@@/tests/test-utils/setup"; import { useI18n } from "vue-i18n"; -jest.mock("./Confirmation.composable"); +vi.mock("./Confirmation.composable"); -jest.mock("vue-i18n", () => { +vi.mock("vue-i18n", () => { return { ...jest.requireActual("vue-i18n"), useI18n: vi.fn(), diff --git a/src/modules/ui/layout/sidebar/Sidebar.unit.ts b/src/modules/ui/layout/sidebar/Sidebar.unit.ts index 20d5533fd7..ef56a5cd09 100644 --- a/src/modules/ui/layout/sidebar/Sidebar.unit.ts +++ b/src/modules/ui/layout/sidebar/Sidebar.unit.ts @@ -20,12 +20,12 @@ import { SchulcloudTheme } from "@/serverApi/v3"; import { envsFactory } from "@@/tests/test-utils"; import { useSidebarSelection } from "./SidebarSelection.composable"; -jest.mock("vue-router", () => ({ +vi.mock("vue-router", () => ({ useRoute: () => ({ path: "rooms/courses-list" }), })); -jest.mock("./SidebarSelection.composable"); -const mockedUseSidebarSelection = jest.mocked(useSidebarSelection); +vi.mock("./SidebarSelection.composable"); +const mockedUseSidebarSelection = vi.mocked(useSidebarSelection); const setup = (permissions?: string[]) => { const authModule = createModuleMocks(AuthModule, { diff --git a/src/modules/ui/layout/sidebar/SidebarCategoryItem.unit.ts b/src/modules/ui/layout/sidebar/SidebarCategoryItem.unit.ts index 4b1a036fc7..909d6492ec 100644 --- a/src/modules/ui/layout/sidebar/SidebarCategoryItem.unit.ts +++ b/src/modules/ui/layout/sidebar/SidebarCategoryItem.unit.ts @@ -31,12 +31,12 @@ const groupItem: SidebarGroupItem = { ], }; -jest.mock("vue-router", () => ({ +vi.mock("vue-router", () => ({ useRoute: () => ({ path: "rooms/courses-list" }), })); -jest.mock("./SidebarSelection.composable"); -const mockedUseSidebarSelection = jest.mocked(useSidebarSelection); +vi.mock("./SidebarSelection.composable"); +const mockedUseSidebarSelection = vi.mocked(useSidebarSelection); describe("@ui-layout/SidebarCategoryItem", () => { mockedUseSidebarSelection.mockReturnValue({ isActive: ref(false) }); diff --git a/src/modules/ui/layout/sidebar/SidebarItem.unit.ts b/src/modules/ui/layout/sidebar/SidebarItem.unit.ts index 1424ecb846..dfb75d1dbb 100644 --- a/src/modules/ui/layout/sidebar/SidebarItem.unit.ts +++ b/src/modules/ui/layout/sidebar/SidebarItem.unit.ts @@ -21,12 +21,12 @@ const childItem: SidebarSingleItem = { to: "/link", }; -jest.mock("vue-router", () => ({ +vi.mock("vue-router", () => ({ useRoute: () => ({ path: "rooms/courses-list" }), })); -jest.mock("./SidebarSelection.composable"); -const mockedUseSidebarSelection = jest.mocked(useSidebarSelection); +vi.mock("./SidebarSelection.composable"); +const mockedUseSidebarSelection = vi.mocked(useSidebarSelection); describe("@ui-layout/SidebarItem", () => { const setup = (sidebarItem: SidebarSingleItem) => { diff --git a/src/modules/ui/layout/sidebar/SidebarSelection.composable.unit.ts b/src/modules/ui/layout/sidebar/SidebarSelection.composable.unit.ts index 18dd8402cd..5f50a7d5cc 100644 --- a/src/modules/ui/layout/sidebar/SidebarSelection.composable.unit.ts +++ b/src/modules/ui/layout/sidebar/SidebarSelection.composable.unit.ts @@ -9,11 +9,11 @@ import { ref } from "vue"; import { RoomVariant, useRoomDetailsStore } from "@data-room"; import { BoardContextType } from "@/types/board/BoardContext"; -jest.mock("vue-router"); +vi.mock("vue-router"); const useRouteMock = useRoute; -jest.mock("@data-board/BoardPageInformation.composable"); -const mockedUseSharedBoardPageInformation = jest.mocked( +vi.mock("@data-board/BoardPageInformation.composable"); +const mockedUseSharedBoardPageInformation = vi.mocked( useSharedBoardPageInformation ); diff --git a/src/modules/ui/light-box/LightBox.unit.ts b/src/modules/ui/light-box/LightBox.unit.ts index 645d7c6f56..e5d550f75c 100644 --- a/src/modules/ui/light-box/LightBox.unit.ts +++ b/src/modules/ui/light-box/LightBox.unit.ts @@ -15,10 +15,10 @@ import { import { LightBoxOptions, useInternalLightBox } from "./LightBox.composable"; import LightBox from "./LightBox.vue"; -jest.mock("./LightBox.composable"); -jest.mock("@/utils/fileHelper"); +vi.mock("./LightBox.composable"); +vi.mock("@/utils/fileHelper"); -const mockedUseInternalLightBox = jest.mocked(useInternalLightBox); +const mockedUseInternalLightBox = vi.mocked(useInternalLightBox); describe("LightBox", () => { beforeEach(() => { @@ -40,7 +40,7 @@ describe("LightBox", () => { name: props.name ?? "test-name", }); - const mockedDownloadFile = jest.mocked(downloadFile).mockReturnValueOnce(); + const mockedDownloadFile = vi.mocked(downloadFile).mockReturnValueOnce(); mockedUseInternalLightBox.mockReturnValue({ close: close, diff --git a/src/modules/ui/room-details/RoomBoardCard.unit.ts b/src/modules/ui/room-details/RoomBoardCard.unit.ts index 5347d06e91..54526cd3fb 100644 --- a/src/modules/ui/room-details/RoomBoardCard.unit.ts +++ b/src/modules/ui/room-details/RoomBoardCard.unit.ts @@ -16,7 +16,7 @@ import { createModuleMocks } from "@/utils/mock-store-module"; import { createMock } from "@golevelup/ts-jest"; import { Router, useRouter } from "vue-router"; import { VListItem, VMenu } from "vuetify/lib/components/index.mjs"; -jest.mock("vue-router"); +vi.mock("vue-router"); const useRouterMock = useRouter; type BoardData = { diff --git a/src/modules/ui/skip-link/SkipLink.unit.ts b/src/modules/ui/skip-link/SkipLink.unit.ts index 270ad9eff5..f58dd20401 100644 --- a/src/modules/ui/skip-link/SkipLink.unit.ts +++ b/src/modules/ui/skip-link/SkipLink.unit.ts @@ -2,7 +2,7 @@ import { createTestingI18n } from "@@/tests/test-utils/setup"; import { mount } from "@vue/test-utils"; import SkipLink from "./SkipLink.vue"; -jest.mock("vue-router", () => ({ +vi.mock("vue-router", () => ({ useRoute: () => ({ hash: "#" }), })); diff --git a/src/modules/util/board/editMode.composable.unit.ts b/src/modules/util/board/editMode.composable.unit.ts index bedc95ad12..106aa674c6 100644 --- a/src/modules/util/board/editMode.composable.unit.ts +++ b/src/modules/util/board/editMode.composable.unit.ts @@ -5,8 +5,8 @@ import { useMediaBoardEditMode, } from "./editMode.composable"; -jest.mock("@data-board"); -const mockedUseBoardPermissions = jest.mocked(useBoardPermissions); +vi.mock("@data-board"); +const mockedUseBoardPermissions = vi.mocked(useBoardPermissions); describe("editMode.composable", () => { describe("when using edit mode for course boards", () => { diff --git a/src/modules/util/input-masks/InputMask.unit.ts b/src/modules/util/input-masks/InputMask.unit.ts index 1ad1c560ad..99bbab23be 100644 --- a/src/modules/util/input-masks/InputMask.unit.ts +++ b/src/modules/util/input-masks/InputMask.unit.ts @@ -2,7 +2,7 @@ import { createInputMask } from "./InputMask.factory"; import { DirectiveBinding, FunctionDirective, VNode } from "vue"; import { vMaska, MaskInputOptions } from "maska"; -jest.mock("maska"); +vi.mock("maska"); const maskaDirectiveMock = { element: {} as unknown as HTMLElement, diff --git a/src/pages/ErrorPage.unit.ts b/src/pages/ErrorPage.unit.ts index 171c288db0..c78989671c 100644 --- a/src/pages/ErrorPage.unit.ts +++ b/src/pages/ErrorPage.unit.ts @@ -11,11 +11,11 @@ import { } from "@@/tests/test-utils/setup"; import { nextTick } from "vue"; -jest.mock("@/utils/pageTitle", () => ({ +vi.mock("@/utils/pageTitle", () => ({ buildPageTitle: (pageTitle) => pageTitle ?? "", })); -jest.mock("@/composables/locale-storage.composable", () => ({ +vi.mock("@/composables/locale-storage.composable", () => ({ useStorage: () => ({ set: vi.fn(), get: vi.fn(), diff --git a/src/pages/administration/ClassOverview.page.unit.ts b/src/pages/administration/ClassOverview.page.unit.ts index cad56b7324..c57516faa2 100644 --- a/src/pages/administration/ClassOverview.page.unit.ts +++ b/src/pages/administration/ClassOverview.page.unit.ts @@ -27,14 +27,14 @@ import { Router, useRoute, useRouter } from "vue-router"; import { VBtn, VDataTableServer } from "vuetify/lib/components/index.mjs"; import ClassOverview from "./ClassOverview.page.vue"; -jest.mock("vue-router", () => ({ +vi.mock("vue-router", () => ({ useRoute: vi.fn(), useRouter: vi.fn(), })); const useRouteMock = useRoute; const useRouterMock = useRouter; -jest.mock("@/utils/pageTitle", () => ({ +vi.mock("@/utils/pageTitle", () => ({ buildPageTitle: (pageTitle) => pageTitle ?? "", })); diff --git a/src/pages/administration/RoomsOverview.page.unit.ts b/src/pages/administration/RoomsOverview.page.unit.ts index e4fa5ba8ed..da2fb9b89e 100644 --- a/src/pages/administration/RoomsOverview.page.unit.ts +++ b/src/pages/administration/RoomsOverview.page.unit.ts @@ -25,12 +25,12 @@ import { Router, useRoute, useRouter } from "vue-router"; import { VDataTableServer } from "vuetify/lib/components/index.mjs"; import RoomsOverview from "./RoomsOverview.page.vue"; -jest.mock("vue-router", () => ({ +vi.mock("vue-router", () => ({ useRoute: vi.fn(), useRouter: vi.fn(), })); -jest.mock("@data-room", () => { +vi.mock("@data-room", () => { return { ...jest.requireActual("@data-room"), useCourseList: vi.fn(), @@ -41,7 +41,7 @@ jest.mock("@data-room", () => { const useRouteMock = useRoute; const useRouterMock = useRouter; -jest.mock("@/utils/pageTitle", () => ({ +vi.mock("@/utils/pageTitle", () => ({ buildPageTitle: (pageTitle) => pageTitle ?? "", })); @@ -121,8 +121,8 @@ describe("RoomsOverview", () => { stopSynchronization: vi.fn(), }); - jest.mocked(useCourseList).mockReturnValue(useCourseListMock); - jest.mocked(useCourseApi).mockReturnValue(useCourseApiMock); + vi.mocked(useCourseList).mockReturnValue(useCourseListMock); + vi.mocked(useCourseApi).mockReturnValue(useCourseApiMock); }); afterEach(() => { diff --git a/src/pages/administration/SchoolSettings.page.unit.ts b/src/pages/administration/SchoolSettings.page.unit.ts index b2eb65130b..1f48f83529 100644 --- a/src/pages/administration/SchoolSettings.page.unit.ts +++ b/src/pages/administration/SchoolSettings.page.unit.ts @@ -13,13 +13,13 @@ import { createTestingVuetify, } from "@@/tests/test-utils/setup"; import { nextTick, reactive } from "vue"; -jest.mock("vue-router"); +vi.mock("vue-router"); const useRouteMock = >>( useRoute ); -jest.mock("@/utils/pageTitle", () => ({ +vi.mock("@/utils/pageTitle", () => ({ buildPageTitle: (pageTitle) => pageTitle ?? "", })); diff --git a/src/pages/administration/migration.unit.ts b/src/pages/administration/migration.unit.ts index 3a0e501956..9671f61a6c 100644 --- a/src/pages/administration/migration.unit.ts +++ b/src/pages/administration/migration.unit.ts @@ -18,11 +18,11 @@ import { } from "@@/tests/test-utils/setup"; import setupStores from "@@/tests/test-utils/setupStores"; -jest.mock("@/utils/pageTitle", () => ({ +vi.mock("@/utils/pageTitle", () => ({ buildPageTitle: (pageTitle) => pageTitle ?? "", })); -jest.mock("vue-router"); +vi.mock("vue-router"); const useRouterMock = useRouter; const router = createMock(); diff --git a/src/pages/administration/school-external-tool/SchoolExternalToolConfigurator.page.unit.ts b/src/pages/administration/school-external-tool/SchoolExternalToolConfigurator.page.unit.ts index 9c94de71c2..87ca581751 100644 --- a/src/pages/administration/school-external-tool/SchoolExternalToolConfigurator.page.unit.ts +++ b/src/pages/administration/school-external-tool/SchoolExternalToolConfigurator.page.unit.ts @@ -26,11 +26,11 @@ import vueDompurifyHTMLPlugin from "vue-dompurify-html"; import { Router, useRouter } from "vue-router"; import SchoolExternalToolConfigurator from "./SchoolExternalToolConfigurator.page.vue"; -jest.mock("@/utils/pageTitle", () => ({ +vi.mock("@/utils/pageTitle", () => ({ buildPageTitle: (pageTitle) => pageTitle ?? "", })); -jest.mock("vue-router", () => ({ +vi.mock("vue-router", () => ({ useRouter: vi.fn(), })); diff --git a/src/pages/administration/student-create.unit.js b/src/pages/administration/student-create.unit.js index baaaf653ee..3049542f69 100644 --- a/src/pages/administration/student-create.unit.js +++ b/src/pages/administration/student-create.unit.js @@ -11,7 +11,7 @@ import { nextTick } from "vue"; import { createStore } from "vuex"; import NewStudent from "./StudentCreate.page.vue"; -jest.mock("@/utils/pageTitle", () => ({ +vi.mock("@/utils/pageTitle", () => ({ buildPageTitle: (pageTitle) => pageTitle ?? "", })); diff --git a/src/pages/administration/teacher-create.unit.js b/src/pages/administration/teacher-create.unit.js index 017d3b11db..0af7527269 100644 --- a/src/pages/administration/teacher-create.unit.js +++ b/src/pages/administration/teacher-create.unit.js @@ -12,7 +12,7 @@ import setupStores from "@@/tests/test-utils/setupStores"; import { createStore } from "vuex"; import { default as NewTeacher } from "./TeacherCreate.page.vue"; -jest.mock("@/utils/pageTitle", () => ({ +vi.mock("@/utils/pageTitle", () => ({ buildPageTitle: (pageTitle) => pageTitle ?? "", })); diff --git a/src/pages/context-external-tool/CourseContextExternalToolConfigurator.page.unit.ts b/src/pages/context-external-tool/CourseContextExternalToolConfigurator.page.unit.ts index 35590f8218..4a2a701745 100644 --- a/src/pages/context-external-tool/CourseContextExternalToolConfigurator.page.unit.ts +++ b/src/pages/context-external-tool/CourseContextExternalToolConfigurator.page.unit.ts @@ -20,7 +20,7 @@ import vueDompurifyHTMLPlugin from "vue-dompurify-html"; import { Router, useRouter } from "vue-router"; import CourseContextExternalToolConfigurator from "./CourseContextExternalToolConfigurator.page.vue"; -jest.mock("vue-router", () => ({ +vi.mock("vue-router", () => ({ useRoute: vi.fn(), useRouter: vi.fn(), })); diff --git a/src/pages/course-rooms/CourseRoomDetails.page.unit.ts b/src/pages/course-rooms/CourseRoomDetails.page.unit.ts index 02b03f5f65..52368fc712 100644 --- a/src/pages/course-rooms/CourseRoomDetails.page.unit.ts +++ b/src/pages/course-rooms/CourseRoomDetails.page.unit.ts @@ -41,7 +41,7 @@ import { VBtn } from "vuetify/lib/components/index.mjs"; import CourseRoomDetailsPage from "./CourseRoomDetails.page.vue"; import RoomExternalToolsOverview from "./tools/RoomExternalToolsOverview.vue"; -jest.mock("./tools/RoomExternalToolsOverview.vue"); +vi.mock("./tools/RoomExternalToolsOverview.vue"); const mockData: SingleColumnBoardResponse = { roomId: "123", diff --git a/src/pages/course-rooms/tools/RoomExternalToolsOverview.unit.ts b/src/pages/course-rooms/tools/RoomExternalToolsOverview.unit.ts index 54c12d0b10..cf2f6496e4 100644 --- a/src/pages/course-rooms/tools/RoomExternalToolsOverview.unit.ts +++ b/src/pages/course-rooms/tools/RoomExternalToolsOverview.unit.ts @@ -26,7 +26,7 @@ import { ref } from "vue"; import RoomExternalToolsOverview from "./RoomExternalToolsOverview.vue"; import RoomExternalToolsSection from "./RoomExternalToolsSection.vue"; -jest.mock("@data-external-tool"); +vi.mock("@data-external-tool"); describe("RoomExternalToolOverview", () => { let useExternalToolDisplayListStateMock: DeepMocked< diff --git a/src/pages/course-rooms/tools/RoomExternalToolsSection.unit.ts b/src/pages/course-rooms/tools/RoomExternalToolsSection.unit.ts index d0196502ff..1778e4fadb 100644 --- a/src/pages/course-rooms/tools/RoomExternalToolsSection.unit.ts +++ b/src/pages/course-rooms/tools/RoomExternalToolsSection.unit.ts @@ -19,7 +19,7 @@ import { Router, useRouter } from "vue-router"; import RoomExternalToolsErrorDialog from "./RoomExternalToolsErrorDialog.vue"; import RoomExternalToolsSection from "./RoomExternalToolsSection.vue"; -jest.mock("vue-router", () => ({ +vi.mock("vue-router", () => ({ useRoute: vi.fn(), useRouter: vi.fn(), })); diff --git a/src/pages/h5p/H5PEditor.page.unit.ts b/src/pages/h5p/H5PEditor.page.unit.ts index d8972ebe4c..49b65989ca 100644 --- a/src/pages/h5p/H5PEditor.page.unit.ts +++ b/src/pages/h5p/H5PEditor.page.unit.ts @@ -6,7 +6,7 @@ import { } from "@@/tests/test-utils/setup"; import { H5PContentParentType } from "@/h5pEditorApi/v3"; -jest.mock("vue-router", () => ({ +vi.mock("vue-router", () => ({ useRoute: () => ({ params: { id: "test-id" }, query: {} }), })); diff --git a/src/pages/h5p/H5PPlayer.page.unit.ts b/src/pages/h5p/H5PPlayer.page.unit.ts index fa8e0b8719..063913db86 100644 --- a/src/pages/h5p/H5PPlayer.page.unit.ts +++ b/src/pages/h5p/H5PPlayer.page.unit.ts @@ -2,7 +2,7 @@ import { mount } from "@vue/test-utils"; import H5pPlayerPage from "./H5PPlayer.page.vue"; import { createTestingI18n } from "@@/tests/test-utils/setup"; -jest.mock("vue-router", () => ({ +vi.mock("vue-router", () => ({ useRoute: () => ({ params: { id: "test-id" }, query: {} }), })); diff --git a/src/pages/tasks/TaskOverview.unit.ts b/src/pages/tasks/TaskOverview.unit.ts index 80e825070d..c8039a4048 100644 --- a/src/pages/tasks/TaskOverview.unit.ts +++ b/src/pages/tasks/TaskOverview.unit.ts @@ -6,7 +6,7 @@ import EnvConfigModule from "@/store/env-config"; import setupStores from "@@/tests/test-utils/setupStores"; import { createTestingI18n } from "@@/tests/test-utils/setup"; -jest.mock("@/utils/pageTitle", () => ({ +vi.mock("@/utils/pageTitle", () => ({ buildPageTitle: (pageTitle) => pageTitle ?? "", })); diff --git a/src/pages/user-login-migration/UserLoginMigrationConsent.page.unit.ts b/src/pages/user-login-migration/UserLoginMigrationConsent.page.unit.ts index 0f69f332cf..e0756078b3 100644 --- a/src/pages/user-login-migration/UserLoginMigrationConsent.page.unit.ts +++ b/src/pages/user-login-migration/UserLoginMigrationConsent.page.unit.ts @@ -15,7 +15,7 @@ import { createTestingVuetify, } from "@@/tests/test-utils/setup"; -jest.mock("@/utils/pageTitle", () => ({ +vi.mock("@/utils/pageTitle", () => ({ buildPageTitle: (pageTitle) => pageTitle ?? "", })); diff --git a/src/pages/user-login-migration/UserLoginMigrationError.page.unit.ts b/src/pages/user-login-migration/UserLoginMigrationError.page.unit.ts index 4dd8377262..bb6f5362eb 100644 --- a/src/pages/user-login-migration/UserLoginMigrationError.page.unit.ts +++ b/src/pages/user-login-migration/UserLoginMigrationError.page.unit.ts @@ -17,7 +17,7 @@ import { createTestingVuetify, } from "@@/tests/test-utils/setup"; -jest.mock("@/utils/pageTitle", () => ({ +vi.mock("@/utils/pageTitle", () => ({ buildPageTitle: (pageTitle) => pageTitle ?? "", })); diff --git a/src/pages/user-login-migration/UserLoginMigrationSuccess.page.unit.ts b/src/pages/user-login-migration/UserLoginMigrationSuccess.page.unit.ts index efa7182a0e..80250f29d2 100644 --- a/src/pages/user-login-migration/UserLoginMigrationSuccess.page.unit.ts +++ b/src/pages/user-login-migration/UserLoginMigrationSuccess.page.unit.ts @@ -9,7 +9,7 @@ import { createTestingVuetify, } from "@@/tests/test-utils/setup"; -jest.mock("@/utils/pageTitle", () => ({ +vi.mock("@/utils/pageTitle", () => ({ buildPageTitle: (pageTitle) => pageTitle ?? "", })); diff --git a/src/router/guards/permission.guard.unit.ts b/src/router/guards/permission.guard.unit.ts index 2b152d844d..34a2221c95 100644 --- a/src/router/guards/permission.guard.unit.ts +++ b/src/router/guards/permission.guard.unit.ts @@ -5,7 +5,7 @@ import Mock = jest.Mock; const mockError = vi.fn(); -jest.mock("@/store", () => ({ +vi.mock("@/store", () => ({ authModule: { getUserPermissions: ["validPermission_1", "validPermission_2"], }, diff --git a/src/router/guards/validate-query-parameters.guard.unit.ts b/src/router/guards/validate-query-parameters.guard.unit.ts index 90c787d8a6..6b9eb946c8 100644 --- a/src/router/guards/validate-query-parameters.guard.unit.ts +++ b/src/router/guards/validate-query-parameters.guard.unit.ts @@ -5,13 +5,13 @@ import { validateQueryParameters } from "@/router/guards/validate-query-paramete import { isMongoId } from "@/utils/validationUtil"; import Mock = jest.Mock; -jest.mock("@/store", () => ({ +vi.mock("@/store", () => ({ applicationErrorModule: { setError: vi.fn(), }, })); -jest.mock("@/composables/application-error.composable", () => ({ +vi.mock("@/composables/application-error.composable", () => ({ useApplicationError: () => ({ createApplicationError: vi.fn(() => ({ status: 400, diff --git a/src/store/finished-tasks.unit.ts b/src/store/finished-tasks.unit.ts index b9fd271bd7..3f2b27a98c 100644 --- a/src/store/finished-tasks.unit.ts +++ b/src/store/finished-tasks.unit.ts @@ -12,7 +12,7 @@ import { AxiosInstance } from "axios"; * @param result the result of the task filter * @returns */ -jest.mock("axios"); +vi.mock("axios"); initializeAxios({ // get: () => { // return { data: [] }; diff --git a/src/utils/api.unit.ts b/src/utils/api.unit.ts index 1c3ddea7d0..b0f667350a 100644 --- a/src/utils/api.unit.ts +++ b/src/utils/api.unit.ts @@ -4,8 +4,8 @@ import axios, { isAxiosError } from "axios"; import { $axios, initializeAxios, mapAxiosErrorToResponseError } from "./api"; import { mount } from "@vue/test-utils"; -jest.mock("axios"); -const mockedIsAxiosError = jest.mocked(isAxiosError); +vi.mock("axios"); +const mockedIsAxiosError = vi.mocked(isAxiosError); describe("AxiosInstance", () => { describe("initializeAxios", () => { diff --git a/tests/test-utils/api-mocks/fileStorageApiMock.ts b/tests/test-utils/api-mocks/fileStorageApiMock.ts index 887a593943..d533630041 100644 --- a/tests/test-utils/api-mocks/fileStorageApiMock.ts +++ b/tests/test-utils/api-mocks/fileStorageApiMock.ts @@ -19,7 +19,7 @@ export const setupFileStorageApiMock = (props: Props = {}) => { uploadFromUrlMock, getFileRecordMock, } = props; - const mockedFileStorageApi = jest.mocked(useFileStorageApi); + const mockedFileStorageApi = vi.mocked(useFileStorageApi); const getFileRecord = getFileRecordMock ?? vi.fn(() => ref()); diff --git a/tests/test-utils/composable-mocks/setupConfirmationComposableMock.ts b/tests/test-utils/composable-mocks/setupConfirmationComposableMock.ts index 81d358be4a..b8548fe701 100644 --- a/tests/test-utils/composable-mocks/setupConfirmationComposableMock.ts +++ b/tests/test-utils/composable-mocks/setupConfirmationComposableMock.ts @@ -8,7 +8,7 @@ interface Props { export default function setupConfirmationComposableMock(props: Props = {}) { const { askConfirmationMock } = props; - const confirmationMock = jest.mocked(useConfirmationDialog); + const confirmationMock = vi.mocked(useConfirmationDialog); const askConfirmation = askConfirmationMock ?? vi.fn(); const isDialogOpen = ref(false); diff --git a/tests/test-utils/composable-mocks/setupDeleteConfirmationComposableMock.ts b/tests/test-utils/composable-mocks/setupDeleteConfirmationComposableMock.ts index f5587e72b6..e741d2f717 100644 --- a/tests/test-utils/composable-mocks/setupDeleteConfirmationComposableMock.ts +++ b/tests/test-utils/composable-mocks/setupDeleteConfirmationComposableMock.ts @@ -10,7 +10,7 @@ export default function setupDeleteConfirmationComposableMock( props: Props = {} ) { const { askDeleteConfirmationMock } = props; - const deleteConfirmationMock = jest.mocked(useDeleteConfirmationDialog); + const deleteConfirmationMock = vi.mocked(useDeleteConfirmationDialog); const askDeleteConfirmation = askDeleteConfirmationMock ?? vi.fn(); const isDeleteDialogOpen = ref(false); From eab7fd2b370a126fb52246d1107a982aa76c06d9 Mon Sep 17 00:00:00 2001 From: Odalys Adam Date: Mon, 21 Oct 2024 23:08:05 +0200 Subject: [PATCH 06/18] replace jest.clearAllMocks with vi.clearAllMocks --- src/components/administration/ExternalToolSection.unit.ts | 2 +- .../administration/ProvisioningOptionsPage.unit.ts | 4 ++-- .../external-tool-section-utils.composable.unit.ts | 2 +- src/components/copy-result-modal/CopyResultModal.unit.ts | 2 +- .../configuration/ContextExternalToolConfigurator.unit.ts | 2 +- .../configuration/ExternalToolConfigurator.unit.ts | 2 +- src/components/organisms/DataFilter/DataFilter.unit.ts | 2 +- .../DataFilter/composables/localStorage.composable.unit.ts | 2 +- src/components/organisms/administration/ImportUsers.unit.ts | 2 +- src/components/rooms/RoomExternalToolCard.unit.ts | 2 +- src/components/share/ImportModal.unit.ts | 2 +- src/layouts/LoggedIn.unit.ts | 2 +- src/modules/data/board/BoardApi.composable.unit.ts | 2 +- src/modules/data/board/CardRequestPool.composable.unit.ts | 2 +- src/modules/data/board/boardInactivity.composable.unit.ts | 6 +++--- src/modules/data/board/socket/socket.unit.ts | 2 +- ...ontextExternalToolConfigurationStatus.composable.unit.ts | 2 +- .../data/external-tool/ExternalToolApi.composable.unit.ts | 2 +- .../ExternalToolLaunchState.composable.unit.ts | 2 +- .../external-tool/SchoolExternalToolApi.composable.unit.ts | 2 +- .../SchoolExternalToolUsage.composable.unit.ts | 2 +- .../external-tool/contextExternalToolApi.composable.unit.ts | 2 +- ...contextExternalToolConfigurationState.composable.unit.ts | 2 +- .../contextExternalToolState.composable.unit.ts | 2 +- .../externalToolDisplayListState.composable.unit.ts | 2 +- .../externalToolDisplayState.composable.unit.ts | 2 +- .../externalToolReferenceApi.composable.unit.ts | 2 +- src/modules/data/group/GroupApi.composable.unit.ts | 2 +- src/modules/data/group/GroupState.composable.unit.ts | 2 +- src/modules/data/group/groupListState.composable.unit.ts | 2 +- .../ProvisioningOptionsApi.composable.unit.ts | 2 +- .../ProvisioningOptionsState.composable.unit.ts | 2 +- src/modules/data/room/courseApi.composable.unit.ts | 2 +- src/modules/data/room/courseInfoApi.composable.unit.ts | 2 +- src/modules/data/room/courseList.composable.unit.ts | 2 +- src/modules/data/system/SystemApi.composable.unit.ts | 2 +- .../CollaborativeTextEditorNotifications.composable.unit.ts | 2 +- .../feature/board-deleted-element/DeletedElement.unit.ts | 2 +- .../board-drawing-element/DrawingContentElement.unit.ts | 2 +- .../board-external-tool-element/ExternalToolElement.unit.ts | 2 +- .../ExternalToolElementAlert.unit.ts | 2 +- .../ExternalToolElementConfigurationDialog.unit.ts | 2 +- .../composables/FileStorageNotifications.composable.unit.ts | 2 +- .../components/LinkContentElement.unit.ts | 2 +- .../components/LinkContentElementCreate.unit.ts | 2 +- .../composables/MetaTagExtractorApi.composable.unit.ts | 2 +- .../composables/PreviewGenerator.composable.unit.ts | 2 +- .../composables/SubmissionItemApi.composable.unit.ts | 2 +- src/modules/feature/board/board/Board.unit.ts | 2 +- src/modules/feature/board/card/CardHost.unit.ts | 2 +- .../feature/course-sync/GroupSelectionDialog.unit.ts | 2 +- .../course-sync/StartExsistingCourseSyncDialog.unit.ts | 2 +- .../feature/course-sync/StartNewCourseSyncDialog.unit.ts | 2 +- .../media-shelf/data/mediaBoardApi.composable.unit.ts | 2 +- .../media-shelf/data/mediaBoardState.composable.unit.ts | 2 +- src/modules/page/class-members/ClassMembers.page.unit.ts | 2 +- src/modules/page/class-members/ClassMembersInfoBox.unit.ts | 2 +- .../ui/confirmation-dialog/Confirmation.composable.unit.ts | 2 +- .../DeleteConfirmation.composable.unit.ts | 2 +- .../ui/layout/sidebar/SidebarSelection.composable.unit.ts | 2 +- src/modules/ui/light-box/LightBox.composable.unit.ts | 4 ++-- src/modules/util/board/BoardNotifier.composable.unit.ts | 2 +- .../util/device-detection/TouchDetection.composable.unit.ts | 2 +- .../error-notification.composable.unit.ts | 2 +- src/modules/util/input-masks/InputMask.unit.ts | 2 +- src/pages/administration/ClassOverview.page.unit.ts | 2 +- src/pages/administration/RoomsOverview.page.unit.ts | 2 +- src/pages/administration/migration.unit.ts | 2 +- .../SchoolExternalToolConfigurator.page.unit.ts | 2 +- .../CourseContextExternalToolConfigurator.page.unit.ts | 2 +- src/pages/course-rooms/CourseRoomOverview.page.unit.js | 2 +- .../course-rooms/tools/RoomExternalToolsOverview.unit.ts | 2 +- .../course-rooms/tools/RoomExternalToolsSection.unit.ts | 2 +- src/router/guards/permission.guard.unit.ts | 2 +- src/router/guards/validate-query-parameters.guard.unit.ts | 2 +- src/store/auth.unit.ts | 2 +- src/store/common-cartridge-import.unit.ts | 2 +- src/store/copy.unit.ts | 2 +- src/store/course-room-details.unit.ts | 2 +- src/store/courses.unit.js | 2 +- 80 files changed, 84 insertions(+), 84 deletions(-) diff --git a/src/components/administration/ExternalToolSection.unit.ts b/src/components/administration/ExternalToolSection.unit.ts index 8381449d4e..174085f4bc 100644 --- a/src/components/administration/ExternalToolSection.unit.ts +++ b/src/components/administration/ExternalToolSection.unit.ts @@ -114,7 +114,7 @@ describe("ExternalToolSection", () => { }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("when component is used", () => { diff --git a/src/components/administration/ProvisioningOptionsPage.unit.ts b/src/components/administration/ProvisioningOptionsPage.unit.ts index 2fdcd90e73..40eb30c235 100644 --- a/src/components/administration/ProvisioningOptionsPage.unit.ts +++ b/src/components/administration/ProvisioningOptionsPage.unit.ts @@ -90,7 +90,7 @@ describe("ProvisioningOptionsPage", () => { }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("breadcrumbs", () => { @@ -313,7 +313,7 @@ describe("ProvisioningOptionsPage", () => { describe("when disabling options", () => { beforeEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); const setup = async () => { useProvisioningOptionsStateMock.provisioningOptionsData.value = diff --git a/src/components/administration/external-tool-section-utils.composable.unit.ts b/src/components/administration/external-tool-section-utils.composable.unit.ts index 4b27d96a09..1fa7a85fe0 100644 --- a/src/components/administration/external-tool-section-utils.composable.unit.ts +++ b/src/components/administration/external-tool-section-utils.composable.unit.ts @@ -47,7 +47,7 @@ describe("useSchoolExternalToolUtils", () => { }; afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("getHeaders is called", () => { diff --git a/src/components/copy-result-modal/CopyResultModal.unit.ts b/src/components/copy-result-modal/CopyResultModal.unit.ts index b2e019eba3..42f1b18659 100644 --- a/src/components/copy-result-modal/CopyResultModal.unit.ts +++ b/src/components/copy-result-modal/CopyResultModal.unit.ts @@ -76,7 +76,7 @@ describe("@/components/copy-result-modal/CopyResultModal", () => { }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("basic functions", () => { diff --git a/src/components/external-tools/configuration/ContextExternalToolConfigurator.unit.ts b/src/components/external-tools/configuration/ContextExternalToolConfigurator.unit.ts index 573167b3f2..7741f0163f 100644 --- a/src/components/external-tools/configuration/ContextExternalToolConfigurator.unit.ts +++ b/src/components/external-tools/configuration/ContextExternalToolConfigurator.unit.ts @@ -82,7 +82,7 @@ describe("CourseContextExternalToolConfigurator", () => { }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("fetchData", () => { diff --git a/src/components/external-tools/configuration/ExternalToolConfigurator.unit.ts b/src/components/external-tools/configuration/ExternalToolConfigurator.unit.ts index 54ff4e298c..097843fb47 100644 --- a/src/components/external-tools/configuration/ExternalToolConfigurator.unit.ts +++ b/src/components/external-tools/configuration/ExternalToolConfigurator.unit.ts @@ -48,7 +48,7 @@ describe("ExternalToolConfigurator", () => { }; afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("Search box", () => { diff --git a/src/components/organisms/DataFilter/DataFilter.unit.ts b/src/components/organisms/DataFilter/DataFilter.unit.ts index afb489478f..e0364b2558 100644 --- a/src/components/organisms/DataFilter/DataFilter.unit.ts +++ b/src/components/organisms/DataFilter/DataFilter.unit.ts @@ -50,7 +50,7 @@ describe("@components/DataFilter/DataFilter.vue", () => { describe("should render the component", () => { afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); it("should render the component", () => { diff --git a/src/components/organisms/DataFilter/composables/localStorage.composable.unit.ts b/src/components/organisms/DataFilter/composables/localStorage.composable.unit.ts index 614a716758..6c8d4d5714 100644 --- a/src/components/organisms/DataFilter/composables/localStorage.composable.unit.ts +++ b/src/components/organisms/DataFilter/composables/localStorage.composable.unit.ts @@ -24,7 +24,7 @@ vi.mock("@vueuse/core", () => { describe("localStorage composable", () => { beforeEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); it("should initialize the default state", () => { diff --git a/src/components/organisms/administration/ImportUsers.unit.ts b/src/components/organisms/administration/ImportUsers.unit.ts index 96628baead..6d3c3461db 100644 --- a/src/components/organisms/administration/ImportUsers.unit.ts +++ b/src/components/organisms/administration/ImportUsers.unit.ts @@ -209,7 +209,7 @@ describe("@/components/molecules/importUsers", () => { }; afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); it("should set search data properties when search first name changes", async () => { diff --git a/src/components/rooms/RoomExternalToolCard.unit.ts b/src/components/rooms/RoomExternalToolCard.unit.ts index bcf00b72b3..a1b86800a3 100644 --- a/src/components/rooms/RoomExternalToolCard.unit.ts +++ b/src/components/rooms/RoomExternalToolCard.unit.ts @@ -47,7 +47,7 @@ describe("RoomExternalToolCard", () => { afterEach(() => { jest.resetAllMocks(); - jest.clearAllMocks(); + vi.clearAllMocks(); }); const getWrapper = (tool: ExternalToolDisplayData, canEdit: boolean) => { diff --git a/src/components/share/ImportModal.unit.ts b/src/components/share/ImportModal.unit.ts index 3a7dd0e19b..2dde89b66a 100644 --- a/src/components/share/ImportModal.unit.ts +++ b/src/components/share/ImportModal.unit.ts @@ -32,7 +32,7 @@ describe("@components/share/ImportModal", () => { }; beforeEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); it("should render with props", () => { diff --git a/src/layouts/LoggedIn.unit.ts b/src/layouts/LoggedIn.unit.ts index 1ace833ae3..fe8a7eac29 100644 --- a/src/layouts/LoggedIn.unit.ts +++ b/src/layouts/LoggedIn.unit.ts @@ -108,7 +108,7 @@ describe("LoggedIn.layout.vue", () => { defineWindowWidth(); }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); it("should render correctly", async () => { diff --git a/src/modules/data/board/BoardApi.composable.unit.ts b/src/modules/data/board/BoardApi.composable.unit.ts index e260bf9713..96397b6631 100644 --- a/src/modules/data/board/BoardApi.composable.unit.ts +++ b/src/modules/data/board/BoardApi.composable.unit.ts @@ -33,7 +33,7 @@ describe("BoardApi.composable", () => { }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("createColumnCall", () => { diff --git a/src/modules/data/board/CardRequestPool.composable.unit.ts b/src/modules/data/board/CardRequestPool.composable.unit.ts index 6f039d0bad..4337d4e1b9 100644 --- a/src/modules/data/board/CardRequestPool.composable.unit.ts +++ b/src/modules/data/board/CardRequestPool.composable.unit.ts @@ -28,7 +28,7 @@ const setup = (...cardIds: string[]) => { describe("card-request-pool.composable", () => { afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); it("should return Card data", async () => { diff --git a/src/modules/data/board/boardInactivity.composable.unit.ts b/src/modules/data/board/boardInactivity.composable.unit.ts index 2e262f24e9..a32ca4fd9e 100644 --- a/src/modules/data/board/boardInactivity.composable.unit.ts +++ b/src/modules/data/board/boardInactivity.composable.unit.ts @@ -97,7 +97,7 @@ describe("pageInactivity.composable", () => { describe("usePageInactivity", () => { beforeEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); it("should call the store functions when isTimeoutReached value true", async () => { const useBoardInactivity = setup(); @@ -129,10 +129,10 @@ describe("pageInactivity.composable", () => { describe("isTimeoutReached value", () => { beforeEach(() => { connectionOptions.isTimeoutReached = false; - jest.clearAllMocks(); + vi.clearAllMocks(); }); afterEach(() => { - jest.clearAllTimers(); + vi.clearAllTimers(); }); it("should be changed after MAX_TIMEOUT_FOR_INACTIVITY is achieved", async () => { setup(3000); diff --git a/src/modules/data/board/socket/socket.unit.ts b/src/modules/data/board/socket/socket.unit.ts index 4ed999568c..df9115fd48 100644 --- a/src/modules/data/board/socket/socket.unit.ts +++ b/src/modules/data/board/socket/socket.unit.ts @@ -101,7 +101,7 @@ describe("socket.ts", () => { }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); const getEventCallback = (eventName: string) => { diff --git a/src/modules/data/external-tool/ContextExternalToolConfigurationStatus.composable.unit.ts b/src/modules/data/external-tool/ContextExternalToolConfigurationStatus.composable.unit.ts index 7834b411d1..016e8d2461 100644 --- a/src/modules/data/external-tool/ContextExternalToolConfigurationStatus.composable.unit.ts +++ b/src/modules/data/external-tool/ContextExternalToolConfigurationStatus.composable.unit.ts @@ -38,7 +38,7 @@ describe("ToolConfigurationStatus.composable", () => { }; afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("determineToolStatusTranslationKey", () => { diff --git a/src/modules/data/external-tool/ExternalToolApi.composable.unit.ts b/src/modules/data/external-tool/ExternalToolApi.composable.unit.ts index ce7792e9a5..a694454416 100644 --- a/src/modules/data/external-tool/ExternalToolApi.composable.unit.ts +++ b/src/modules/data/external-tool/ExternalToolApi.composable.unit.ts @@ -25,7 +25,7 @@ describe("ExternalToolApi.composable", () => { }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("fetchContextLaunchDataCall", () => { diff --git a/src/modules/data/external-tool/ExternalToolLaunchState.composable.unit.ts b/src/modules/data/external-tool/ExternalToolLaunchState.composable.unit.ts index c7eba67467..7f760d2c6e 100644 --- a/src/modules/data/external-tool/ExternalToolLaunchState.composable.unit.ts +++ b/src/modules/data/external-tool/ExternalToolLaunchState.composable.unit.ts @@ -25,7 +25,7 @@ describe("ExternalToolLaunchState.composable", () => { }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("fetchContextLaunchRequest", () => { diff --git a/src/modules/data/external-tool/SchoolExternalToolApi.composable.unit.ts b/src/modules/data/external-tool/SchoolExternalToolApi.composable.unit.ts index 0011cc90ce..bb1ae62d9a 100644 --- a/src/modules/data/external-tool/SchoolExternalToolApi.composable.unit.ts +++ b/src/modules/data/external-tool/SchoolExternalToolApi.composable.unit.ts @@ -18,7 +18,7 @@ describe("SchoolExternalToolApi.composable", () => { }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("fetchSchoolExternalToolMetadata", () => { diff --git a/src/modules/data/external-tool/SchoolExternalToolUsage.composable.unit.ts b/src/modules/data/external-tool/SchoolExternalToolUsage.composable.unit.ts index f27386d119..439e5fc991 100644 --- a/src/modules/data/external-tool/SchoolExternalToolUsage.composable.unit.ts +++ b/src/modules/data/external-tool/SchoolExternalToolUsage.composable.unit.ts @@ -26,7 +26,7 @@ describe("SchoolExternalToolUsage.composable", () => { }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("fetchSchoolExternalToolMetadata", () => { diff --git a/src/modules/data/external-tool/contextExternalToolApi.composable.unit.ts b/src/modules/data/external-tool/contextExternalToolApi.composable.unit.ts index a7de17b0cf..cd505e274e 100644 --- a/src/modules/data/external-tool/contextExternalToolApi.composable.unit.ts +++ b/src/modules/data/external-tool/contextExternalToolApi.composable.unit.ts @@ -33,7 +33,7 @@ describe("contextExternalToolApi.composable", () => { }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("fetchContextExternalToolCall", () => { diff --git a/src/modules/data/external-tool/contextExternalToolConfigurationState.composable.unit.ts b/src/modules/data/external-tool/contextExternalToolConfigurationState.composable.unit.ts index 4517a90c4d..2bddf1f735 100644 --- a/src/modules/data/external-tool/contextExternalToolConfigurationState.composable.unit.ts +++ b/src/modules/data/external-tool/contextExternalToolConfigurationState.composable.unit.ts @@ -27,7 +27,7 @@ describe("contextExternalToolConfigurationState.composable", () => { }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("when no data is loaded", () => { diff --git a/src/modules/data/external-tool/contextExternalToolState.composable.unit.ts b/src/modules/data/external-tool/contextExternalToolState.composable.unit.ts index 985eafb63e..f41002a0e5 100644 --- a/src/modules/data/external-tool/contextExternalToolState.composable.unit.ts +++ b/src/modules/data/external-tool/contextExternalToolState.composable.unit.ts @@ -26,7 +26,7 @@ describe("contextExternalToolState.composable", () => { }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("when no data is loaded", () => { diff --git a/src/modules/data/external-tool/externalToolDisplayListState.composable.unit.ts b/src/modules/data/external-tool/externalToolDisplayListState.composable.unit.ts index c2783df188..59fd9928d8 100644 --- a/src/modules/data/external-tool/externalToolDisplayListState.composable.unit.ts +++ b/src/modules/data/external-tool/externalToolDisplayListState.composable.unit.ts @@ -27,7 +27,7 @@ describe("externalToolDisplayListState.composable", () => { }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("when no data is loaded", () => { diff --git a/src/modules/data/external-tool/externalToolDisplayState.composable.unit.ts b/src/modules/data/external-tool/externalToolDisplayState.composable.unit.ts index d540a7a875..3db4a4b773 100644 --- a/src/modules/data/external-tool/externalToolDisplayState.composable.unit.ts +++ b/src/modules/data/external-tool/externalToolDisplayState.composable.unit.ts @@ -26,7 +26,7 @@ describe("externalToolDisplayState.composable", () => { }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("when no data is loaded", () => { diff --git a/src/modules/data/external-tool/externalToolReferenceApi.composable.unit.ts b/src/modules/data/external-tool/externalToolReferenceApi.composable.unit.ts index ca726747ec..5b2268801b 100644 --- a/src/modules/data/external-tool/externalToolReferenceApi.composable.unit.ts +++ b/src/modules/data/external-tool/externalToolReferenceApi.composable.unit.ts @@ -19,7 +19,7 @@ describe("externalToolReferenceApi.composable", () => { }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("fetchDisplayDataCall", () => { diff --git a/src/modules/data/group/GroupApi.composable.unit.ts b/src/modules/data/group/GroupApi.composable.unit.ts index 5ae4ea8f40..86adae848b 100644 --- a/src/modules/data/group/GroupApi.composable.unit.ts +++ b/src/modules/data/group/GroupApi.composable.unit.ts @@ -14,7 +14,7 @@ describe("GroupApi.composable", () => { }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("getGroup", () => { diff --git a/src/modules/data/group/GroupState.composable.unit.ts b/src/modules/data/group/GroupState.composable.unit.ts index ff7be65f08..cf2a0a5e53 100644 --- a/src/modules/data/group/GroupState.composable.unit.ts +++ b/src/modules/data/group/GroupState.composable.unit.ts @@ -21,7 +21,7 @@ describe("GroupState.composable", () => { }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); const getComposable = () => { diff --git a/src/modules/data/group/groupListState.composable.unit.ts b/src/modules/data/group/groupListState.composable.unit.ts index 11096b10e6..cba566cf68 100644 --- a/src/modules/data/group/groupListState.composable.unit.ts +++ b/src/modules/data/group/groupListState.composable.unit.ts @@ -21,7 +21,7 @@ describe("groupListState.composable", () => { }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); const getComposable = () => { diff --git a/src/modules/data/provisioning-options/ProvisioningOptionsApi.composable.unit.ts b/src/modules/data/provisioning-options/ProvisioningOptionsApi.composable.unit.ts index 4c44da44cf..d2f0d6f735 100644 --- a/src/modules/data/provisioning-options/ProvisioningOptionsApi.composable.unit.ts +++ b/src/modules/data/provisioning-options/ProvisioningOptionsApi.composable.unit.ts @@ -28,7 +28,7 @@ describe("ProvisioningOptionsApi.composable", () => { }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("getProvisioningOptions", () => { diff --git a/src/modules/data/provisioning-options/ProvisioningOptionsState.composable.unit.ts b/src/modules/data/provisioning-options/ProvisioningOptionsState.composable.unit.ts index 353eb7cfef..ede1bae742 100644 --- a/src/modules/data/provisioning-options/ProvisioningOptionsState.composable.unit.ts +++ b/src/modules/data/provisioning-options/ProvisioningOptionsState.composable.unit.ts @@ -34,7 +34,7 @@ describe("ProvisioningOptionsState.composable", () => { }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("fetchProvisioningOptionsData", () => { diff --git a/src/modules/data/room/courseApi.composable.unit.ts b/src/modules/data/room/courseApi.composable.unit.ts index 5e844d84c1..743ccdd216 100644 --- a/src/modules/data/room/courseApi.composable.unit.ts +++ b/src/modules/data/room/courseApi.composable.unit.ts @@ -21,7 +21,7 @@ describe("courseApi.composable", () => { }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("stopSynchronization", () => { diff --git a/src/modules/data/room/courseInfoApi.composable.unit.ts b/src/modules/data/room/courseInfoApi.composable.unit.ts index 516f2728d3..4561feeb7f 100644 --- a/src/modules/data/room/courseInfoApi.composable.unit.ts +++ b/src/modules/data/room/courseInfoApi.composable.unit.ts @@ -26,7 +26,7 @@ describe("courseInfoApi.composable", () => { }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("loadCoursesForSchool", () => { diff --git a/src/modules/data/room/courseList.composable.unit.ts b/src/modules/data/room/courseList.composable.unit.ts index 44c5225303..829369f25c 100644 --- a/src/modules/data/room/courseList.composable.unit.ts +++ b/src/modules/data/room/courseList.composable.unit.ts @@ -41,7 +41,7 @@ describe("courseList.composable", () => { }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("setSortBy", () => { diff --git a/src/modules/data/system/SystemApi.composable.unit.ts b/src/modules/data/system/SystemApi.composable.unit.ts index 7f9113cef9..5d004a6b1d 100644 --- a/src/modules/data/system/SystemApi.composable.unit.ts +++ b/src/modules/data/system/SystemApi.composable.unit.ts @@ -20,7 +20,7 @@ describe("SystemApi.composable", () => { }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("getSystem", () => { diff --git a/src/modules/feature/board-collaborative-text-editor-element/composables/CollaborativeTextEditorNotifications.composable.unit.ts b/src/modules/feature/board-collaborative-text-editor-element/composables/CollaborativeTextEditorNotifications.composable.unit.ts index cd0cc33140..5d4a7d9103 100644 --- a/src/modules/feature/board-collaborative-text-editor-element/composables/CollaborativeTextEditorNotifications.composable.unit.ts +++ b/src/modules/feature/board-collaborative-text-editor-element/composables/CollaborativeTextEditorNotifications.composable.unit.ts @@ -36,7 +36,7 @@ const setupMountComposable = () => { describe("CollaborativeTextEditorNotifications.composable", () => { beforeEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("when showForbiddenError called", () => { diff --git a/src/modules/feature/board-deleted-element/DeletedElement.unit.ts b/src/modules/feature/board-deleted-element/DeletedElement.unit.ts index a98d448a13..23c65fee48 100644 --- a/src/modules/feature/board-deleted-element/DeletedElement.unit.ts +++ b/src/modules/feature/board-deleted-element/DeletedElement.unit.ts @@ -34,7 +34,7 @@ describe("DeletedElement", () => { }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); const getWrapper = ( diff --git a/src/modules/feature/board-drawing-element/DrawingContentElement.unit.ts b/src/modules/feature/board-drawing-element/DrawingContentElement.unit.ts index cfd90ea233..2ea08957a5 100644 --- a/src/modules/feature/board-drawing-element/DrawingContentElement.unit.ts +++ b/src/modules/feature/board-drawing-element/DrawingContentElement.unit.ts @@ -58,7 +58,7 @@ describe("DrawingContentElement", () => { }; afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("when component is mounted", () => { diff --git a/src/modules/feature/board-external-tool-element/ExternalToolElement.unit.ts b/src/modules/feature/board-external-tool-element/ExternalToolElement.unit.ts index 45642c28c8..b40df04d9f 100644 --- a/src/modules/feature/board-external-tool-element/ExternalToolElement.unit.ts +++ b/src/modules/feature/board-external-tool-element/ExternalToolElement.unit.ts @@ -94,7 +94,7 @@ describe("ExternalToolElement", () => { }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); const getWrapper = ( diff --git a/src/modules/feature/board-external-tool-element/ExternalToolElementAlert.unit.ts b/src/modules/feature/board-external-tool-element/ExternalToolElementAlert.unit.ts index d8dd6d1f87..aa03544f7b 100644 --- a/src/modules/feature/board-external-tool-element/ExternalToolElementAlert.unit.ts +++ b/src/modules/feature/board-external-tool-element/ExternalToolElementAlert.unit.ts @@ -41,7 +41,7 @@ describe("ExternalToolElementAlert", () => { }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); const getWrapper = ( diff --git a/src/modules/feature/board-external-tool-element/ExternalToolElementConfigurationDialog.unit.ts b/src/modules/feature/board-external-tool-element/ExternalToolElementConfigurationDialog.unit.ts index 842bcadf96..d72f620127 100644 --- a/src/modules/feature/board-external-tool-element/ExternalToolElementConfigurationDialog.unit.ts +++ b/src/modules/feature/board-external-tool-element/ExternalToolElementConfigurationDialog.unit.ts @@ -24,7 +24,7 @@ describe("ExternalToolElementConfigurationDialog", () => { }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); const getWrapper = ( diff --git a/src/modules/feature/board-file-element/shared/composables/FileStorageNotifications.composable.unit.ts b/src/modules/feature/board-file-element/shared/composables/FileStorageNotifications.composable.unit.ts index 68718a66e9..3bcd53dbad 100644 --- a/src/modules/feature/board-file-element/shared/composables/FileStorageNotifications.composable.unit.ts +++ b/src/modules/feature/board-file-element/shared/composables/FileStorageNotifications.composable.unit.ts @@ -37,7 +37,7 @@ const setupMountComposable = () => { describe("FileStorageNotifier.composable", () => { beforeEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("when showForbiddenError called", () => { diff --git a/src/modules/feature/board-link-element/components/LinkContentElement.unit.ts b/src/modules/feature/board-link-element/components/LinkContentElement.unit.ts index ff92288bc2..0f79baea52 100644 --- a/src/modules/feature/board-link-element/components/LinkContentElement.unit.ts +++ b/src/modules/feature/board-link-element/components/LinkContentElement.unit.ts @@ -75,7 +75,7 @@ describe("LinkContentElement", () => { }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); const getWrapper = (props: { diff --git a/src/modules/feature/board-link-element/components/LinkContentElementCreate.unit.ts b/src/modules/feature/board-link-element/components/LinkContentElementCreate.unit.ts index a1dac7f991..848ff1e741 100644 --- a/src/modules/feature/board-link-element/components/LinkContentElementCreate.unit.ts +++ b/src/modules/feature/board-link-element/components/LinkContentElementCreate.unit.ts @@ -21,7 +21,7 @@ describe("LinkContentElementCreate", () => { }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); const setup = () => { diff --git a/src/modules/feature/board-link-element/composables/MetaTagExtractorApi.composable.unit.ts b/src/modules/feature/board-link-element/composables/MetaTagExtractorApi.composable.unit.ts index 4e7a37de19..0ac5851551 100644 --- a/src/modules/feature/board-link-element/composables/MetaTagExtractorApi.composable.unit.ts +++ b/src/modules/feature/board-link-element/composables/MetaTagExtractorApi.composable.unit.ts @@ -15,7 +15,7 @@ describe("useMetaTagExtractorApi", () => { }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("getMetaTags", () => { diff --git a/src/modules/feature/board-link-element/composables/PreviewGenerator.composable.unit.ts b/src/modules/feature/board-link-element/composables/PreviewGenerator.composable.unit.ts index a5cc453c39..371bfcc2c2 100644 --- a/src/modules/feature/board-link-element/composables/PreviewGenerator.composable.unit.ts +++ b/src/modules/feature/board-link-element/composables/PreviewGenerator.composable.unit.ts @@ -12,7 +12,7 @@ vi.mock("@feature-board-file-element"); describe("usePreviewGenerator", () => { afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); const getWrapper = (elementId: string) => { diff --git a/src/modules/feature/board-submission-element/composables/SubmissionItemApi.composable.unit.ts b/src/modules/feature/board-submission-element/composables/SubmissionItemApi.composable.unit.ts index 0639080b77..1f805ac61b 100644 --- a/src/modules/feature/board-submission-element/composables/SubmissionItemApi.composable.unit.ts +++ b/src/modules/feature/board-submission-element/composables/SubmissionItemApi.composable.unit.ts @@ -17,7 +17,7 @@ describe("SubmissionItemApi.composable", () => { }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("create submissionItem", () => { diff --git a/src/modules/feature/board/board/Board.unit.ts b/src/modules/feature/board/board/Board.unit.ts index b236a0a7db..f9ec8f6c41 100644 --- a/src/modules/feature/board/board/Board.unit.ts +++ b/src/modules/feature/board/board/Board.unit.ts @@ -176,7 +176,7 @@ describe("Board", () => { }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); const mockEnvConfigModule = (envs: Partial | undefined) => { diff --git a/src/modules/feature/board/card/CardHost.unit.ts b/src/modules/feature/board/card/CardHost.unit.ts index f3903611dd..efdd0c0a02 100644 --- a/src/modules/feature/board/card/CardHost.unit.ts +++ b/src/modules/feature/board/card/CardHost.unit.ts @@ -121,7 +121,7 @@ describe("CardHost", () => { }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); const setup = (options?: { hasCard?: boolean; hasElement?: boolean }) => { diff --git a/src/modules/feature/course-sync/GroupSelectionDialog.unit.ts b/src/modules/feature/course-sync/GroupSelectionDialog.unit.ts index fded2704e1..6f92be221a 100644 --- a/src/modules/feature/course-sync/GroupSelectionDialog.unit.ts +++ b/src/modules/feature/course-sync/GroupSelectionDialog.unit.ts @@ -58,7 +58,7 @@ describe("GroupSelectionDialog", () => { }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("when the dialog is open", () => { diff --git a/src/modules/feature/course-sync/StartExsistingCourseSyncDialog.unit.ts b/src/modules/feature/course-sync/StartExsistingCourseSyncDialog.unit.ts index 01492f023f..5540bf4147 100644 --- a/src/modules/feature/course-sync/StartExsistingCourseSyncDialog.unit.ts +++ b/src/modules/feature/course-sync/StartExsistingCourseSyncDialog.unit.ts @@ -60,7 +60,7 @@ describe("StartExistingCourseSyncDialog", () => { }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("when the dialog is open", () => { diff --git a/src/modules/feature/course-sync/StartNewCourseSyncDialog.unit.ts b/src/modules/feature/course-sync/StartNewCourseSyncDialog.unit.ts index f519026911..6e7a8146a0 100644 --- a/src/modules/feature/course-sync/StartNewCourseSyncDialog.unit.ts +++ b/src/modules/feature/course-sync/StartNewCourseSyncDialog.unit.ts @@ -23,7 +23,7 @@ describe("StartNewCourseSyncDialog", () => { }; afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("when the dialog is open", () => { diff --git a/src/modules/feature/media-shelf/data/mediaBoardApi.composable.unit.ts b/src/modules/feature/media-shelf/data/mediaBoardApi.composable.unit.ts index 6e01afbe06..051058b54a 100644 --- a/src/modules/feature/media-shelf/data/mediaBoardApi.composable.unit.ts +++ b/src/modules/feature/media-shelf/data/mediaBoardApi.composable.unit.ts @@ -40,7 +40,7 @@ describe("mediaBoardApi.composable", () => { }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("getMediaBoardForUser", () => { diff --git a/src/modules/feature/media-shelf/data/mediaBoardState.composable.unit.ts b/src/modules/feature/media-shelf/data/mediaBoardState.composable.unit.ts index b53eda4597..e9b7430411 100644 --- a/src/modules/feature/media-shelf/data/mediaBoardState.composable.unit.ts +++ b/src/modules/feature/media-shelf/data/mediaBoardState.composable.unit.ts @@ -33,7 +33,7 @@ describe("mediaBoardState.composable", () => { }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("getLineIndex", () => { diff --git a/src/modules/page/class-members/ClassMembers.page.unit.ts b/src/modules/page/class-members/ClassMembers.page.unit.ts index f31a43889f..e8239a3d49 100644 --- a/src/modules/page/class-members/ClassMembers.page.unit.ts +++ b/src/modules/page/class-members/ClassMembers.page.unit.ts @@ -59,7 +59,7 @@ describe("@pages/ClassMembers.page.vue", () => { }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("title", () => { diff --git a/src/modules/page/class-members/ClassMembersInfoBox.unit.ts b/src/modules/page/class-members/ClassMembersInfoBox.unit.ts index 0d2f889cac..fa0999898e 100644 --- a/src/modules/page/class-members/ClassMembersInfoBox.unit.ts +++ b/src/modules/page/class-members/ClassMembersInfoBox.unit.ts @@ -40,7 +40,7 @@ describe("ClassMembersInfoBox", () => { }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("alert", () => { diff --git a/src/modules/ui/confirmation-dialog/Confirmation.composable.unit.ts b/src/modules/ui/confirmation-dialog/Confirmation.composable.unit.ts index d39b76b937..be6e7cd90b 100644 --- a/src/modules/ui/confirmation-dialog/Confirmation.composable.unit.ts +++ b/src/modules/ui/confirmation-dialog/Confirmation.composable.unit.ts @@ -19,7 +19,7 @@ describe("Confirmation composable", () => { }; beforeEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("when askConfirmation is called", () => { diff --git a/src/modules/ui/confirmation-dialog/DeleteConfirmation.composable.unit.ts b/src/modules/ui/confirmation-dialog/DeleteConfirmation.composable.unit.ts index 8f9f8b2406..c42dc1a8b2 100644 --- a/src/modules/ui/confirmation-dialog/DeleteConfirmation.composable.unit.ts +++ b/src/modules/ui/confirmation-dialog/DeleteConfirmation.composable.unit.ts @@ -61,7 +61,7 @@ describe("DeleteConfirmation composable", () => { }; beforeEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("when title is defined", () => { diff --git a/src/modules/ui/layout/sidebar/SidebarSelection.composable.unit.ts b/src/modules/ui/layout/sidebar/SidebarSelection.composable.unit.ts index 5f50a7d5cc..aa91bde46c 100644 --- a/src/modules/ui/layout/sidebar/SidebarSelection.composable.unit.ts +++ b/src/modules/ui/layout/sidebar/SidebarSelection.composable.unit.ts @@ -37,7 +37,7 @@ describe("@ui/layout/sidebar/SidebarSelection.composable", () => { }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); const setup = (routeProps: { path: string; name: string }) => { diff --git a/src/modules/ui/light-box/LightBox.composable.unit.ts b/src/modules/ui/light-box/LightBox.composable.unit.ts index 4368ff8c90..6b1bea4f48 100644 --- a/src/modules/ui/light-box/LightBox.composable.unit.ts +++ b/src/modules/ui/light-box/LightBox.composable.unit.ts @@ -27,7 +27,7 @@ describe("LightBox composable", () => { }; beforeEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("open", () => { @@ -67,7 +67,7 @@ describe("LightBox composable", () => { }; beforeEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("when openInternal is called", () => { diff --git a/src/modules/util/board/BoardNotifier.composable.unit.ts b/src/modules/util/board/BoardNotifier.composable.unit.ts index ddd7b20262..cdd51bd889 100644 --- a/src/modules/util/board/BoardNotifier.composable.unit.ts +++ b/src/modules/util/board/BoardNotifier.composable.unit.ts @@ -16,7 +16,7 @@ const setup = () => { describe("BoardNotifications.composable", () => { beforeEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("@showSuccess method", () => { diff --git a/src/modules/util/device-detection/TouchDetection.composable.unit.ts b/src/modules/util/device-detection/TouchDetection.composable.unit.ts index 66f0f61cb4..fcaba54afc 100644 --- a/src/modules/util/device-detection/TouchDetection.composable.unit.ts +++ b/src/modules/util/device-detection/TouchDetection.composable.unit.ts @@ -24,7 +24,7 @@ describe(useTouchDetection.name, () => { }; afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("isTouchEvent", () => { diff --git a/src/modules/util/error-notification/error-notification.composable.unit.ts b/src/modules/util/error-notification/error-notification.composable.unit.ts index 3a669cafd6..bfdeb95a4a 100644 --- a/src/modules/util/error-notification/error-notification.composable.unit.ts +++ b/src/modules/util/error-notification/error-notification.composable.unit.ts @@ -8,7 +8,7 @@ import { useErrorNotification } from "./error-notification.composable"; describe("useErrorNotification.composable", () => { afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); const setupComposable = () => { diff --git a/src/modules/util/input-masks/InputMask.unit.ts b/src/modules/util/input-masks/InputMask.unit.ts index 99bbab23be..83e71eb189 100644 --- a/src/modules/util/input-masks/InputMask.unit.ts +++ b/src/modules/util/input-masks/InputMask.unit.ts @@ -13,7 +13,7 @@ const maskaDirectiveMock = { describe("InputMask.factory", () => { beforeEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); it("should bind maska when directive function is called", () => { diff --git a/src/pages/administration/ClassOverview.page.unit.ts b/src/pages/administration/ClassOverview.page.unit.ts index c57516faa2..314b953f50 100644 --- a/src/pages/administration/ClassOverview.page.unit.ts +++ b/src/pages/administration/ClassOverview.page.unit.ts @@ -131,7 +131,7 @@ const findTableComponen = (wrapper: VueWrapper) => { describe("ClassOverview", () => { afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("general", () => { diff --git a/src/pages/administration/RoomsOverview.page.unit.ts b/src/pages/administration/RoomsOverview.page.unit.ts index da2fb9b89e..359ea63d57 100644 --- a/src/pages/administration/RoomsOverview.page.unit.ts +++ b/src/pages/administration/RoomsOverview.page.unit.ts @@ -126,7 +126,7 @@ describe("RoomsOverview", () => { }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("general", () => { diff --git a/src/pages/administration/migration.unit.ts b/src/pages/administration/migration.unit.ts index 9671f61a6c..2b65135f31 100644 --- a/src/pages/administration/migration.unit.ts +++ b/src/pages/administration/migration.unit.ts @@ -515,7 +515,7 @@ describe("User Migration / Index", () => { afterEach(() => { document.body.innerHTML = ""; - jest.clearAllMocks(); + vi.clearAllMocks(); }); const setup = async () => { diff --git a/src/pages/administration/school-external-tool/SchoolExternalToolConfigurator.page.unit.ts b/src/pages/administration/school-external-tool/SchoolExternalToolConfigurator.page.unit.ts index 87ca581751..891002ae9f 100644 --- a/src/pages/administration/school-external-tool/SchoolExternalToolConfigurator.page.unit.ts +++ b/src/pages/administration/school-external-tool/SchoolExternalToolConfigurator.page.unit.ts @@ -91,7 +91,7 @@ describe("SchoolExternalToolConfigurator", () => { }; afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("breadcrumbs", () => { diff --git a/src/pages/context-external-tool/CourseContextExternalToolConfigurator.page.unit.ts b/src/pages/context-external-tool/CourseContextExternalToolConfigurator.page.unit.ts index 4a2a701745..d973a75dc8 100644 --- a/src/pages/context-external-tool/CourseContextExternalToolConfigurator.page.unit.ts +++ b/src/pages/context-external-tool/CourseContextExternalToolConfigurator.page.unit.ts @@ -83,7 +83,7 @@ describe("CourseContextExternalToolConfigurator", () => { }; afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("breadcrumbs", () => { diff --git a/src/pages/course-rooms/CourseRoomOverview.page.unit.js b/src/pages/course-rooms/CourseRoomOverview.page.unit.js index 49d3e021b8..6ac236c42f 100644 --- a/src/pages/course-rooms/CourseRoomOverview.page.unit.js +++ b/src/pages/course-rooms/CourseRoomOverview.page.unit.js @@ -173,7 +173,7 @@ describe("@/pages/CourseRoomOverview.page", () => { }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); it("should fetch the room data", async () => { diff --git a/src/pages/course-rooms/tools/RoomExternalToolsOverview.unit.ts b/src/pages/course-rooms/tools/RoomExternalToolsOverview.unit.ts index cf2f6496e4..b9d949c5d4 100644 --- a/src/pages/course-rooms/tools/RoomExternalToolsOverview.unit.ts +++ b/src/pages/course-rooms/tools/RoomExternalToolsOverview.unit.ts @@ -80,7 +80,7 @@ describe("RoomExternalToolOverview", () => { }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("when no tools or no videoconference is in the list", () => { diff --git a/src/pages/course-rooms/tools/RoomExternalToolsSection.unit.ts b/src/pages/course-rooms/tools/RoomExternalToolsSection.unit.ts index 1778e4fadb..a75dd9a427 100644 --- a/src/pages/course-rooms/tools/RoomExternalToolsSection.unit.ts +++ b/src/pages/course-rooms/tools/RoomExternalToolsSection.unit.ts @@ -67,7 +67,7 @@ describe("RoomExternalToolsSection", () => { }; afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("when there are tools in the list", () => { diff --git a/src/router/guards/permission.guard.unit.ts b/src/router/guards/permission.guard.unit.ts index 34a2221c95..63dd2cadba 100644 --- a/src/router/guards/permission.guard.unit.ts +++ b/src/router/guards/permission.guard.unit.ts @@ -16,7 +16,7 @@ vi.mock("@/store", () => ({ describe("PermissionGuard", () => { afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); function setup() { diff --git a/src/router/guards/validate-query-parameters.guard.unit.ts b/src/router/guards/validate-query-parameters.guard.unit.ts index 6b9eb946c8..f8e4efd74d 100644 --- a/src/router/guards/validate-query-parameters.guard.unit.ts +++ b/src/router/guards/validate-query-parameters.guard.unit.ts @@ -22,7 +22,7 @@ vi.mock("@/composables/application-error.composable", () => ({ describe("validateQueryParameters", () => { afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); function setup() { diff --git a/src/store/auth.unit.ts b/src/store/auth.unit.ts index c1c7e51fab..64725bbee5 100644 --- a/src/store/auth.unit.ts +++ b/src/store/auth.unit.ts @@ -301,7 +301,7 @@ describe("auth store module", () => { describe("updateUserLanguage", () => { afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); it("should call backend succesfully", () => { diff --git a/src/store/common-cartridge-import.unit.ts b/src/store/common-cartridge-import.unit.ts index 59b779a12e..5965481604 100644 --- a/src/store/common-cartridge-import.unit.ts +++ b/src/store/common-cartridge-import.unit.ts @@ -14,7 +14,7 @@ describe("CommonCartridgeImportModule", () => { }); beforeEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("getters", () => { diff --git a/src/store/copy.unit.ts b/src/store/copy.unit.ts index 58decc51c8..597c7eac0a 100644 --- a/src/store/copy.unit.ts +++ b/src/store/copy.unit.ts @@ -52,7 +52,7 @@ const serverDataSuccess: CopyApiResponse = { describe("copy module", () => { describe("actions", () => { afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); describe("copy", () => { diff --git a/src/store/course-room-details.unit.ts b/src/store/course-room-details.unit.ts index f92fc5d260..6e0dbfd026 100644 --- a/src/store/course-room-details.unit.ts +++ b/src/store/course-room-details.unit.ts @@ -52,7 +52,7 @@ describe("course-room module", () => { describe("actions", () => { afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); const mockApi = { courseRoomsControllerGetRoomBoard: vi.fn(), diff --git a/src/store/courses.unit.js b/src/store/courses.unit.js index 829d54f34f..1bf7bd5534 100644 --- a/src/store/courses.unit.js +++ b/src/store/courses.unit.js @@ -5,7 +5,7 @@ import setupStores from "@@/tests/test-utils/setupStores"; describe("courses store", () => { beforeEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); setupStores({ notifierModule: NotifierModule }); }); describe("removeCourseItem action", () => { From 7abc70829dfa08f69020f2adee187af30c2cfc55 Mon Sep 17 00:00:00 2001 From: Odalys Adam Date: Mon, 21 Oct 2024 23:11:19 +0200 Subject: [PATCH 07/18] replace jests use timers with vi use timers --- .../administration/AdminMigrationSection.unit.ts | 10 +++++----- src/components/molecules/ContextMenu.unit.ts | 2 +- src/components/molecules/RoomTaskCard.unit.ts | 2 +- .../DataFilter/filterComponents/DateBetween.unit.ts | 2 +- src/composables/ariaLiveNotifier.unit.ts | 2 +- src/composables/drag.unit.ts | 2 +- src/mixins/print.unit.js | 2 +- src/modules/data/board/ContentElementState.unit.ts | 2 +- .../ariaLiveNotificationHandler.unit.ts | 2 +- .../data/board/boardInactivity.composable.unit.ts | 2 +- .../cardActions/cardSocketApi.composable.unit.ts | 4 ++-- .../ExternalToolElement.unit.ts | 2 +- .../board-file-element/content/FileContent.unit.ts | 4 ++-- src/modules/feature/board/board/Board.unit.ts | 12 ++++++------ src/modules/feature/board/board/BoardHeader.unit.ts | 8 ++++---- .../feature/course-sync/GroupSelectionDialog.unit.ts | 2 +- src/modules/feature/editor/CKEditor.unit.ts | 2 +- .../media-shelf/MediaBoardAvailableElement.unit.ts | 2 +- .../MediaBoardExternalToolElement.unit.ts | 2 +- src/modules/ui/speed-dial-menu/SpeedDialMenu.unit.ts | 6 +++--- src/pages/administration/student-overview.unit.js | 2 +- src/pages/administration/teacher-overview.unit.js | 2 +- .../tools/RoomExternalToolsOverview.unit.ts | 4 ++-- src/store/auth.unit.ts | 2 +- src/store/env-config.unit.ts | 2 +- src/store/notifier.unit.ts | 2 +- src/utils/helpers.unit.js | 2 +- 27 files changed, 44 insertions(+), 44 deletions(-) diff --git a/src/components/administration/AdminMigrationSection.unit.ts b/src/components/administration/AdminMigrationSection.unit.ts index 2fe81da999..bfa934c8a3 100644 --- a/src/components/administration/AdminMigrationSection.unit.ts +++ b/src/components/administration/AdminMigrationSection.unit.ts @@ -128,7 +128,7 @@ describe("AdminMigrationSection", () => { describe("Migration Control Section", () => { it("should render migration control section when grace period is not expired", () => { - jest.useFakeTimers(); + vi.useFakeTimers(); jest.setSystemTime(new Date(2023, 1, 3)); const { wrapper } = setup( {}, @@ -163,7 +163,7 @@ describe("AdminMigrationSection", () => { }, } ); - jest.useFakeTimers(); + vi.useFakeTimers(); jest.setSystemTime(new Date(2023, 1, 3)); expect( @@ -346,7 +346,7 @@ describe("AdminMigrationSection", () => { }, } ); - jest.useFakeTimers(); + vi.useFakeTimers(); jest.setSystemTime(new Date(2023, 1, 3)); const buttonComponent = wrapper.find( @@ -625,7 +625,7 @@ describe("AdminMigrationSection", () => { describe("Date paragraph", () => { it("should exist when migration has been completed", async () => { - jest.useFakeTimers(); + vi.useFakeTimers(); jest.setSystemTime(new Date(2023, 1, 2)); const { wrapper } = setup( { @@ -651,7 +651,7 @@ describe("AdminMigrationSection", () => { }); it("should show finalFinish text when migration grace period has expired", async () => { - jest.useFakeTimers(); + vi.useFakeTimers(); jest.setSystemTime(new Date(2023, 1, 4)); const { wrapper } = setup( { diff --git a/src/components/molecules/ContextMenu.unit.ts b/src/components/molecules/ContextMenu.unit.ts index 3f0e5d4853..045faabdd2 100644 --- a/src/components/molecules/ContextMenu.unit.ts +++ b/src/components/molecules/ContextMenu.unit.ts @@ -61,7 +61,7 @@ describe("@/components/molecules/ContextMenu", () => { }); it("emits (update:show false) event when button gets clicked", async () => { - jest.useFakeTimers(); + vi.useFakeTimers(); const wrapper = getWrapper(); await wrapper.find(".context-menu__button").trigger("click"); diff --git a/src/components/molecules/RoomTaskCard.unit.ts b/src/components/molecules/RoomTaskCard.unit.ts index 3339b80d75..4535d2bf33 100644 --- a/src/components/molecules/RoomTaskCard.unit.ts +++ b/src/components/molecules/RoomTaskCard.unit.ts @@ -543,7 +543,7 @@ describe("@/components/molecules/RoomTaskCard", () => { }); it("should return true value after calculated isPlanned() method", () => { - jest.useFakeTimers().setSystemTime(new Date()); // this line sets a permanent fake time + vi.useFakeTimers().setSystemTime(new Date()); // this line sets a permanent fake time const inFutureDate = new Date(Date.now() + 5001); const localProps = { ...testTask, diff --git a/src/components/organisms/DataFilter/filterComponents/DateBetween.unit.ts b/src/components/organisms/DataFilter/filterComponents/DateBetween.unit.ts index 65873044f7..16bc4e8025 100644 --- a/src/components/organisms/DataFilter/filterComponents/DateBetween.unit.ts +++ b/src/components/organisms/DataFilter/filterComponents/DateBetween.unit.ts @@ -27,7 +27,7 @@ const mountComponent = ( describe("@components/DataFilter/filterComponents/DateBetween.vue", () => { describe("should render the component", () => { it("should render the date picker components", async () => { - jest.useFakeTimers(); + vi.useFakeTimers(); const testDate = new Date(2024, 0, 1); jest.setSystemTime(testDate); diff --git a/src/composables/ariaLiveNotifier.unit.ts b/src/composables/ariaLiveNotifier.unit.ts index 1359b81309..5038d14742 100644 --- a/src/composables/ariaLiveNotifier.unit.ts +++ b/src/composables/ariaLiveNotifier.unit.ts @@ -8,7 +8,7 @@ describe("useAriaLiveNotifier", () => {
`; - jest.useFakeTimers(); + vi.useFakeTimers(); }); it("should notify on screen reader on 'aria-live=assertive' mode", () => { diff --git a/src/composables/drag.unit.ts b/src/composables/drag.unit.ts index 2e778ed4b2..dd060eeead 100644 --- a/src/composables/drag.unit.ts +++ b/src/composables/drag.unit.ts @@ -12,7 +12,7 @@ describe("drag composable", () => { }); it("should alter status on stop dragging after delay", () => { - jest.useFakeTimers(); + vi.useFakeTimers(); const { dragInProgressDelay, startDragging, endDragging, dragInProgress } = useDrag(); diff --git a/src/mixins/print.unit.js b/src/mixins/print.unit.js index 01958cc58b..8f46768a3e 100644 --- a/src/mixins/print.unit.js +++ b/src/mixins/print.unit.js @@ -59,7 +59,7 @@ describe("@/mixins/print", () => { it("closes new window after print", () => { const testContent = "some plain old content"; - jest.useFakeTimers(); + vi.useFakeTimers(); method(testContent); jest.runAllTimers(); expect(newWindowMock.print).toHaveBeenCalled(); diff --git a/src/modules/data/board/ContentElementState.unit.ts b/src/modules/data/board/ContentElementState.unit.ts index 78b5d4fb2f..8aa4843894 100644 --- a/src/modules/data/board/ContentElementState.unit.ts +++ b/src/modules/data/board/ContentElementState.unit.ts @@ -67,7 +67,7 @@ describe("useContentElementState composable", () => { }); it("should call saving function after debounced change of modelValue", async () => { - jest.useFakeTimers(); + vi.useFakeTimers(); const { modelValue } = setup({ isEditMode: true, element: TEST_ELEMENT }); const updatedModel: RichTextElementResponse["content"] = { diff --git a/src/modules/data/board/ariaNotification/ariaLiveNotificationHandler.unit.ts b/src/modules/data/board/ariaNotification/ariaLiveNotificationHandler.unit.ts index bab243caa4..dc24e8e14c 100644 --- a/src/modules/data/board/ariaNotification/ariaLiveNotificationHandler.unit.ts +++ b/src/modules/data/board/ariaNotification/ariaLiveNotificationHandler.unit.ts @@ -46,7 +46,7 @@ vi.mock("../Card.store", () => ({ })); describe("useBoardAriaNotification", () => { - jest.useFakeTimers(); + vi.useFakeTimers(); const mockNotifyOnScreenReader = vi.fn(); vi.mock("@/composables/ariaLiveNotifier", () => ({ diff --git a/src/modules/data/board/boardInactivity.composable.unit.ts b/src/modules/data/board/boardInactivity.composable.unit.ts index a32ca4fd9e..0d1abab273 100644 --- a/src/modules/data/board/boardInactivity.composable.unit.ts +++ b/src/modules/data/board/boardInactivity.composable.unit.ts @@ -55,7 +55,7 @@ const envs = envsFactory.build({ FEATURE_COLUMN_BOARD_SOCKET_ENABLED: true, }); -jest.useFakeTimers(); +vi.useFakeTimers(); describe("pageInactivity.composable", () => { setActivePinia(createTestingPinia()); diff --git a/src/modules/data/board/cardActions/cardSocketApi.composable.unit.ts b/src/modules/data/board/cardActions/cardSocketApi.composable.unit.ts index d3c039b46f..0cead81d41 100644 --- a/src/modules/data/board/cardActions/cardSocketApi.composable.unit.ts +++ b/src/modules/data/board/cardActions/cardSocketApi.composable.unit.ts @@ -77,7 +77,7 @@ describe("useCardSocketApi", () => { mockedBoardNotifierCalls = createMock>(); mockedUseBoardNotifier.mockReturnValue(mockedBoardNotifierCalls); - jest.useFakeTimers(); + vi.useFakeTimers(); mockUseSharedLastCreatedElement.mockReturnValue({ lastCreatedElementId: computed(() => "element-id"), @@ -90,7 +90,7 @@ describe("useCardSocketApi", () => { afterEach(() => { jest.runOnlyPendingTimers(); - jest.useRealTimers(); + vi.useRealTimers(); }); describe("dispatch", () => { diff --git a/src/modules/feature/board-external-tool-element/ExternalToolElement.unit.ts b/src/modules/feature/board-external-tool-element/ExternalToolElement.unit.ts index b40df04d9f..7d3ba6981f 100644 --- a/src/modules/feature/board-external-tool-element/ExternalToolElement.unit.ts +++ b/src/modules/feature/board-external-tool-element/ExternalToolElement.unit.ts @@ -718,7 +718,7 @@ describe("ExternalToolElement", () => { describe("when refresh time is over", () => { const setup = () => { - jest.useFakeTimers({ legacyFakeTimers: true }); + vi.useFakeTimers({ legacyFakeTimers: true }); const { wrapper, refreshTime } = getWrapper( { element: externalToolElementResponseFactory.build({ diff --git a/src/modules/feature/board-file-element/content/FileContent.unit.ts b/src/modules/feature/board-file-element/content/FileContent.unit.ts index 6a9a159cb4..247460f8bf 100644 --- a/src/modules/feature/board-file-element/content/FileContent.unit.ts +++ b/src/modules/feature/board-file-element/content/FileContent.unit.ts @@ -13,12 +13,12 @@ import { BOARD_IS_LIST_LAYOUT } from "@util-board"; describe("FileContent", () => { beforeEach(() => { - jest.useFakeTimers(); + vi.useFakeTimers(); }); afterEach(() => { jest.runOnlyPendingTimers(); - jest.useRealTimers(); + vi.useRealTimers(); }); const setup = (options?: { diff --git a/src/modules/feature/board/board/Board.unit.ts b/src/modules/feature/board/board/Board.unit.ts index f9ec8f6c41..dd82ea1829 100644 --- a/src/modules/feature/board/board/Board.unit.ts +++ b/src/modules/feature/board/board/Board.unit.ts @@ -409,7 +409,7 @@ describe("Board", () => { }); it("should call the board notifier when the user is teacher", () => { - jest.useFakeTimers(); + vi.useFakeTimers(); setup(); @@ -419,7 +419,7 @@ describe("Board", () => { }); it("should call the board notifier with draft info when board is not visible", () => { - jest.useFakeTimers(); + vi.useFakeTimers(); setup({ isBoardVisible: false }); @@ -432,7 +432,7 @@ describe("Board", () => { }); it("should call the board notifier with published info when board is visible", () => { - jest.useFakeTimers(); + vi.useFakeTimers(); setup(); @@ -445,7 +445,7 @@ describe("Board", () => { }); it("should call the board notifier with published info when board becomes visible", () => { - jest.useFakeTimers(); + vi.useFakeTimers(); const { boardStore } = setup({ isBoardVisible: false }); boardStore.board!.isVisible = true; @@ -459,7 +459,7 @@ describe("Board", () => { }); it("should call the board notifier with draft info when board should not be visible anymore", () => { - jest.useFakeTimers(); + vi.useFakeTimers(); const { boardStore } = setup(); boardStore.board!.isVisible = false; @@ -475,7 +475,7 @@ describe("Board", () => { it("should not call the board notifier when the user is not a teacher", () => { mockedBoardPermissions.isTeacher = false; - jest.useFakeTimers(); + vi.useFakeTimers(); setup(); diff --git a/src/modules/feature/board/board/BoardHeader.unit.ts b/src/modules/feature/board/board/BoardHeader.unit.ts index ad73171a94..0386c14465 100644 --- a/src/modules/feature/board/board/BoardHeader.unit.ts +++ b/src/modules/feature/board/board/BoardHeader.unit.ts @@ -159,7 +159,7 @@ describe("BoardHeader", () => { describe("when the title is updated", () => { describe("when the title is empty", () => { it("should not emit 'update:title'", () => { - jest.useFakeTimers(); + vi.useFakeTimers(); const { wrapper } = setup(); @@ -175,7 +175,7 @@ describe("BoardHeader", () => { describe("when the title is not empty", () => { it("should emit 'update:title'", () => { - jest.useFakeTimers(); + vi.useFakeTimers(); const { wrapper } = setup(); @@ -193,7 +193,7 @@ describe("BoardHeader", () => { describe("when the title loses focus", () => { describe("when the title is empty", () => { it("should emit 'update:title'", () => { - jest.useFakeTimers(); + vi.useFakeTimers(); const { wrapper } = setup(); @@ -213,7 +213,7 @@ describe("BoardHeader", () => { describe("when the title is not empty", () => { it("should not emit 'update:title'", () => { - jest.useFakeTimers(); + vi.useFakeTimers(); const { wrapper } = setup(); diff --git a/src/modules/feature/course-sync/GroupSelectionDialog.unit.ts b/src/modules/feature/course-sync/GroupSelectionDialog.unit.ts index 6f92be221a..a702fc1680 100644 --- a/src/modules/feature/course-sync/GroupSelectionDialog.unit.ts +++ b/src/modules/feature/course-sync/GroupSelectionDialog.unit.ts @@ -91,7 +91,7 @@ describe("GroupSelectionDialog", () => { describe("when searching for a specific group name", () => { it("should load only groups with that name", async () => { - jest.useFakeTimers(); + vi.useFakeTimers(); const { wrapper } = getWrapper(); const autocomplete = wrapper.findComponent(VAutocomplete); diff --git a/src/modules/feature/editor/CKEditor.unit.ts b/src/modules/feature/editor/CKEditor.unit.ts index 1a6182e58e..f0154506c5 100644 --- a/src/modules/feature/editor/CKEditor.unit.ts +++ b/src/modules/feature/editor/CKEditor.unit.ts @@ -140,7 +140,7 @@ describe("CKEditor", () => { }); it("should emit delayed blur on editor blur", async () => { - jest.useFakeTimers(); + vi.useFakeTimers(); const { wrapper } = setup(); const ck = wrapper.findComponent({ diff --git a/src/modules/feature/media-shelf/MediaBoardAvailableElement.unit.ts b/src/modules/feature/media-shelf/MediaBoardAvailableElement.unit.ts index 8c4edfe7a1..482b59c5d9 100644 --- a/src/modules/feature/media-shelf/MediaBoardAvailableElement.unit.ts +++ b/src/modules/feature/media-shelf/MediaBoardAvailableElement.unit.ts @@ -85,7 +85,7 @@ describe("MediaBoardAvailableElement", () => { .mocked(useSharedMediaBoardState) .mockReturnValue(useSharedMediaBoardStateMock); - jest.useFakeTimers({ legacyFakeTimers: true }); + vi.useFakeTimers({ legacyFakeTimers: true }); }); afterEach(() => { diff --git a/src/modules/feature/media-shelf/MediaBoardExternalToolElement.unit.ts b/src/modules/feature/media-shelf/MediaBoardExternalToolElement.unit.ts index 5734c56ca2..816d6d3f94 100644 --- a/src/modules/feature/media-shelf/MediaBoardExternalToolElement.unit.ts +++ b/src/modules/feature/media-shelf/MediaBoardExternalToolElement.unit.ts @@ -98,7 +98,7 @@ describe("MediaBoardExternalToolElement", () => { .mocked(useContextExternalToolConfigurationStatus) .mockReturnValue(useContextExternalToolConfigurationStatusMock); - jest.useFakeTimers({ legacyFakeTimers: true }); + vi.useFakeTimers({ legacyFakeTimers: true }); }); afterEach(() => { diff --git a/src/modules/ui/speed-dial-menu/SpeedDialMenu.unit.ts b/src/modules/ui/speed-dial-menu/SpeedDialMenu.unit.ts index b41f1e845c..5389fe7943 100644 --- a/src/modules/ui/speed-dial-menu/SpeedDialMenu.unit.ts +++ b/src/modules/ui/speed-dial-menu/SpeedDialMenu.unit.ts @@ -108,7 +108,7 @@ describe("SpeedDialMenu", () => { ])( "should open and close menu on click with $type", async ({ component }) => { - jest.useFakeTimers(); + vi.useFakeTimers(); const { wrapper } = setup({ component }); // --- Open @@ -133,7 +133,7 @@ describe("SpeedDialMenu", () => { ])( "should provide incremental index to actions with $type", async ({ component }) => { - jest.useFakeTimers(); + vi.useFakeTimers(); const { wrapper } = setup({ component }); // --- Open @@ -154,7 +154,7 @@ describe("SpeedDialMenu", () => { ])( "should render labels in default slots for menu-button with $type", async ({ component }) => { - jest.useFakeTimers(); + vi.useFakeTimers(); const { wrapper } = setup({ component }); const menu = await wrapper.findComponent(SpeedDialMenu); diff --git a/src/pages/administration/student-overview.unit.js b/src/pages/administration/student-overview.unit.js index f939c6ac39..a8727a4cba 100644 --- a/src/pages/administration/student-overview.unit.js +++ b/src/pages/administration/student-overview.unit.js @@ -126,7 +126,7 @@ describe("students/index", () => { const OLD_ENV = process.env; beforeEach(() => { - jest.useFakeTimers(); + vi.useFakeTimers(); jest.resetModules(); // reset module registry to avoid conflicts process.env = { ...OLD_ENV }; // make a copy diff --git a/src/pages/administration/teacher-overview.unit.js b/src/pages/administration/teacher-overview.unit.js index ff32a6c39f..e55fdb983b 100644 --- a/src/pages/administration/teacher-overview.unit.js +++ b/src/pages/administration/teacher-overview.unit.js @@ -120,7 +120,7 @@ describe("teachers/index", () => { const OLD_ENV = process.env; beforeEach(() => { - jest.useFakeTimers(); + vi.useFakeTimers(); jest.resetModules(); // reset module registry to avoid conflicts process.env = { ...OLD_ENV }; // make a copy diff --git a/src/pages/course-rooms/tools/RoomExternalToolsOverview.unit.ts b/src/pages/course-rooms/tools/RoomExternalToolsOverview.unit.ts index b9d949c5d4..3fc01d0077 100644 --- a/src/pages/course-rooms/tools/RoomExternalToolsOverview.unit.ts +++ b/src/pages/course-rooms/tools/RoomExternalToolsOverview.unit.ts @@ -190,10 +190,10 @@ describe("RoomExternalToolOverview", () => { describe("when refresh time is over", () => { afterEach(() => { - jest.useRealTimers(); + vi.useRealTimers(); }); const setup = () => { - jest.useFakeTimers({ legacyFakeTimers: true }); + vi.useFakeTimers({ legacyFakeTimers: true }); const { refreshTime } = getWrapper(); return { diff --git a/src/store/auth.unit.ts b/src/store/auth.unit.ts index 64725bbee5..e5942a0e79 100644 --- a/src/store/auth.unit.ts +++ b/src/store/auth.unit.ts @@ -13,7 +13,7 @@ import { AxiosError, AxiosInstance } from "axios"; import AuthModule from "./auth"; import EnvConfigModule from "./env-config"; -jest.useFakeTimers(); +vi.useFakeTimers(); describe("auth store module", () => { let consoleErrorSpy: any; diff --git a/src/store/env-config.unit.ts b/src/store/env-config.unit.ts index 84cb98e593..990d2ebbcd 100644 --- a/src/store/env-config.unit.ts +++ b/src/store/env-config.unit.ts @@ -23,7 +23,7 @@ const mockFileEnvs: FilesStorageConfigResponse = { MAX_FILE_SIZE: 10, }; -jest.useFakeTimers(); +vi.useFakeTimers(); describe("env-config module", () => { let consoleWarnSpy: any; diff --git a/src/store/notifier.unit.ts b/src/store/notifier.unit.ts index 410dc61a0a..589537da40 100644 --- a/src/store/notifier.unit.ts +++ b/src/store/notifier.unit.ts @@ -53,7 +53,7 @@ describe("notifier store", () => { }); it("should call removeNotifier when timeout reached", () => { - jest.useFakeTimers(); + vi.useFakeTimers(); const notifierModule = new NotifierModule({}); const addNotifierMock = jest.spyOn(notifierModule, "addNotifier"); const removeNotifierMock = jest.spyOn(notifierModule, "removeNotifier"); diff --git a/src/utils/helpers.unit.js b/src/utils/helpers.unit.js index c28abfb55b..135dae032d 100644 --- a/src/utils/helpers.unit.js +++ b/src/utils/helpers.unit.js @@ -3,7 +3,7 @@ import { delay } from "./helpers"; describe("helpers", () => { describe("delay", () => { test("should not resolve until timeout has passed", async () => { - jest.useFakeTimers(); + vi.useFakeTimers(); const spy = vi.fn(); delay(100).then(spy); From 8e6e41c7fdecc039f94e39808418eb58b04e9280 Mon Sep 17 00:00:00 2001 From: Odalys Adam Date: Mon, 21 Oct 2024 23:12:51 +0200 Subject: [PATCH 08/18] replace jest.spyOn with vi.spyOn --- .../ExternalToolSection.unit.ts | 2 +- src/components/atoms/vRoomAvatar.unit.ts | 2 +- .../base/BaseInput/BaseInput.unit.js | 2 +- src/components/base/BaseLink.unit.js | 4 +- .../LernstoreCollectionDetailView.unit.js | 2 +- src/components/molecules/RoomModal.unit.ts | 6 +-- src/components/molecules/RoomTaskCard.unit.ts | 6 +-- src/components/molecules/TaskItemMenu.unit.ts | 2 +- .../molecules/TaskItemStudent.unit.ts | 2 +- .../molecules/TaskItemTeacher.unit.ts | 2 +- .../molecules/vImportUsersMatchSearch.unit.ts | 6 +-- .../DataTable/BackendDataTable.unit.js | 2 +- .../administration/AuthSystems.unit.js | 6 +-- .../administration/GeneralSettings.unit.js | 4 +- .../administration/ImportUsers.unit.ts | 2 +- src/components/share/ImportFlow.unit.ts | 2 +- src/mixins/infiniteScrolling.unit.js | 4 +- src/mixins/toastsFromQueryString.unit.js | 4 +- src/modules/data/board/Board.store.unit.ts | 2 +- .../data/board/BoardApi.composable.unit.ts | 10 ++-- .../boardSocketApi.composable.unit.ts | 2 +- .../ExternalToolApi.composable.unit.ts | 2 +- ...ExternalToolLaunchState.composable.unit.ts | 8 +-- .../SchoolExternalToolApi.composable.unit.ts | 2 +- .../contextExternalToolApi.composable.unit.ts | 2 +- ...xternalToolReferenceApi.composable.unit.ts | 2 +- .../data/group/GroupApi.composable.unit.ts | 2 +- .../ProvisioningOptionsApi.composable.unit.ts | 2 +- .../data/room/courseApi.composable.unit.ts | 2 +- .../data/system/SystemApi.composable.unit.ts | 2 +- .../CollaborativeTextEditorElement.unit.ts | 2 +- .../FileStorageApi.composable.unit.ts | 20 +++---- .../MetaTagExtractorApi.composable.unit.ts | 2 +- .../SubmissionItemApi.composable.unit.ts | 2 +- .../data/mediaBoardApi.composable.unit.ts | 2 +- .../feature/news-form/FormNews.unit.ts | 4 +- .../ui/room-details/RoomLessonCard.unit.ts | 2 +- .../SchoolSettings.page.unit.ts | 2 +- src/pages/administration/migration.unit.ts | 13 ++--- .../administration/student-consent.unit.js | 2 +- .../administration/teacher-create.unit.js | 2 +- src/store/application-error.unit.ts | 12 ++--- src/store/auth.unit.ts | 4 +- src/store/common-cartridge-export.unit.ts | 2 +- src/store/common-cartridge-import.unit.ts | 2 +- src/store/content.unit.ts | 5 +- src/store/course-room-details.unit.ts | 14 ++--- src/store/course-room-list.unit.ts | 6 +-- src/store/courses.unit.js | 8 +-- src/store/env-config.unit.ts | 12 ++--- src/store/group.unit.ts | 2 +- src/store/import-users.unit.ts | 2 +- src/store/loading-state.unit.ts | 4 +- src/store/notifier.unit.ts | 10 ++-- src/store/privacy-policy.unit.ts | 21 +++----- src/store/school-external-tools.unit.ts | 2 +- src/store/schools.unit.ts | 54 +++++++++---------- src/store/share.unit.ts | 14 ++--- src/store/status-alerts.unit.ts | 8 +-- src/store/tasks.unit.ts | 4 +- src/store/terms-of-use.unit.ts | 12 ++--- src/store/user-login-migrations.unit.ts | 12 ++--- 62 files changed, 173 insertions(+), 188 deletions(-) diff --git a/src/components/administration/ExternalToolSection.unit.ts b/src/components/administration/ExternalToolSection.unit.ts index 174085f4bc..fb1c3418c5 100644 --- a/src/components/administration/ExternalToolSection.unit.ts +++ b/src/components/administration/ExternalToolSection.unit.ts @@ -179,7 +179,7 @@ describe("ExternalToolSection", () => { }); const windowMock = createMock(); - jest.spyOn(window, "open").mockImplementation(() => windowMock); + vi.spyOn(window, "open").mockImplementation(() => windowMock); return { wrapper, diff --git a/src/components/atoms/vRoomAvatar.unit.ts b/src/components/atoms/vRoomAvatar.unit.ts index d4c9581219..21d9df25e2 100644 --- a/src/components/atoms/vRoomAvatar.unit.ts +++ b/src/components/atoms/vRoomAvatar.unit.ts @@ -134,7 +134,7 @@ describe("vRoomAvatar", () => { set: vi.fn(), get: () => createMock(), }); - const locationSpy = jest.spyOn(window, "location", "set"); + const locationSpy = vi.spyOn(window, "location", "set"); const { wrapper } = setup({ condenseLayout: true }); const avatarComponent = wrapper.findComponent({ name: "VAvatar" }); diff --git a/src/components/base/BaseInput/BaseInput.unit.js b/src/components/base/BaseInput/BaseInput.unit.js index 32f7536689..786596e6f5 100644 --- a/src/components/base/BaseInput/BaseInput.unit.js +++ b/src/components/base/BaseInput/BaseInput.unit.js @@ -61,7 +61,7 @@ describe("@/components/base/BaseInput", () => { }); it("writes an error to the console on unsupported types", () => { - jest.spyOn(console, "error"); + vi.spyOn(console, "error"); createWrapper({ type: "unsupported", }); diff --git a/src/components/base/BaseLink.unit.js b/src/components/base/BaseLink.unit.js index a2ece95ab8..59ff9ed215 100644 --- a/src/components/base/BaseLink.unit.js +++ b/src/components/base/BaseLink.unit.js @@ -85,7 +85,7 @@ describe("@/components/base/BaseLink", () => { it("log warning for insecure external urls", () => { // use .mockImplementation() to prevent output to console - const consoleWarn = jest.spyOn(console, "warn").mockImplementation(); + const consoleWarn = vi.spyOn(console, "warn").mockImplementation(); createWrapper({ props: { href: "http://dbildungscloud.de", @@ -98,7 +98,7 @@ describe("@/components/base/BaseLink", () => { it("log warning for invalid props", () => { // use .mockImplementation() to prevent output to console - const consoleWarn = jest.spyOn(console, "warn").mockImplementation(); + const consoleWarn = vi.spyOn(console, "warn").mockImplementation(); createWrapper(); diff --git a/src/components/lern-store/LernstoreCollectionDetailView.unit.js b/src/components/lern-store/LernstoreCollectionDetailView.unit.js index da5c60c928..349429cf59 100644 --- a/src/components/lern-store/LernstoreCollectionDetailView.unit.js +++ b/src/components/lern-store/LernstoreCollectionDetailView.unit.js @@ -24,7 +24,7 @@ const testProps = { resource: Collection, }; -jest.spyOn(window, "scrollTo").mockImplementation(); +vi.spyOn(window, "scrollTo").mockImplementation(); setupStores({ contentModule: ContentModule, diff --git a/src/components/molecules/RoomModal.unit.ts b/src/components/molecules/RoomModal.unit.ts index 999c3d1e19..1131ec988b 100644 --- a/src/components/molecules/RoomModal.unit.ts +++ b/src/components/molecules/RoomModal.unit.ts @@ -105,7 +105,7 @@ describe("RoomModal", () => { const setup = async () => { const { wrapper } = getWrapper({ isOpen: true }); - const storeRoomUpdateMock = jest.spyOn(courseRoomListModule, "update"); + const storeRoomUpdateMock = vi.spyOn(courseRoomListModule, "update"); const titleInput = wrapper .findComponent({ name: "v-text-field" }) .find("input"); @@ -140,7 +140,7 @@ describe("RoomModal", () => { const setup = async () => { const { wrapper } = getWrapper({ isOpen: true }); - const storeRoomUpdateMock = jest.spyOn(courseRoomListModule, "update"); + const storeRoomUpdateMock = vi.spyOn(courseRoomListModule, "update"); const titleInput = wrapper .findComponent({ name: "v-text-field" }) .find("input"); @@ -181,7 +181,7 @@ describe("RoomModal", () => { const setup = async () => { const { wrapper } = getWrapper({ isOpen: true }); - const storeRoomUpdateMock = jest.spyOn(courseRoomListModule, "update"); + const storeRoomUpdateMock = vi.spyOn(courseRoomListModule, "update"); const titleInput = wrapper .findComponent({ name: "v-text-field" }) .find("input"); diff --git a/src/components/molecules/RoomTaskCard.unit.ts b/src/components/molecules/RoomTaskCard.unit.ts index 4535d2bf33..0a743e3084 100644 --- a/src/components/molecules/RoomTaskCard.unit.ts +++ b/src/components/molecules/RoomTaskCard.unit.ts @@ -235,7 +235,7 @@ describe("@/components/molecules/RoomTaskCard", () => { set: vi.fn(), get: () => createMock(), }); - const locationSpy = jest.spyOn(window, "location", "set"); + const locationSpy = vi.spyOn(window, "location", "set"); const wrapper = getWrapper({ task: testTask, userRole }); const taskCard = wrapper.find(".task-card"); @@ -250,7 +250,7 @@ describe("@/components/molecules/RoomTaskCard", () => { set: vi.fn(), get: () => createMock(), }); - const locationSpy = jest.spyOn(window, "location", "set"); + const locationSpy = vi.spyOn(window, "location", "set"); const wrapper = getWrapper({ task: testTask, @@ -809,7 +809,7 @@ describe("@/components/molecules/RoomTaskCard", () => { get: () => createMock(), }); - const locationSpy = jest.spyOn(window, "location", "set"); + const locationSpy = vi.spyOn(window, "location", "set"); await wrapper.trigger("keydown.enter"); diff --git a/src/components/molecules/TaskItemMenu.unit.ts b/src/components/molecules/TaskItemMenu.unit.ts index bbcfcd729b..d37cd29c92 100644 --- a/src/components/molecules/TaskItemMenu.unit.ts +++ b/src/components/molecules/TaskItemMenu.unit.ts @@ -176,7 +176,7 @@ describe("@/components/molecules/TaskItemMenu", () => { describe("when restoring a task", () => { it("should call restoreTask of FinishedTasksModule", async () => { - const restoreTaskMock = jest.spyOn(finishedTasksModule, "restoreTask"); + const restoreTaskMock = vi.spyOn(finishedTasksModule, "restoreTask"); const task = tasksTeacher[1]; const wrapper = getWrapper({ taskId: task.id, diff --git a/src/components/molecules/TaskItemStudent.unit.ts b/src/components/molecules/TaskItemStudent.unit.ts index 13f01dea9b..33dc22bb5b 100644 --- a/src/components/molecules/TaskItemStudent.unit.ts +++ b/src/components/molecules/TaskItemStudent.unit.ts @@ -56,7 +56,7 @@ describe("@/components/molecules/TaskItemStudent", () => { set: vi.fn(), get: () => createMock(), }); - const locationSpy = jest.spyOn(window, "location", "set"); + const locationSpy = vi.spyOn(window, "location", "set"); const wrapper = getWrapper({ task: tasks[0] }); const taskCard = wrapper.findComponent({ name: "v-list-item" }); diff --git a/src/components/molecules/TaskItemTeacher.unit.ts b/src/components/molecules/TaskItemTeacher.unit.ts index aafc918d18..50ce44670a 100644 --- a/src/components/molecules/TaskItemTeacher.unit.ts +++ b/src/components/molecules/TaskItemTeacher.unit.ts @@ -79,7 +79,7 @@ describe("@/components/molecules/TaskItemTeacher", () => { set: vi.fn(), get: () => createMock(), }); - const locationSpy = jest.spyOn(window, "location", "set"); + const locationSpy = vi.spyOn(window, "location", "set"); const wrapper = getWrapper({ task: tasksTeacher[0] }); const taskCard = wrapper.findComponent(VListItem); diff --git a/src/components/molecules/vImportUsersMatchSearch.unit.ts b/src/components/molecules/vImportUsersMatchSearch.unit.ts index 42dc9faba4..9be6aa1265 100644 --- a/src/components/molecules/vImportUsersMatchSearch.unit.ts +++ b/src/components/molecules/vImportUsersMatchSearch.unit.ts @@ -68,7 +68,7 @@ describe("@/components/molecules/vImportUsersMatchSearch", () => { }); it("should set 'flagged' property true when flag-button clicked", async () => { - const saveFlagMock = jest.spyOn(importUsersModule, "saveFlag"); + const saveFlagMock = vi.spyOn(importUsersModule, "saveFlag"); saveFlagMock.mockImplementation(async () => { return Promise.resolve({ flagged: true, @@ -121,7 +121,7 @@ describe("@/components/molecules/vImportUsersMatchSearch", () => { text: "Cord Carl", }; - const saveMatchMock = jest.spyOn(importUsersModule, "saveMatch"); + const saveMatchMock = vi.spyOn(importUsersModule, "saveMatch"); saveMatchMock.mockImplementation(async () => { return Promise.resolve({ ...testProps.editedItem, match }) as any; }); @@ -168,7 +168,7 @@ describe("@/components/molecules/vImportUsersMatchSearch", () => { ldapSource: "LDAP", }); - const deleteMatchMock = jest.spyOn(importUsersModule, "deleteMatch"); + const deleteMatchMock = vi.spyOn(importUsersModule, "deleteMatch"); deleteMatchMock.mockImplementation(async () => { return Promise.resolve(importUser) as any; }); diff --git a/src/components/organisms/DataTable/BackendDataTable.unit.js b/src/components/organisms/DataTable/BackendDataTable.unit.js index 83c682ed11..abea25a3e4 100644 --- a/src/components/organisms/DataTable/BackendDataTable.unit.js +++ b/src/components/organisms/DataTable/BackendDataTable.unit.js @@ -47,7 +47,7 @@ const getTableRowsContent = async (wrapper) => { describe("@/components/organisms/DataTable/BackendDataTable", () => { beforeEach(() => { - jest.spyOn(window, "scrollTo").mockImplementation(); + vi.spyOn(window, "scrollTo").mockImplementation(); }); describe("rendering", () => { diff --git a/src/components/organisms/administration/AuthSystems.unit.js b/src/components/organisms/administration/AuthSystems.unit.js index c01dad7269..38c9b50b7d 100644 --- a/src/components/organisms/administration/AuthSystems.unit.js +++ b/src/components/organisms/administration/AuthSystems.unit.js @@ -152,7 +152,7 @@ describe("AuthSystems", () => { return mockElem; }, }); - const clipboardSpy = jest.spyOn(navigator.clipboard, "writeText"); + const clipboardSpy = vi.spyOn(navigator.clipboard, "writeText"); const wrapper = createWrapper({ props: generateProps() }); const loginLinkFieldVisibility = wrapper.findAll( @@ -311,7 +311,7 @@ describe("AuthSystems", () => { permissions: ["SYSTEM_CREATE"], }); authModule.setMe(mockMe); - const deleteSpy = jest.spyOn(schoolsModule, "deleteSystem"); + const deleteSpy = vi.spyOn(schoolsModule, "deleteSystem"); const wrapper = createWrapper({ props: generateProps() }); expect(wrapper.findAll("tr").length).toBe(5); @@ -330,7 +330,7 @@ describe("AuthSystems", () => { permissions: ["SYSTEM_CREATE"], }); authModule.setMe(mockMe); - const removeSystem = jest.spyOn(AuthSystems.methods, "removeSystem"); + const removeSystem = vi.spyOn(AuthSystems.methods, "removeSystem"); const wrapper = createWrapper({ props: generateProps() }); const deleteBtn = wrapper.find(searchStrings.deleteSystemButton); diff --git a/src/components/organisms/administration/GeneralSettings.unit.js b/src/components/organisms/administration/GeneralSettings.unit.js index c4a95c9eb6..0600aa1b2f 100644 --- a/src/components/organisms/administration/GeneralSettings.unit.js +++ b/src/components/organisms/administration/GeneralSettings.unit.js @@ -276,7 +276,7 @@ describe("GeneralSettings", () => { describe("events", () => { it("update button should trigger save method", async () => { - const updateSpy = jest.spyOn(schoolsModule, "update"); + const updateSpy = vi.spyOn(schoolsModule, "update"); const wrapper = getWrapper(); await wrapper.setData(mockData); @@ -286,7 +286,7 @@ describe("GeneralSettings", () => { }); it("update works without county", async () => { - const updateSpy = jest.spyOn(schoolsModule, "update"); + const updateSpy = vi.spyOn(schoolsModule, "update"); const wrapper = getWrapper(); const localMockData = { localSchool: { ...mockData.localSchool, county: null }, diff --git a/src/components/organisms/administration/ImportUsers.unit.ts b/src/components/organisms/administration/ImportUsers.unit.ts index 6d3c3461db..d5d712d8fa 100644 --- a/src/components/organisms/administration/ImportUsers.unit.ts +++ b/src/components/organisms/administration/ImportUsers.unit.ts @@ -200,7 +200,7 @@ describe("@/components/molecules/importUsers", () => { const setup = () => { const wrapper = getWrapper(mockData); - const getDataFromApiSpy = jest.spyOn(wrapper.vm, "getDataFromApi"); + const getDataFromApiSpy = vi.spyOn(wrapper.vm, "getDataFromApi"); return { wrapper, diff --git a/src/components/share/ImportFlow.unit.ts b/src/components/share/ImportFlow.unit.ts index 8ba6d0487b..88d3d4d773 100644 --- a/src/components/share/ImportFlow.unit.ts +++ b/src/components/share/ImportFlow.unit.ts @@ -85,7 +85,7 @@ describe("@components/share/ImportFlow", () => { rooms: CourseRoomListModule, envConfigModule: EnvConfigModule, }); - jest.spyOn(courseRoomListModule, "fetchAllElements").mockImplementation(); + vi.spyOn(courseRoomListModule, "fetchAllElements").mockImplementation(); }); describe("token is provided", () => { diff --git a/src/mixins/infiniteScrolling.unit.js b/src/mixins/infiniteScrolling.unit.js index 5109114d92..2ce15c8fed 100644 --- a/src/mixins/infiniteScrolling.unit.js +++ b/src/mixins/infiniteScrolling.unit.js @@ -1,7 +1,7 @@ import infiniteScrolling from "./infiniteScrolling"; const getInstance = () => { - jest.spyOn(window, "scrollTo").mockImplementation(); + vi.spyOn(window, "scrollTo").mockImplementation(); return mount( { @@ -17,7 +17,7 @@ describe("@/mixins/infiniteScrolling", () => { expect(getInstance).not.toThrow(); }); it("$_backToTop scroll to the top", () => { - const scrollToMock = jest.spyOn(window, "scrollTo"); + const scrollToMock = vi.spyOn(window, "scrollTo"); const wrapper = getInstance(); wrapper.vm.$_backToTop(); expect(scrollToMock.mock.calls.pop()[0]).toStrictEqual( diff --git a/src/mixins/toastsFromQueryString.unit.js b/src/mixins/toastsFromQueryString.unit.js index 1c8e8f5379..e8d4c789be 100644 --- a/src/mixins/toastsFromQueryString.unit.js +++ b/src/mixins/toastsFromQueryString.unit.js @@ -14,7 +14,7 @@ describe("@/mixins/toastsFromQueryString", () => { ["success", "successMessage", 5000], ["info", "infoMessage", undefined], ])("can show an toast of type %p", (type, message, duration) => { - const notifierMock = jest.spyOn(notifierModule, "show"); + const notifierMock = vi.spyOn(notifierModule, "show"); shallowMount({ template: "
", @@ -52,7 +52,7 @@ describe("@/mixins/toastsFromQueryString", () => { it.each([[""], ["http://another.adress/abc/def"]])( "does not show a toast if request is coming from origin %p", (ref) => { - const notifierMock = jest.spyOn(notifierModule, "show"); + const notifierMock = vi.spyOn(notifierModule, "show"); shallowMount({ template: "
", diff --git a/src/modules/data/board/Board.store.unit.ts b/src/modules/data/board/Board.store.unit.ts index a311cc3ad9..8a2a6cec6e 100644 --- a/src/modules/data/board/Board.store.unit.ts +++ b/src/modules/data/board/Board.store.unit.ts @@ -1200,7 +1200,7 @@ describe("BoardStore", () => { }); it('should call applicationErrorModule.showError if "isOwnAction" is false', async () => { - const setErrorSpy = jest.spyOn(applicationErrorModule, "setError"); + const setErrorSpy = vi.spyOn(applicationErrorModule, "setError"); const { boardStore } = setup({ socketFlag: true }); await boardStore.deleteBoardRequest({ boardId: "boardId" }, "roomId"); diff --git a/src/modules/data/board/BoardApi.composable.unit.ts b/src/modules/data/board/BoardApi.composable.unit.ts index 96397b6631..4f9641d6db 100644 --- a/src/modules/data/board/BoardApi.composable.unit.ts +++ b/src/modules/data/board/BoardApi.composable.unit.ts @@ -25,11 +25,11 @@ describe("BoardApi.composable", () => { elementApi = createMock(); roomsApi = createMock(); - jest.spyOn(serverApi, "BoardApiFactory").mockReturnValue(boardApi); - jest.spyOn(serverApi, "BoardColumnApiFactory").mockReturnValue(columnApi); - jest.spyOn(serverApi, "BoardCardApiFactory").mockReturnValue(cardApi); - jest.spyOn(serverApi, "BoardElementApiFactory").mockReturnValue(elementApi); - jest.spyOn(serverApi, "CourseRoomsApiFactory").mockReturnValue(roomsApi); + vi.spyOn(serverApi, "BoardApiFactory").mockReturnValue(boardApi); + vi.spyOn(serverApi, "BoardColumnApiFactory").mockReturnValue(columnApi); + vi.spyOn(serverApi, "BoardCardApiFactory").mockReturnValue(cardApi); + vi.spyOn(serverApi, "BoardElementApiFactory").mockReturnValue(elementApi); + vi.spyOn(serverApi, "CourseRoomsApiFactory").mockReturnValue(roomsApi); }); afterEach(() => { diff --git a/src/modules/data/board/boardActions/boardSocketApi.composable.unit.ts b/src/modules/data/board/boardActions/boardSocketApi.composable.unit.ts index 85bce8b08d..3e7ce82cbf 100644 --- a/src/modules/data/board/boardActions/boardSocketApi.composable.unit.ts +++ b/src/modules/data/board/boardActions/boardSocketApi.composable.unit.ts @@ -276,7 +276,7 @@ describe("useBoardSocketApi", () => { describe("failure actions", () => { it("should call applicationErrorModule.setError for fetchBoardFailure action", () => { - const setErrorSpy = jest.spyOn(applicationErrorModule, "setError"); + const setErrorSpy = vi.spyOn(applicationErrorModule, "setError"); const { dispatch } = useBoardSocketApi(); dispatch(BoardActions.fetchBoardFailure({ boardId: "test" })); diff --git a/src/modules/data/external-tool/ExternalToolApi.composable.unit.ts b/src/modules/data/external-tool/ExternalToolApi.composable.unit.ts index a694454416..39ff49aa81 100644 --- a/src/modules/data/external-tool/ExternalToolApi.composable.unit.ts +++ b/src/modules/data/external-tool/ExternalToolApi.composable.unit.ts @@ -21,7 +21,7 @@ describe("ExternalToolApi.composable", () => { beforeEach(() => { toolApi = createMock(); - jest.spyOn(serverApi, "ToolApiFactory").mockReturnValue(toolApi); + vi.spyOn(serverApi, "ToolApiFactory").mockReturnValue(toolApi); }); afterEach(() => { diff --git a/src/modules/data/external-tool/ExternalToolLaunchState.composable.unit.ts b/src/modules/data/external-tool/ExternalToolLaunchState.composable.unit.ts index 7f760d2c6e..c10c2b2811 100644 --- a/src/modules/data/external-tool/ExternalToolLaunchState.composable.unit.ts +++ b/src/modules/data/external-tool/ExternalToolLaunchState.composable.unit.ts @@ -204,7 +204,7 @@ describe("ExternalToolLaunchState.composable", () => { const setup = () => { const composable = useExternalToolLaunchState(); - jest.spyOn(window, "open"); + vi.spyOn(window, "open"); return { ...composable, @@ -231,7 +231,7 @@ describe("ExternalToolLaunchState.composable", () => { const composable = useExternalToolLaunchState(); composable.toolLaunchRequest.value = launchRequest; - jest.spyOn(window, "open"); + vi.spyOn(window, "open"); return { ...composable, @@ -258,7 +258,7 @@ describe("ExternalToolLaunchState.composable", () => { const composable = useExternalToolLaunchState(); composable.toolLaunchRequest.value = launchRequest; - jest.spyOn(window, "open"); + vi.spyOn(window, "open"); return { ...composable, @@ -374,7 +374,7 @@ describe("ExternalToolLaunchState.composable", () => { const composable = useExternalToolLaunchState(); composable.toolLaunchRequest.value = launchRequest; - jest.spyOn(window, "open"); + vi.spyOn(window, "open"); return { ...composable, diff --git a/src/modules/data/external-tool/SchoolExternalToolApi.composable.unit.ts b/src/modules/data/external-tool/SchoolExternalToolApi.composable.unit.ts index bb1ae62d9a..1d2cacefd7 100644 --- a/src/modules/data/external-tool/SchoolExternalToolApi.composable.unit.ts +++ b/src/modules/data/external-tool/SchoolExternalToolApi.composable.unit.ts @@ -14,7 +14,7 @@ describe("SchoolExternalToolApi.composable", () => { beforeEach(() => { toolApi = createMock(); - jest.spyOn(serverApi, "ToolApiFactory").mockReturnValue(toolApi); + vi.spyOn(serverApi, "ToolApiFactory").mockReturnValue(toolApi); }); afterEach(() => { diff --git a/src/modules/data/external-tool/contextExternalToolApi.composable.unit.ts b/src/modules/data/external-tool/contextExternalToolApi.composable.unit.ts index cd505e274e..5c236c7095 100644 --- a/src/modules/data/external-tool/contextExternalToolApi.composable.unit.ts +++ b/src/modules/data/external-tool/contextExternalToolApi.composable.unit.ts @@ -29,7 +29,7 @@ describe("contextExternalToolApi.composable", () => { beforeEach(() => { toolApi = createMock(); - jest.spyOn(serverApi, "ToolApiFactory").mockReturnValue(toolApi); + vi.spyOn(serverApi, "ToolApiFactory").mockReturnValue(toolApi); }); afterEach(() => { diff --git a/src/modules/data/external-tool/externalToolReferenceApi.composable.unit.ts b/src/modules/data/external-tool/externalToolReferenceApi.composable.unit.ts index 5b2268801b..5ed7443b8d 100644 --- a/src/modules/data/external-tool/externalToolReferenceApi.composable.unit.ts +++ b/src/modules/data/external-tool/externalToolReferenceApi.composable.unit.ts @@ -15,7 +15,7 @@ describe("externalToolReferenceApi.composable", () => { beforeEach(() => { toolApi = createMock(); - jest.spyOn(serverApi, "ToolApiFactory").mockReturnValue(toolApi); + vi.spyOn(serverApi, "ToolApiFactory").mockReturnValue(toolApi); }); afterEach(() => { diff --git a/src/modules/data/group/GroupApi.composable.unit.ts b/src/modules/data/group/GroupApi.composable.unit.ts index 86adae848b..d76ecfb7d6 100644 --- a/src/modules/data/group/GroupApi.composable.unit.ts +++ b/src/modules/data/group/GroupApi.composable.unit.ts @@ -10,7 +10,7 @@ describe("GroupApi.composable", () => { beforeEach(() => { groupApi = createMock(); - jest.spyOn(serverApi, "GroupApiFactory").mockReturnValue(groupApi); + vi.spyOn(serverApi, "GroupApiFactory").mockReturnValue(groupApi); }); afterEach(() => { diff --git a/src/modules/data/provisioning-options/ProvisioningOptionsApi.composable.unit.ts b/src/modules/data/provisioning-options/ProvisioningOptionsApi.composable.unit.ts index d2f0d6f735..db0262ce23 100644 --- a/src/modules/data/provisioning-options/ProvisioningOptionsApi.composable.unit.ts +++ b/src/modules/data/provisioning-options/ProvisioningOptionsApi.composable.unit.ts @@ -20,7 +20,7 @@ describe("ProvisioningOptionsApi.composable", () => { beforeAll(() => { schoolApi = createMock(); - jest.spyOn(serverApi, "SchoolApiFactory").mockReturnValue(schoolApi); + vi.spyOn(serverApi, "SchoolApiFactory").mockReturnValue(schoolApi); setupStores({ schoolsModule: SchoolsModule, diff --git a/src/modules/data/room/courseApi.composable.unit.ts b/src/modules/data/room/courseApi.composable.unit.ts index 743ccdd216..9bdcd8f03e 100644 --- a/src/modules/data/room/courseApi.composable.unit.ts +++ b/src/modules/data/room/courseApi.composable.unit.ts @@ -16,7 +16,7 @@ describe("courseApi.composable", () => { courseApi = createMock(); axiosMock = createMock(); - jest.spyOn(serverApi, "CoursesApiFactory").mockReturnValue(courseApi); + vi.spyOn(serverApi, "CoursesApiFactory").mockReturnValue(courseApi); initializeAxios(axiosMock); }); diff --git a/src/modules/data/system/SystemApi.composable.unit.ts b/src/modules/data/system/SystemApi.composable.unit.ts index 5d004a6b1d..e44c668bb6 100644 --- a/src/modules/data/system/SystemApi.composable.unit.ts +++ b/src/modules/data/system/SystemApi.composable.unit.ts @@ -15,7 +15,7 @@ describe("SystemApi.composable", () => { systemApi = createMock(); useErrorHandlerMock = createMock>(); - jest.spyOn(serverApi, "SystemsApiFactory").mockReturnValue(systemApi); + vi.spyOn(serverApi, "SystemsApiFactory").mockReturnValue(systemApi); vi.mocked(useErrorHandler).mockReturnValue(useErrorHandlerMock); }); diff --git a/src/modules/feature/board-collaborative-text-editor-element/CollaborativeTextEditorElement.unit.ts b/src/modules/feature/board-collaborative-text-editor-element/CollaborativeTextEditorElement.unit.ts index 8e34bfff15..8815e34717 100644 --- a/src/modules/feature/board-collaborative-text-editor-element/CollaborativeTextEditorElement.unit.ts +++ b/src/modules/feature/board-collaborative-text-editor-element/CollaborativeTextEditorElement.unit.ts @@ -51,7 +51,7 @@ describe("CollaborativeTextEditorElement", () => { }); const windowMock = createMock(); - jest.spyOn(window, "open").mockImplementation(() => windowMock); + vi.spyOn(window, "open").mockImplementation(() => windowMock); return { wrapper, diff --git a/src/modules/feature/board-file-element/shared/composables/FileStorageApi.composable.unit.ts b/src/modules/feature/board-file-element/shared/composables/FileStorageApi.composable.unit.ts index 335671c421..57569bc96b 100644 --- a/src/modules/feature/board-file-element/shared/composables/FileStorageApi.composable.unit.ts +++ b/src/modules/feature/board-file-element/shared/composables/FileStorageApi.composable.unit.ts @@ -63,7 +63,7 @@ describe("FileStorageApi Composable", () => { const parentId = ObjectIdMock(); const fileApi = createMock(); - jest.spyOn(serverApi, "FileApiFactory").mockReturnValue(fileApi); + vi.spyOn(serverApi, "FileApiFactory").mockReturnValue(fileApi); setupFileStorageNotifier(); @@ -87,7 +87,7 @@ describe("FileStorageApi Composable", () => { const parentId = ObjectIdMock(); const fileApi = createMock(); - jest.spyOn(serverApi, "FileApiFactory").mockReturnValue(fileApi); + vi.spyOn(serverApi, "FileApiFactory").mockReturnValue(fileApi); setupFileStorageNotifier(); @@ -127,7 +127,7 @@ describe("FileStorageApi Composable", () => { ); const fileApi = createMock(); - jest.spyOn(serverApi, "FileApiFactory").mockReturnValue(fileApi); + vi.spyOn(serverApi, "FileApiFactory").mockReturnValue(fileApi); fileApi.list.mockResolvedValueOnce(response); setupFileStorageNotifier(); @@ -195,7 +195,7 @@ describe("FileStorageApi Composable", () => { mockedMapAxiosErrorToResponseError.mockReturnValue(expectedPayload); const fileApi = createMock(); - jest.spyOn(serverApi, "FileApiFactory").mockReturnValue(fileApi); + vi.spyOn(serverApi, "FileApiFactory").mockReturnValue(fileApi); fileApi.list.mockRejectedValue(responseError); const { @@ -267,7 +267,7 @@ describe("FileStorageApi Composable", () => { }); const fileApi = createMock(); - jest.spyOn(serverApi, "FileApiFactory").mockReturnValue(fileApi); + vi.spyOn(serverApi, "FileApiFactory").mockReturnValue(fileApi); fileApi.upload.mockResolvedValueOnce(response); setupFileStorageNotifier(); @@ -320,7 +320,7 @@ describe("FileStorageApi Composable", () => { mockedMapAxiosErrorToResponseError.mockReturnValue(expectedPayload); const fileApi = createMock(); - jest.spyOn(serverApi, "FileApiFactory").mockReturnValue(fileApi); + vi.spyOn(serverApi, "FileApiFactory").mockReturnValue(fileApi); fileApi.upload.mockRejectedValue(responseError); const { showFileTooBigError } = setupFileStorageNotifier(); @@ -370,7 +370,7 @@ describe("FileStorageApi Composable", () => { }); const fileApi = createMock(); - jest.spyOn(serverApi, "FileApiFactory").mockReturnValue(fileApi); + vi.spyOn(serverApi, "FileApiFactory").mockReturnValue(fileApi); fileApi.uploadFromUrl.mockResolvedValueOnce(response); setupFileStorageNotifier(); @@ -427,7 +427,7 @@ describe("FileStorageApi Composable", () => { mockedMapAxiosErrorToResponseError.mockReturnValue(expectedPayload); const fileApi = createMock(); - jest.spyOn(serverApi, "FileApiFactory").mockReturnValue(fileApi); + vi.spyOn(serverApi, "FileApiFactory").mockReturnValue(fileApi); fileApi.uploadFromUrl.mockRejectedValue(responseError); setupFileStorageNotifier(); @@ -470,7 +470,7 @@ describe("FileStorageApi Composable", () => { }); const fileApi = createMock(); - jest.spyOn(serverApi, "FileApiFactory").mockReturnValue(fileApi); + vi.spyOn(serverApi, "FileApiFactory").mockReturnValue(fileApi); fileApi.patchFilename.mockResolvedValueOnce(response); setupFileStorageNotifier(); @@ -519,7 +519,7 @@ describe("FileStorageApi Composable", () => { mockedMapAxiosErrorToResponseError.mockReturnValue(expectedPayload); const fileApi = createMock(); - jest.spyOn(serverApi, "FileApiFactory").mockReturnValue(fileApi); + vi.spyOn(serverApi, "FileApiFactory").mockReturnValue(fileApi); fileApi.patchFilename.mockRejectedValue(responseError); const { showFileExistsError } = setupFileStorageNotifier(); diff --git a/src/modules/feature/board-link-element/composables/MetaTagExtractorApi.composable.unit.ts b/src/modules/feature/board-link-element/composables/MetaTagExtractorApi.composable.unit.ts index 0ac5851551..650e87e717 100644 --- a/src/modules/feature/board-link-element/composables/MetaTagExtractorApi.composable.unit.ts +++ b/src/modules/feature/board-link-element/composables/MetaTagExtractorApi.composable.unit.ts @@ -11,7 +11,7 @@ describe("useMetaTagExtractorApi", () => { beforeEach(() => { api = createMock(); - jest.spyOn(serverApi, "MetaTagExtractorApiFactory").mockReturnValue(api); + vi.spyOn(serverApi, "MetaTagExtractorApiFactory").mockReturnValue(api); }); afterEach(() => { diff --git a/src/modules/feature/board-submission-element/composables/SubmissionItemApi.composable.unit.ts b/src/modules/feature/board-submission-element/composables/SubmissionItemApi.composable.unit.ts index 1f805ac61b..4317c997cf 100644 --- a/src/modules/feature/board-submission-element/composables/SubmissionItemApi.composable.unit.ts +++ b/src/modules/feature/board-submission-element/composables/SubmissionItemApi.composable.unit.ts @@ -10,7 +10,7 @@ describe("SubmissionItemApi.composable", () => { elementApi = createMock(); submissionItemApi = createMock(); - jest.spyOn(serverApi, "BoardElementApiFactory").mockReturnValue(elementApi); + vi.spyOn(serverApi, "BoardElementApiFactory").mockReturnValue(elementApi); jest .spyOn(serverApi, "BoardSubmissionApiFactory") .mockReturnValue(submissionItemApi); diff --git a/src/modules/feature/media-shelf/data/mediaBoardApi.composable.unit.ts b/src/modules/feature/media-shelf/data/mediaBoardApi.composable.unit.ts index 051058b54a..1da5593533 100644 --- a/src/modules/feature/media-shelf/data/mediaBoardApi.composable.unit.ts +++ b/src/modules/feature/media-shelf/data/mediaBoardApi.composable.unit.ts @@ -33,7 +33,7 @@ describe("mediaBoardApi.composable", () => { jest .spyOn(serverApi, "MediaBoardApiFactory") .mockReturnValue(mediaBoardApi); - jest.spyOn(serverApi, "MediaLineApiFactory").mockReturnValue(mediaLineApi); + vi.spyOn(serverApi, "MediaLineApiFactory").mockReturnValue(mediaLineApi); jest .spyOn(serverApi, "MediaElementApiFactory") .mockReturnValue(mediaElementApi); diff --git a/src/modules/feature/news-form/FormNews.unit.ts b/src/modules/feature/news-form/FormNews.unit.ts index 2592fb3427..19a1df14ca 100644 --- a/src/modules/feature/news-form/FormNews.unit.ts +++ b/src/modules/feature/news-form/FormNews.unit.ts @@ -107,7 +107,7 @@ describe("FormNews", () => { }); it("shows validation error on empty title", async () => { - const notifierMock = jest.spyOn(notifierModule, "show"); + const notifierMock = vi.spyOn(notifierModule, "show"); const { wrapper } = setup({ ...testNews, title: "" }); @@ -117,7 +117,7 @@ describe("FormNews", () => { }); it("shows validation error on empty content", async () => { - const notifierMock = jest.spyOn(notifierModule, "show"); + const notifierMock = vi.spyOn(notifierModule, "show"); const { wrapper } = setup({ ...testNews, content: "" }); diff --git a/src/modules/ui/room-details/RoomLessonCard.unit.ts b/src/modules/ui/room-details/RoomLessonCard.unit.ts index fce088e1d1..59b6a0fe11 100644 --- a/src/modules/ui/room-details/RoomLessonCard.unit.ts +++ b/src/modules/ui/room-details/RoomLessonCard.unit.ts @@ -116,7 +116,7 @@ describe("@/components/molecules/RoomLessonCard", () => { get: () => createMock(), }); - const locationSpy = jest.spyOn(window, "location", "set"); + const locationSpy = vi.spyOn(window, "location", "set"); const lessonCard = wrapper.find(".lesson-card"); await lessonCard.trigger("click"); diff --git a/src/pages/administration/SchoolSettings.page.unit.ts b/src/pages/administration/SchoolSettings.page.unit.ts index 1f48f83529..e6f3c8a785 100644 --- a/src/pages/administration/SchoolSettings.page.unit.ts +++ b/src/pages/administration/SchoolSettings.page.unit.ts @@ -181,7 +181,7 @@ describe("SchoolSettingsPage", () => { }); it("should load needed data from server", async () => { - const fetchSystemsSpy = jest.spyOn(schoolsModule, "fetchSystems"); + const fetchSystemsSpy = vi.spyOn(schoolsModule, "fetchSystems"); setup(); await nextTick(); diff --git a/src/pages/administration/migration.unit.ts b/src/pages/administration/migration.unit.ts index 2b65135f31..842b526771 100644 --- a/src/pages/administration/migration.unit.ts +++ b/src/pages/administration/migration.unit.ts @@ -238,7 +238,7 @@ describe("User Migration / Index", () => { }); it("implement perform migration", async () => { - const performMigrationMock = jest.spyOn( + const performMigrationMock = vi.spyOn( importUsersModule, "performMigration" ); @@ -296,10 +296,7 @@ describe("User Migration / Index", () => { it("perform end maintenance", async () => { const { wrapper } = await setup(); - const endMaintenanceMock = jest.spyOn( - schoolsModule, - "migrationStartSync" - ); + const endMaintenanceMock = vi.spyOn(schoolsModule, "migrationStartSync"); endMaintenanceMock.mockImplementation(async () => { schoolsModule.setSchool({ ...schoolsModule.getSchool, @@ -400,7 +397,7 @@ describe("User Migration / Index", () => { it("should call stores on dialog-confirm", async () => { const { wrapper } = await setup(); - const cancelMigrationMock = jest.spyOn( + const cancelMigrationMock = vi.spyOn( importUsersModule, "cancelMigration" ); @@ -439,7 +436,7 @@ describe("User Migration / Index", () => { it("should redirect to school settings migration section", async () => { const { wrapper } = await setup(); - const cancelMigrationMock = jest.spyOn( + const cancelMigrationMock = vi.spyOn( importUsersModule, "cancelMigration" ); @@ -536,7 +533,7 @@ describe("User Migration / Index", () => { .spyOn(importUsersModule, "clearAllAutoMatches") .mockResolvedValueOnce(Promise.resolve()); - jest.spyOn(importUsersStub.methods, "reloadData"); + vi.spyOn(importUsersStub.methods, "reloadData"); wrapper.vm.migrationStep = 2; wrapper.vm.t("pages.administration.migration.title", { diff --git a/src/pages/administration/student-consent.unit.js b/src/pages/administration/student-consent.unit.js index d72b4ded0d..c5021b44b8 100644 --- a/src/pages/administration/student-consent.unit.js +++ b/src/pages/administration/student-consent.unit.js @@ -290,7 +290,7 @@ describe("students/consent", () => { }); it("should progress next step if consent is not required", async () => { - const notifierModuleMock = jest.spyOn(notifierModule, "show"); + const notifierModuleMock = vi.spyOn(notifierModule, "show"); const envs = envsFactory.build({ FEATURE_CONSENT_NECESSARY: false }); envConfigModule.setEnvs(envs); const { wrapper } = setup(); diff --git a/src/pages/administration/teacher-create.unit.js b/src/pages/administration/teacher-create.unit.js index 0af7527269..486f9379a5 100644 --- a/src/pages/administration/teacher-create.unit.js +++ b/src/pages/administration/teacher-create.unit.js @@ -88,7 +88,7 @@ describe("teachers/new", () => { const mockStore = createMockStore(createTeacherStub); const mockMe = meResponseFactory.build(); - const notifierModuleMock = jest.spyOn(notifierModule, "show"); + const notifierModuleMock = vi.spyOn(notifierModule, "show"); const wrapper = mount(NewTeacher, { global: { plugins: [createTestingVuetify(), createTestingI18n()], diff --git a/src/store/application-error.unit.ts b/src/store/application-error.unit.ts index 70827b5784..8018b7305a 100644 --- a/src/store/application-error.unit.ts +++ b/src/store/application-error.unit.ts @@ -6,7 +6,7 @@ describe("ApplicationErrorModule store", () => { describe("actions", () => { describe("setError", () => { it("should set the state", () => { - const setErrorMock = jest.spyOn(errorModule, "setError"); + const setErrorMock = vi.spyOn(errorModule, "setError"); const payload = { statusCode: HttpStatusCode.Unauthorized, translationKey: "funny error key", @@ -17,8 +17,8 @@ describe("ApplicationErrorModule store", () => { }); it("should call the mutations", () => { - const setStatusCodeMock = jest.spyOn(errorModule, "setStatusCode"); - const setTranslationKeyMock = jest.spyOn( + const setStatusCodeMock = vi.spyOn(errorModule, "setStatusCode"); + const setTranslationKeyMock = vi.spyOn( errorModule, "setTranslationKey" ); @@ -35,15 +35,15 @@ describe("ApplicationErrorModule store", () => { describe("resetError", () => { it("should set the state", () => { - const resetErrorMock = jest.spyOn(errorModule, "resetError"); + const resetErrorMock = vi.spyOn(errorModule, "resetError"); errorModule.resetError(); expect(resetErrorMock).toHaveBeenCalled(); }); it("should call the mutations", () => { - const setStatusCodeMock = jest.spyOn(errorModule, "setStatusCode"); - const setTranslationKeyMock = jest.spyOn( + const setStatusCodeMock = vi.spyOn(errorModule, "setStatusCode"); + const setTranslationKeyMock = vi.spyOn( errorModule, "setTranslationKey" ); diff --git a/src/store/auth.unit.ts b/src/store/auth.unit.ts index e5942a0e79..3c937c41a1 100644 --- a/src/store/auth.unit.ts +++ b/src/store/auth.unit.ts @@ -21,11 +21,11 @@ describe("auth store module", () => { beforeAll(() => { meApi = createMock(); - jest.spyOn(serverApi, "MeApiFactory").mockReturnValue(meApi); + vi.spyOn(serverApi, "MeApiFactory").mockReturnValue(meApi); }); beforeEach(() => { - consoleErrorSpy = jest.spyOn(console, "error").mockImplementation(); + consoleErrorSpy = vi.spyOn(console, "error").mockImplementation(); }); afterEach(() => { diff --git a/src/store/common-cartridge-export.unit.ts b/src/store/common-cartridge-export.unit.ts index 2b01b85fcb..d0ee89a427 100644 --- a/src/store/common-cartridge-export.unit.ts +++ b/src/store/common-cartridge-export.unit.ts @@ -11,7 +11,7 @@ describe("commonCartridgeExportModule", () => { describe("startExport", () => { it("should call courseRoomDetailsModule.downloadCommonCartridgeCourse with the correct version and topic", () => { const commonCartridgeExportModule = new CommonCartridgeExportModule({}); - const courseRoomDetailModuleMock = jest.spyOn( + const courseRoomDetailModuleMock = vi.spyOn( courseRoomDetailsModule, "downloadCommonCartridgeCourse" ); diff --git a/src/store/common-cartridge-import.unit.ts b/src/store/common-cartridge-import.unit.ts index 5965481604..433992e4df 100644 --- a/src/store/common-cartridge-import.unit.ts +++ b/src/store/common-cartridge-import.unit.ts @@ -10,7 +10,7 @@ describe("CommonCartridgeImportModule", () => { sut = new CommonCartridgeImportModule({}); coursesApiMock = createMock(); - jest.spyOn(sut, "coursesApi", "get").mockReturnValue(coursesApiMock); + vi.spyOn(sut, "coursesApi", "get").mockReturnValue(coursesApiMock); }); beforeEach(() => { diff --git a/src/store/content.unit.ts b/src/store/content.unit.ts index 196400f889..9459f839af 100644 --- a/src/store/content.unit.ts +++ b/src/store/content.unit.ts @@ -368,10 +368,7 @@ describe("content module", () => { url: "", }, }; - const setNoticationSpy = jest.spyOn( - contentModule, - "setNotificationModal" - ); + const setNoticationSpy = vi.spyOn(contentModule, "setNotificationModal"); expect(setNoticationSpy.mock.calls[0]).toBeUndefined(); await contentModule.addToLesson(mockQuery); diff --git a/src/store/course-room-details.unit.ts b/src/store/course-room-details.unit.ts index 6e0dbfd026..e975691e10 100644 --- a/src/store/course-room-details.unit.ts +++ b/src/store/course-room-details.unit.ts @@ -457,11 +457,11 @@ describe("course-room module", () => { .mockReturnValue(mockApi as unknown as serverApi.TaskApiInterface); const courseRoomDetailsModule = new CourseRoomDetailsModule({}); - const setBusinessErrorSpy = jest.spyOn( + const setBusinessErrorSpy = vi.spyOn( courseRoomDetailsModule, "setBusinessError" ); - const resetBusinessErrorSpy = jest.spyOn( + const resetBusinessErrorSpy = vi.spyOn( courseRoomDetailsModule, "resetBusinessError" ); @@ -501,12 +501,12 @@ describe("course-room module", () => { .mockReturnValue(mockApi as unknown as serverApi.TaskApiInterface); const courseRoomDetailsModule = new CourseRoomDetailsModule({}); - const finishTaskSpy = jest.spyOn(courseRoomDetailsModule, "finishTask"); - const setBusinessErrorSpy = jest.spyOn( + const finishTaskSpy = vi.spyOn(courseRoomDetailsModule, "finishTask"); + const setBusinessErrorSpy = vi.spyOn( courseRoomDetailsModule, "setBusinessError" ); - const resetBusinessErrorSpy = jest.spyOn( + const resetBusinessErrorSpy = vi.spyOn( courseRoomDetailsModule, "resetBusinessError" ); @@ -548,7 +548,7 @@ describe("course-room module", () => { } as AxiosInstance); })(); const courseRoomDetailsModule = new CourseRoomDetailsModule({}); - const fetchScopePermissionSpy = jest.spyOn( + const fetchScopePermissionSpy = vi.spyOn( courseRoomDetailsModule, "fetchScopePermission" ); @@ -636,7 +636,7 @@ describe("course-room module", () => { HttpStatusCode.RequestTimeout, HttpStatusCode.InternalServerError, ])("should create an application-error for http-error(%p)", (code) => { - const setErrorSpy = jest.spyOn(applicationErrorModule, "setError"); + const setErrorSpy = vi.spyOn(applicationErrorModule, "setError"); const courseRoomDetailsModule = new CourseRoomDetailsModule({}); const errorData = { response: { data: { code } } }; courseRoomDetailsModule.setError(errorData); diff --git a/src/store/course-room-list.unit.ts b/src/store/course-room-list.unit.ts index bf68ff79e4..2ceebaae40 100644 --- a/src/store/course-room-list.unit.ts +++ b/src/store/course-room-list.unit.ts @@ -158,8 +158,8 @@ describe("rooms module", () => { // TODO: call server will be here when server ready const courseRoomListModule = new CourseRoomListModule({}); - const setRoomDataSpy = jest.spyOn(courseRoomListModule, "setRoomData"); - const setLoadingSpy = jest.spyOn(courseRoomListModule, "setLoading"); + const setRoomDataSpy = vi.spyOn(courseRoomListModule, "setRoomData"); + const setLoadingSpy = vi.spyOn(courseRoomListModule, "setLoading"); await courseRoomListModule.delete("id"); @@ -291,7 +291,7 @@ describe("rooms module", () => { message: "", }; const courseRoomListModule = new CourseRoomListModule({}); - const getSharedCourseDataSpy = jest.spyOn( + const getSharedCourseDataSpy = vi.spyOn( courseRoomListModule, "confirmSharedCourseData" ); diff --git a/src/store/courses.unit.js b/src/store/courses.unit.js index 1bf7bd5534..b216782464 100644 --- a/src/store/courses.unit.js +++ b/src/store/courses.unit.js @@ -135,7 +135,7 @@ describe("courses store", () => { }); it("should call toast successful if no error is thrown when courseItem is a homework", async () => { - const notifierMock = jest.spyOn(notifierModule, "show"); + const notifierMock = vi.spyOn(notifierModule, "show"); // given const courseItem = { type: "homework", @@ -151,7 +151,7 @@ describe("courses store", () => { }); it("should call toast successful if no error is thrown when courseItem is a lesson", async () => { - const notifierMock = jest.spyOn(notifierModule, "show"); + const notifierMock = vi.spyOn(notifierModule, "show"); // given const courseItem = { type: "lesson", @@ -167,7 +167,7 @@ describe("courses store", () => { }); it("should call toast error if error is thrown from dispatched action when courseItem is a homework", async () => { - const notifierMock = jest.spyOn(notifierModule, "show"); + const notifierMock = vi.spyOn(notifierModule, "show"); // given const courseItem = { type: "homework", @@ -183,7 +183,7 @@ describe("courses store", () => { }); it("should call toast error if error is thrown from dispatched action when courseItem is a lesson", async () => { - const notifierMock = jest.spyOn(notifierModule, "show"); + const notifierMock = vi.spyOn(notifierModule, "show"); // given const courseItem = { type: "lesson", diff --git a/src/store/env-config.unit.ts b/src/store/env-config.unit.ts index 990d2ebbcd..2099fbc69c 100644 --- a/src/store/env-config.unit.ts +++ b/src/store/env-config.unit.ts @@ -30,8 +30,8 @@ describe("env-config module", () => { let consoleErrorSpy: any; beforeEach(() => { - consoleWarnSpy = jest.spyOn(console, "warn").mockImplementation(); - consoleErrorSpy = jest.spyOn(console, "error").mockImplementation(); + consoleWarnSpy = vi.spyOn(console, "warn").mockImplementation(); + consoleErrorSpy = vi.spyOn(console, "error").mockImplementation(); jest.resetAllMocks(); }); @@ -110,7 +110,7 @@ describe("env-config module", () => { it("should handle status", async () => { setup(); const envConfigModule = new EnvConfigModule({}); - const setStatusSpy = jest.spyOn(envConfigModule, "setStatus"); + const setStatusSpy = vi.spyOn(envConfigModule, "setStatus"); await envConfigModule.loadConfiguration(); @@ -231,7 +231,7 @@ describe("env-config module", () => { it("should handle status", async () => { setup(); const envConfigModule = new EnvConfigModule({}); - const setStatusSpy = jest.spyOn(envConfigModule, "setStatus"); + const setStatusSpy = vi.spyOn(envConfigModule, "setStatus"); await envConfigModule.loadConfiguration(); @@ -329,7 +329,7 @@ describe("env-config module", () => { it("should not set status to completed", async () => { setup(); const envConfigModule = new EnvConfigModule({}); - const setStatusSpy = jest.spyOn(envConfigModule, "setStatus"); + const setStatusSpy = vi.spyOn(envConfigModule, "setStatus"); await envConfigModule.loadConfiguration(); @@ -375,7 +375,7 @@ describe("env-config module", () => { it("should call setStatus with error", async () => { setup(); const envConfigModule = new EnvConfigModule({}); - const setStatusSpy = jest.spyOn(envConfigModule, "setStatus"); + const setStatusSpy = vi.spyOn(envConfigModule, "setStatus"); await envConfigModule.loadConfiguration(); diff --git a/src/store/group.unit.ts b/src/store/group.unit.ts index 7a2f97b8d3..34ad5ea9b5 100644 --- a/src/store/group.unit.ts +++ b/src/store/group.unit.ts @@ -35,7 +35,7 @@ describe("GroupModule", () => { axiosMock = createMock(); initializeAxios(axiosMock); - jest.spyOn(serverApi, "GroupApiFactory").mockReturnValue(apiMock); + vi.spyOn(serverApi, "GroupApiFactory").mockReturnValue(apiMock); }); afterEach(() => { diff --git a/src/store/import-users.unit.ts b/src/store/import-users.unit.ts index 35aba18b1c..eeac0360bf 100644 --- a/src/store/import-users.unit.ts +++ b/src/store/import-users.unit.ts @@ -24,7 +24,7 @@ describe("import-users store actions", () => { let mockApi: any; beforeAll(() => { - spy = jest.spyOn(serverApi, "UserImportApiFactory"); + spy = vi.spyOn(serverApi, "UserImportApiFactory"); }); beforeEach(() => { diff --git a/src/store/loading-state.unit.ts b/src/store/loading-state.unit.ts index 15185b5557..12b70b1fc7 100644 --- a/src/store/loading-state.unit.ts +++ b/src/store/loading-state.unit.ts @@ -6,7 +6,7 @@ describe("loading-state store", () => { describe("open", () => { it("should set default values for omitted options", () => { const loadingStateModule = new LoadingStateModule({}); - const setLoadingStateMock = jest.spyOn( + const setLoadingStateMock = vi.spyOn( loadingStateModule, "setLoadingState" ); @@ -25,7 +25,7 @@ describe("loading-state store", () => { it("should overwrite default values with given options", () => { const loadingStateModule = new LoadingStateModule({}); - const setLoadingStateMock = jest.spyOn( + const setLoadingStateMock = vi.spyOn( loadingStateModule, "setLoadingState" ); diff --git a/src/store/notifier.unit.ts b/src/store/notifier.unit.ts index 589537da40..d03d569ae9 100644 --- a/src/store/notifier.unit.ts +++ b/src/store/notifier.unit.ts @@ -6,7 +6,7 @@ describe("notifier store", () => { describe("show", () => { it("should call 'addNotifier' mutation", () => { const notifierModule = new NotifierModule({}); - const addNotifierMock = jest.spyOn(notifierModule, "addNotifier"); + const addNotifierMock = vi.spyOn(notifierModule, "addNotifier"); const payload: AlertPayload = { text: "hello world", status: "success", @@ -20,7 +20,7 @@ describe("notifier store", () => { it("should add default values", () => { const notifierModule = new NotifierModule({}); - const addNotifierMock = jest.spyOn(notifierModule, "addNotifier"); + const addNotifierMock = vi.spyOn(notifierModule, "addNotifier"); const payload: AlertPayload = { text: "hello world", status: "success", @@ -40,7 +40,7 @@ describe("notifier store", () => { it("should pass payload if optional params are set", () => { const notifierModule = new NotifierModule({}); - const addNotifierMock = jest.spyOn(notifierModule, "addNotifier"); + const addNotifierMock = vi.spyOn(notifierModule, "addNotifier"); const payload: AlertPayload = { text: "hello world", status: "success", @@ -55,8 +55,8 @@ describe("notifier store", () => { it("should call removeNotifier when timeout reached", () => { vi.useFakeTimers(); const notifierModule = new NotifierModule({}); - const addNotifierMock = jest.spyOn(notifierModule, "addNotifier"); - const removeNotifierMock = jest.spyOn(notifierModule, "removeNotifier"); + const addNotifierMock = vi.spyOn(notifierModule, "addNotifier"); + const removeNotifierMock = vi.spyOn(notifierModule, "removeNotifier"); const payload: AlertPayload = { text: "hello world", status: "success", diff --git a/src/store/privacy-policy.unit.ts b/src/store/privacy-policy.unit.ts index 9113c6dc69..6883cfd74b 100644 --- a/src/store/privacy-policy.unit.ts +++ b/src/store/privacy-policy.unit.ts @@ -76,11 +76,8 @@ describe("privacy policy module", () => { }, }; - const setPrivacyPolicySpy = jest.spyOn( - policyModule, - "setPrivacyPolicy" - ); - const setStatusSpy = jest.spyOn(policyModule, "setStatus"); + const setPrivacyPolicySpy = vi.spyOn(policyModule, "setPrivacyPolicy"); + const setStatusSpy = vi.spyOn(policyModule, "setStatus"); await policyModule.fetchPrivacyPolicy("schoolid"); @@ -142,11 +139,8 @@ describe("privacy policy module", () => { }, }; - const setPrivacyPolicySpy = jest.spyOn( - policyModule, - "setPrivacyPolicy" - ); - const setStatusSpy = jest.spyOn(policyModule, "setStatus"); + const setPrivacyPolicySpy = vi.spyOn(policyModule, "setPrivacyPolicy"); + const setStatusSpy = vi.spyOn(policyModule, "setStatus"); await policyModule.createPrivacyPolicy(createPolicyPayload); @@ -184,11 +178,8 @@ describe("privacy policy module", () => { }, }; - const setPrivacyPolicySpy = jest.spyOn( - policyModule, - "setPrivacyPolicy" - ); - const setStatusSpy = jest.spyOn(policyModule, "setStatus"); + const setPrivacyPolicySpy = vi.spyOn(policyModule, "setPrivacyPolicy"); + const setStatusSpy = vi.spyOn(policyModule, "setStatus"); await policyModule.deletePrivacyPolicy(); diff --git a/src/store/school-external-tools.unit.ts b/src/store/school-external-tools.unit.ts index ed0fe57645..13840b48d1 100644 --- a/src/store/school-external-tools.unit.ts +++ b/src/store/school-external-tools.unit.ts @@ -38,7 +38,7 @@ describe("SchoolExternalToolsModule", () => { apiMock = createMock(); - jest.spyOn(serverApi, "ToolApiFactory").mockReturnValue(apiMock); + vi.spyOn(serverApi, "ToolApiFactory").mockReturnValue(apiMock); }); afterEach(() => { diff --git a/src/store/schools.unit.ts b/src/store/schools.unit.ts index fd605e80ca..a22aa81711 100644 --- a/src/store/schools.unit.ts +++ b/src/store/schools.unit.ts @@ -39,8 +39,8 @@ describe("schools module", () => { schoolApi = createMock(); systemsApi = createMock(); - jest.spyOn(serverApi, "SchoolApiFactory").mockReturnValue(schoolApi); - jest.spyOn(serverApi, "SystemsApiFactory").mockReturnValue(systemsApi); + vi.spyOn(serverApi, "SchoolApiFactory").mockReturnValue(schoolApi); + vi.spyOn(serverApi, "SystemsApiFactory").mockReturnValue(systemsApi); setupStores({ authModule: AuthModule, envConfigModule: EnvConfigModule }); }); @@ -73,8 +73,8 @@ describe("schools module", () => { ); const schoolsModule = new SchoolsModule({}); - const setSchoolSpy = jest.spyOn(schoolsModule, "setSchool"); - const setLoadingSpy = jest.spyOn(schoolsModule, "setLoading"); + const setSchoolSpy = vi.spyOn(schoolsModule, "setSchool"); + const setLoadingSpy = vi.spyOn(schoolsModule, "setLoading"); await schoolsModule.fetchSchool(); @@ -123,8 +123,8 @@ describe("schools module", () => { ); const schoolsModule = new SchoolsModule({}); - const setErrorSpy = jest.spyOn(schoolsModule, "setError"); - const setLoadingSpy = jest.spyOn(schoolsModule, "setLoading"); + const setErrorSpy = vi.spyOn(schoolsModule, "setError"); + const setLoadingSpy = vi.spyOn(schoolsModule, "setLoading"); const mockMe = meResponseFactory.build({ school: { id: "4711" }, }); @@ -157,8 +157,8 @@ describe("schools module", () => { mockApiResponse({ data: mockSchoolSystemResponse }) ); - const setLoadingSpy = jest.spyOn(schoolsModule, "setLoading"); - const setSystemsSpy = jest.spyOn(schoolsModule, "setSystems"); + const setLoadingSpy = vi.spyOn(schoolsModule, "setLoading"); + const setSystemsSpy = vi.spyOn(schoolsModule, "setSystems"); await schoolsModule.fetchSystems(); @@ -182,8 +182,8 @@ describe("schools module", () => { systemIds: ["mockSystemId"], }); - const setLoadingSpy = jest.spyOn(schoolsModule, "setLoading"); - const setErrorSpy = jest.spyOn(schoolsModule, "setError"); + const setLoadingSpy = vi.spyOn(schoolsModule, "setLoading"); + const setErrorSpy = vi.spyOn(schoolsModule, "setError"); await schoolsModule.fetchSystems(); @@ -213,8 +213,8 @@ describe("schools module", () => { const schoolsModule = new SchoolsModule({}); - const setLoadingSpy = jest.spyOn(schoolsModule, "setLoading"); - const setSchoolSpy = jest.spyOn(schoolsModule, "setSchool"); + const setLoadingSpy = vi.spyOn(schoolsModule, "setLoading"); + const setSchoolSpy = vi.spyOn(schoolsModule, "setSchool"); await schoolsModule.update({ id: "111", props: uploadData }); @@ -242,8 +242,8 @@ describe("schools module", () => { new AxiosError() ); - const setLoadingSpy = jest.spyOn(schoolsModule, "setLoading"); - const setErrorSpy = jest.spyOn(schoolsModule, "setError"); + const setLoadingSpy = vi.spyOn(schoolsModule, "setLoading"); + const setErrorSpy = vi.spyOn(schoolsModule, "setError"); await schoolsModule.update({ id: "111", props: uploadData }); @@ -265,9 +265,9 @@ describe("schools module", () => { const school = schoolResponseFactory.build(); schoolsModule.setSchool(school); - const setLoadingSpy = jest.spyOn(schoolsModule, "setLoading"); - const fetchSchoolSpy = jest.spyOn(schoolsModule, "fetchSchool"); - const fetchSystemsSpy = jest.spyOn(schoolsModule, "fetchSystems"); + const setLoadingSpy = vi.spyOn(schoolsModule, "setLoading"); + const fetchSchoolSpy = vi.spyOn(schoolsModule, "fetchSchool"); + const fetchSystemsSpy = vi.spyOn(schoolsModule, "fetchSystems"); await schoolsModule.deleteSystem(systemId); expect( @@ -286,8 +286,8 @@ describe("schools module", () => { ); const schoolsModule = new SchoolsModule({}); - const setLoadingSpy = jest.spyOn(schoolsModule, "setLoading"); - const setErrorSpy = jest.spyOn(schoolsModule, "setError"); + const setLoadingSpy = vi.spyOn(schoolsModule, "setLoading"); + const setErrorSpy = vi.spyOn(schoolsModule, "setError"); await schoolsModule.deleteSystem(systemId); @@ -311,16 +311,16 @@ describe("schools module", () => { beforeEach(() => { schoolsModule = new SchoolsModule({}); - spy = jest.spyOn(serverApi, "UserImportApiFactory"); + spy = vi.spyOn(serverApi, "UserImportApiFactory"); mockApi = { importUserControllerEndSchoolInMaintenance: vi.fn(() => ({})), }; spy.mockReturnValue( mockApi as unknown as serverApi.UserImportApiInterface ); - setLoadingSpy = jest.spyOn(schoolsModule, "setLoading"); - setErrorSpy = jest.spyOn(schoolsModule, "setError"); - setSchoolSpy = jest.spyOn(schoolsModule, "setSchool"); + setLoadingSpy = vi.spyOn(schoolsModule, "setLoading"); + setErrorSpy = vi.spyOn(schoolsModule, "setError"); + setSchoolSpy = vi.spyOn(schoolsModule, "setSchool"); }); afterEach((done) => { @@ -404,16 +404,16 @@ describe("schools module", () => { beforeEach(() => { schoolsModule = new SchoolsModule({}); - spy = jest.spyOn(serverApi, "UserImportApiFactory"); + spy = vi.spyOn(serverApi, "UserImportApiFactory"); mockApi = { importUserControllerStartSchoolInUserMigration: vi.fn(() => ({})), }; spy.mockReturnValue( mockApi as unknown as serverApi.UserImportApiInterface ); - setLoadingSpy = jest.spyOn(schoolsModule, "setLoading"); - setErrorSpy = jest.spyOn(schoolsModule, "setError"); - setSchoolSpy = jest.spyOn(schoolsModule, "setSchool"); + setLoadingSpy = vi.spyOn(schoolsModule, "setLoading"); + setErrorSpy = vi.spyOn(schoolsModule, "setError"); + setSchoolSpy = vi.spyOn(schoolsModule, "setSchool"); }); afterEach((done) => { diff --git a/src/store/share.unit.ts b/src/store/share.unit.ts index e4e692f4d6..5838e83a27 100644 --- a/src/store/share.unit.ts +++ b/src/store/share.unit.ts @@ -64,7 +64,7 @@ describe("share module", () => { const shareModule = new ShareModule({}); shareModule.setParentId("sampleCourseId"); shareModule.setParentType(ShareTokenBodyParamsParentTypeEnum.Courses); - const setShareUrlMock = jest.spyOn(shareModule, "setShareUrl"); + const setShareUrlMock = vi.spyOn(shareModule, "setShareUrl"); await shareModule.createShareUrl(sharePayload); const result = setShareUrlMock.mock.calls[0][0]; @@ -116,9 +116,9 @@ describe("share module", () => { describe("startShareFlow", () => { it("should call setParentId, setParentType and setShareModalOpen mutations", async () => { const shareModule = new ShareModule({}); - const setParentIdMock = jest.spyOn(shareModule, "setParentId"); - const setParentTypeMock = jest.spyOn(shareModule, "setParentType"); - const setShareModalOpenMock = jest.spyOn( + const setParentIdMock = vi.spyOn(shareModule, "setParentId"); + const setParentTypeMock = vi.spyOn(shareModule, "setParentType"); + const setShareModalOpenMock = vi.spyOn( shareModule, "setShareModalOpen" ); @@ -138,9 +138,9 @@ describe("share module", () => { describe("resetShareFlow", () => { it("should call setCourseId, setShareModalOpen and setShareUrl mutations", async () => { const shareModule = new ShareModule({}); - const setIdMock = jest.spyOn(shareModule, "setParentId"); - const setShareUrlMock = jest.spyOn(shareModule, "setShareUrl"); - const setShareModalOpenMock = jest.spyOn( + const setIdMock = vi.spyOn(shareModule, "setParentId"); + const setShareUrlMock = vi.spyOn(shareModule, "setShareUrl"); + const setShareModalOpenMock = vi.spyOn( shareModule, "setShareModalOpen" ); diff --git a/src/store/status-alerts.unit.ts b/src/store/status-alerts.unit.ts index 934ba1471e..45795913ba 100644 --- a/src/store/status-alerts.unit.ts +++ b/src/store/status-alerts.unit.ts @@ -22,12 +22,12 @@ describe("status alerts module", () => { .spyOn(serverApi, "AlertApiFactory") .mockReturnValue(mockApi as unknown as serverApi.AlertApiInterface); const statusAlertsModule = new StatusAlertsModule({}); - const setStatusAlertsSpy = jest.spyOn( + const setStatusAlertsSpy = vi.spyOn( statusAlertsModule, "setStatusAlerts" ); - const setStatusSpy = jest.spyOn(statusAlertsModule, "setStatus"); - const resetBusinessErrorSpy = jest.spyOn( + const setStatusSpy = vi.spyOn(statusAlertsModule, "setStatus"); + const resetBusinessErrorSpy = vi.spyOn( statusAlertsModule, "resetBusinessError" ); @@ -47,7 +47,7 @@ describe("status alerts module", () => { .spyOn(serverApi, "AlertApiFactory") .mockReturnValue(mockApi as unknown as serverApi.AlertApiInterface); const statusAlertsModule = new StatusAlertsModule({}); - const setBusinessErrorSpy = jest.spyOn( + const setBusinessErrorSpy = vi.spyOn( statusAlertsModule, "setBusinessError" ); diff --git a/src/store/tasks.unit.ts b/src/store/tasks.unit.ts index 64247d5f0f..dd0e96dafb 100644 --- a/src/store/tasks.unit.ts +++ b/src/store/tasks.unit.ts @@ -153,7 +153,7 @@ describe("task store", () => { const tasksModule = new TasksModule({}); const tasks = taskFactory.buildList(3); tasksModule.setTasks(tasks); - const fetchAllTasksSpy = jest.spyOn(tasksModule, "fetchAllTasks"); + const fetchAllTasksSpy = vi.spyOn(tasksModule, "fetchAllTasks"); tasksModule.revertPublishedTask(tasks[0].id).then(() => { expect(tasksModule.getStatus).toBe("completed"); @@ -213,7 +213,7 @@ describe("task store", () => { const tasksModule = new TasksModule({}); const tasks = taskFactory.buildList(3); tasksModule.setTasks(tasks); - const fetchAllTasksSpy = jest.spyOn(tasksModule, "fetchAllTasks"); + const fetchAllTasksSpy = vi.spyOn(tasksModule, "fetchAllTasks"); tasksModule.deleteTask(tasks[0].id).then(() => { expect(tasksModule.getStatus).toBe("completed"); diff --git a/src/store/terms-of-use.unit.ts b/src/store/terms-of-use.unit.ts index b6444ad396..607dfe41db 100644 --- a/src/store/terms-of-use.unit.ts +++ b/src/store/terms-of-use.unit.ts @@ -76,8 +76,8 @@ describe("terms of use module", () => { }, }; - const setTermsOfUseSpy = jest.spyOn(termsOfUseModule, "setTermsOfUse"); - const setStatusSpy = jest.spyOn(termsOfUseModule, "setStatus"); + const setTermsOfUseSpy = vi.spyOn(termsOfUseModule, "setTermsOfUse"); + const setStatusSpy = vi.spyOn(termsOfUseModule, "setStatus"); await termsOfUseModule.fetchTermsOfUse("schoolid"); @@ -139,8 +139,8 @@ describe("terms of use module", () => { }, }; - const setTermsOfUseSpy = jest.spyOn(termsOfUseModule, "setTermsOfUse"); - const setStatusSpy = jest.spyOn(termsOfUseModule, "setStatus"); + const setTermsOfUseSpy = vi.spyOn(termsOfUseModule, "setTermsOfUse"); + const setStatusSpy = vi.spyOn(termsOfUseModule, "setStatus"); await termsOfUseModule.createTermsOfUse(createPolicyPayload); @@ -178,8 +178,8 @@ describe("terms of use module", () => { }, }; - const setTermsOfUseSpy = jest.spyOn(termsOfUseModule, "setTermsOfUse"); - const setStatusSpy = jest.spyOn(termsOfUseModule, "setStatus"); + const setTermsOfUseSpy = vi.spyOn(termsOfUseModule, "setTermsOfUse"); + const setStatusSpy = vi.spyOn(termsOfUseModule, "setStatus"); await termsOfUseModule.deleteTermsOfUse(); diff --git a/src/store/user-login-migrations.unit.ts b/src/store/user-login-migrations.unit.ts index 1b5b7e7e6e..5bd967a90e 100644 --- a/src/store/user-login-migrations.unit.ts +++ b/src/store/user-login-migrations.unit.ts @@ -158,7 +158,7 @@ describe("UserLoginMigrationModule", () => { mockApiResponse({ data: listResponse }) ); - jest.spyOn(module, "setUserLoginMigration"); + vi.spyOn(module, "setUserLoginMigration"); }; it("should not set the user login migration", async () => { @@ -189,7 +189,7 @@ describe("UserLoginMigrationModule", () => { mockApiResponse({ data: listResponse }) ); - jest.spyOn(module, "setUserLoginMigration"); + vi.spyOn(module, "setUserLoginMigration"); }; it("should not set user login migration", async () => { @@ -494,7 +494,7 @@ describe("UserLoginMigrationModule", () => { apiMock.userLoginMigrationControllerStartMigration.mockResolvedValue( mockApiResponse({ data: userLoginMigrationResponse }) ); - jest.spyOn(module, "setLoading"); + vi.spyOn(module, "setLoading"); const userLoginMigration = userLoginMigrationFactory.build({ startedAt: new Date(2000, 1, 1, 0, 0), @@ -595,7 +595,7 @@ describe("UserLoginMigrationModule", () => { apiMock.userLoginMigrationControllerSetMigrationMandatory.mockResolvedValue( mockApiResponse({ data: userLoginMigrationResponse }) ); - jest.spyOn(module, "setLoading"); + vi.spyOn(module, "setLoading"); return { userLoginMigration, @@ -685,7 +685,7 @@ describe("UserLoginMigrationModule", () => { apiMock.userLoginMigrationControllerRestartMigration.mockResolvedValue( mockApiResponse({ data: userLoginMigrationResponse }) ); - jest.spyOn(module, "setLoading"); + vi.spyOn(module, "setLoading"); return { userLoginMigration, @@ -775,7 +775,7 @@ describe("UserLoginMigrationModule", () => { apiMock.userLoginMigrationControllerCloseMigration.mockResolvedValue( mockApiResponse({ data: userLoginMigrationResponse }) ); - jest.spyOn(module, "setLoading"); + vi.spyOn(module, "setLoading"); return { userLoginMigration, From ab35b2b277ecd6647720fd245cb51a3e89c054b9 Mon Sep 17 00:00:00 2001 From: Odalys Adam Date: Mon, 21 Oct 2024 23:18:00 +0200 Subject: [PATCH 09/18] replace jest.advanceTimersByTime with vi.advanceTimersByTime --- src/composables/ariaLiveNotifier.unit.ts | 6 ++-- src/composables/drag.unit.ts | 2 +- .../ariaLiveNotificationHandler.unit.ts | 32 +++++++++---------- .../board/boardInactivity.composable.unit.ts | 4 +-- .../cardSocketApi.composable.unit.ts | 2 +- .../ExternalToolElement.unit.ts | 2 +- src/modules/feature/editor/CKEditor.unit.ts | 2 +- .../MediaBoardAvailableElement.unit.ts | 2 +- .../MediaBoardExternalToolElement.unit.ts | 2 +- .../tools/RoomExternalToolsOverview.unit.ts | 2 +- src/store/notifier.unit.ts | 2 +- src/utils/helpers.unit.js | 4 +-- 12 files changed, 31 insertions(+), 31 deletions(-) diff --git a/src/composables/ariaLiveNotifier.unit.ts b/src/composables/ariaLiveNotifier.unit.ts index 5038d14742..d0a21f8afb 100644 --- a/src/composables/ariaLiveNotifier.unit.ts +++ b/src/composables/ariaLiveNotifier.unit.ts @@ -17,7 +17,7 @@ describe("useAriaLiveNotifier", () => { const message = "Assertive screen reader message"; notifyOnScreenReader(message, "assertive"); - jest.advanceTimersByTime(3000); + vi.advanceTimersByTime(3000); expect(element?.innerHTML).toBe(`${message}`); }); @@ -27,7 +27,7 @@ describe("useAriaLiveNotifier", () => { const message = "Polite screen reader message"; notifyOnScreenReader(message, "polite"); - jest.advanceTimersByTime(3000); + vi.advanceTimersByTime(3000); expect(element?.innerHTML).toBe(`${message}`); }); @@ -46,7 +46,7 @@ describe("useAriaLiveNotifier", () => { expect(element?.innerHTML).toBe(""); - jest.advanceTimersByTime(3000); + vi.advanceTimersByTime(3000); expect(element?.innerHTML).toBe( `${message1}${message2}` diff --git a/src/composables/drag.unit.ts b/src/composables/drag.unit.ts index dd060eeead..273295ec75 100644 --- a/src/composables/drag.unit.ts +++ b/src/composables/drag.unit.ts @@ -21,7 +21,7 @@ describe("drag composable", () => { endDragging(); - jest.advanceTimersByTime(dragInProgressDelay); + vi.advanceTimersByTime(dragInProgressDelay); expect(dragInProgress.value).toBe(false); }); }); diff --git a/src/modules/data/board/ariaNotification/ariaLiveNotificationHandler.unit.ts b/src/modules/data/board/ariaNotification/ariaLiveNotificationHandler.unit.ts index dc24e8e14c..973e7c6349 100644 --- a/src/modules/data/board/ariaNotification/ariaLiveNotificationHandler.unit.ts +++ b/src/modules/data/board/ariaNotification/ariaLiveNotificationHandler.unit.ts @@ -71,7 +71,7 @@ describe("useBoardAriaNotification", () => { const element = document.getElementById("notify-screen-reader-polite"); notifyCreateCardSuccess(payload); - jest.advanceTimersByTime(3000); + vi.advanceTimersByTime(3000); expect(element?.innerHTML).toContain(SR_I18N_KEYS_MAP.CARD_CREATED_SUCCESS); }); @@ -84,7 +84,7 @@ describe("useBoardAriaNotification", () => { const element = document.getElementById("notify-screen-reader-polite"); notifyCreateColumnSuccess(payload); - jest.advanceTimersByTime(3000); + vi.advanceTimersByTime(3000); expect(element?.innerHTML).toContain( SR_I18N_KEYS_MAP.COLUMN_CREATED_SUCCESS ); @@ -95,7 +95,7 @@ describe("useBoardAriaNotification", () => { const element = document.getElementById("notify-screen-reader-polite"); notifyDeleteCardSuccess({ cardId: "cardId", isOwnAction: false }); - jest.advanceTimersByTime(3000); + vi.advanceTimersByTime(3000); expect(element?.innerHTML).toContain(SR_I18N_KEYS_MAP.CARD_DELETED_SUCCESS); }); @@ -108,7 +108,7 @@ describe("useBoardAriaNotification", () => { isOwnAction: false, }); - jest.advanceTimersByTime(3000); + vi.advanceTimersByTime(3000); expect(element?.innerHTML).toContain( SR_I18N_KEYS_MAP.COLUMN_DELETED_SUCCESS ); @@ -129,7 +129,7 @@ describe("useBoardAriaNotification", () => { toColumnIndex: 0, }); - jest.advanceTimersByTime(3000); + vi.advanceTimersByTime(3000); expect(element?.innerHTML).toContain( SR_I18N_KEYS_MAP.CARD_MOVED_IN_SAME_COLUMN_SUCCESS ); @@ -150,7 +150,7 @@ describe("useBoardAriaNotification", () => { toColumnIndex: 1, }); - jest.advanceTimersByTime(3000); + vi.advanceTimersByTime(3000); expect(element?.innerHTML).toContain( SR_I18N_KEYS_MAP.CARD_MOVED_TO_ANOTHER_COLUMN_SUCCESS ); @@ -170,7 +170,7 @@ describe("useBoardAriaNotification", () => { isOwnAction: false, }); - jest.advanceTimersByTime(3000); + vi.advanceTimersByTime(3000); expect(element?.innerHTML).toContain(SR_I18N_KEYS_MAP.COLUMN_MOVED_SUCCESS); }); @@ -184,7 +184,7 @@ describe("useBoardAriaNotification", () => { isOwnAction: false, }); - jest.advanceTimersByTime(3000); + vi.advanceTimersByTime(3000); expect(element?.innerHTML).toContain( SR_I18N_KEYS_MAP.BOARD_TITLE_UPDATED_SUCCESS ); @@ -200,7 +200,7 @@ describe("useBoardAriaNotification", () => { isOwnAction: false, }); - jest.advanceTimersByTime(3000); + vi.advanceTimersByTime(3000); expect(element?.innerHTML).toContain( SR_I18N_KEYS_MAP.BOARD_PUBLISHED_SUCCESS ); @@ -215,7 +215,7 @@ describe("useBoardAriaNotification", () => { isOwnAction: false, }); - jest.advanceTimersByTime(3000); + vi.advanceTimersByTime(3000); expect(element?.innerHTML).toContain( SR_I18N_KEYS_MAP.BOARD_UNPUBLISHED_SUCCESS ); @@ -232,7 +232,7 @@ describe("useBoardAriaNotification", () => { isOwnAction: false, }); - jest.advanceTimersByTime(3000); + vi.advanceTimersByTime(3000); expect(element?.innerHTML).toContain( SR_I18N_KEYS_MAP.COLUMN_TITLE_UPDATED_SUCCESS ); @@ -248,7 +248,7 @@ describe("useBoardAriaNotification", () => { isOwnAction: false, }); - jest.advanceTimersByTime(3000); + vi.advanceTimersByTime(3000); expect(element?.innerHTML).toContain( SR_I18N_KEYS_MAP.CARD_TITLE_UPDATED_SUCCESS ); @@ -267,7 +267,7 @@ describe("useBoardAriaNotification", () => { isOwnAction: false, }); - jest.advanceTimersByTime(3000); + vi.advanceTimersByTime(3000); expect(element?.innerHTML).toContain(SR_I18N_KEYS_MAP.CARD_UPDATED_SUCCESS); }); @@ -281,7 +281,7 @@ describe("useBoardAriaNotification", () => { isOwnAction: false, }); - jest.advanceTimersByTime(3000); + vi.advanceTimersByTime(3000); expect(element?.innerHTML).toContain(SR_I18N_KEYS_MAP.CARD_UPDATED_SUCCESS); }); @@ -296,7 +296,7 @@ describe("useBoardAriaNotification", () => { isOwnAction: false, }); - jest.advanceTimersByTime(3000); + vi.advanceTimersByTime(3000); expect(element?.innerHTML).toContain(SR_I18N_KEYS_MAP.CARD_UPDATED_SUCCESS); }); @@ -311,7 +311,7 @@ describe("useBoardAriaNotification", () => { const element = document.getElementById("notify-screen-reader-polite"); notifyCreateCardSuccess(payload); - jest.advanceTimersByTime(3000); + vi.advanceTimersByTime(3000); expect(element?.innerHTML).toBe(""); }); }); diff --git a/src/modules/data/board/boardInactivity.composable.unit.ts b/src/modules/data/board/boardInactivity.composable.unit.ts index 0d1abab273..60251fa9bc 100644 --- a/src/modules/data/board/boardInactivity.composable.unit.ts +++ b/src/modules/data/board/boardInactivity.composable.unit.ts @@ -137,14 +137,14 @@ describe("pageInactivity.composable", () => { it("should be changed after MAX_TIMEOUT_FOR_INACTIVITY is achieved", async () => { setup(3000); expect(connectionOptions.isTimeoutReached).toBe(false); - jest.advanceTimersByTime(3000); + vi.advanceTimersByTime(3000); expect(connectionOptions.isTimeoutReached).toBe(true); }); it("should not be changed after MAX_TIMEOUT_FOR_INACTIVITY is not achieved", async () => { setup(3000); expect(connectionOptions.isTimeoutReached).toBe(false); - jest.advanceTimersByTime(1000); + vi.advanceTimersByTime(1000); expect(connectionOptions.isTimeoutReached).toBe(false); }); }); diff --git a/src/modules/data/board/cardActions/cardSocketApi.composable.unit.ts b/src/modules/data/board/cardActions/cardSocketApi.composable.unit.ts index 0cead81d41..0cdefa55c8 100644 --- a/src/modules/data/board/cardActions/cardSocketApi.composable.unit.ts +++ b/src/modules/data/board/cardActions/cardSocketApi.composable.unit.ts @@ -488,7 +488,7 @@ describe("useCardSocketApi", () => { const { fetchCardRequest } = useCardSocketApi(); fetchCardRequest(payload); - jest.advanceTimersByTime(1000); + vi.advanceTimersByTime(1000); expect(mockedSocketConnectionHandler.emitOnSocket).toHaveBeenCalledWith( "fetch-card-request", payload diff --git a/src/modules/feature/board-external-tool-element/ExternalToolElement.unit.ts b/src/modules/feature/board-external-tool-element/ExternalToolElement.unit.ts index 7d3ba6981f..43a5aedde6 100644 --- a/src/modules/feature/board-external-tool-element/ExternalToolElement.unit.ts +++ b/src/modules/feature/board-external-tool-element/ExternalToolElement.unit.ts @@ -745,7 +745,7 @@ describe("ExternalToolElement", () => { useExternalToolLaunchStateMock.fetchContextLaunchRequest ).toHaveBeenCalledTimes(1); - jest.advanceTimersByTime(refreshTime + 1000); + vi.advanceTimersByTime(refreshTime + 1000); await nextTick(); expect( diff --git a/src/modules/feature/editor/CKEditor.unit.ts b/src/modules/feature/editor/CKEditor.unit.ts index f0154506c5..937e018c74 100644 --- a/src/modules/feature/editor/CKEditor.unit.ts +++ b/src/modules/feature/editor/CKEditor.unit.ts @@ -147,7 +147,7 @@ describe("CKEditor", () => { ref: "ck", }); ck.vm.$emit("blur"); - jest.advanceTimersByTime(200); + vi.advanceTimersByTime(200); const emitted = wrapper.emitted(); expect(emitted["blur"]).toHaveLength(1); diff --git a/src/modules/feature/media-shelf/MediaBoardAvailableElement.unit.ts b/src/modules/feature/media-shelf/MediaBoardAvailableElement.unit.ts index 482b59c5d9..cf179ef0ce 100644 --- a/src/modules/feature/media-shelf/MediaBoardAvailableElement.unit.ts +++ b/src/modules/feature/media-shelf/MediaBoardAvailableElement.unit.ts @@ -162,7 +162,7 @@ describe("MediaBoardAvailableElement", () => { useExternalToolLaunchStateMock.fetchSchoolLaunchRequest ).toHaveBeenCalledTimes(1); - jest.advanceTimersByTime(refreshTime + 1000); + vi.advanceTimersByTime(refreshTime + 1000); await nextTick(); expect( diff --git a/src/modules/feature/media-shelf/MediaBoardExternalToolElement.unit.ts b/src/modules/feature/media-shelf/MediaBoardExternalToolElement.unit.ts index 816d6d3f94..c87dbe29fa 100644 --- a/src/modules/feature/media-shelf/MediaBoardExternalToolElement.unit.ts +++ b/src/modules/feature/media-shelf/MediaBoardExternalToolElement.unit.ts @@ -193,7 +193,7 @@ describe("MediaBoardExternalToolElement", () => { useExternalToolLaunchStateMock.fetchContextLaunchRequest ).toHaveBeenCalledTimes(1); - jest.advanceTimersByTime(refreshTime + 1000); + vi.advanceTimersByTime(refreshTime + 1000); await nextTick(); expect( diff --git a/src/pages/course-rooms/tools/RoomExternalToolsOverview.unit.ts b/src/pages/course-rooms/tools/RoomExternalToolsOverview.unit.ts index 3fc01d0077..be0e688260 100644 --- a/src/pages/course-rooms/tools/RoomExternalToolsOverview.unit.ts +++ b/src/pages/course-rooms/tools/RoomExternalToolsOverview.unit.ts @@ -208,7 +208,7 @@ describe("RoomExternalToolOverview", () => { useExternalToolDisplayListStateMock.fetchDisplayData ).toHaveBeenCalledTimes(1); - jest.advanceTimersByTime(refreshTime + 1000); + vi.advanceTimersByTime(refreshTime + 1000); expect( useExternalToolDisplayListStateMock.fetchDisplayData diff --git a/src/store/notifier.unit.ts b/src/store/notifier.unit.ts index d03d569ae9..cd6ae5089e 100644 --- a/src/store/notifier.unit.ts +++ b/src/store/notifier.unit.ts @@ -66,7 +66,7 @@ describe("notifier store", () => { notifierModule.show(payload); expect(addNotifierMock).toHaveBeenCalledWith(payload); - jest.advanceTimersByTime(1000); + vi.advanceTimersByTime(1000); expect(removeNotifierMock).toHaveBeenCalledWith(payload); }); }); diff --git a/src/utils/helpers.unit.js b/src/utils/helpers.unit.js index 135dae032d..c081b45ae8 100644 --- a/src/utils/helpers.unit.js +++ b/src/utils/helpers.unit.js @@ -8,12 +8,12 @@ describe("helpers", () => { delay(100).then(spy); // not resolved after half time - jest.advanceTimersByTime(50); + vi.advanceTimersByTime(50); await Promise.resolve(); expect(spy).not.toHaveBeenCalled(); // resolved after full time - jest.advanceTimersByTime(50); + vi.advanceTimersByTime(50); await Promise.resolve(); expect(spy).toHaveBeenCalled(); }); From edf9095de66a644ac28df33d599699c5353b2515 Mon Sep 17 00:00:00 2001 From: Odalys Adam Date: Mon, 21 Oct 2024 23:19:35 +0200 Subject: [PATCH 10/18] replace jest.setSystemTime with vi.setSystemTime --- .../administration/AdminMigrationSection.unit.ts | 10 +++++----- .../DataFilter/filterComponents/DateBetween.unit.ts | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/components/administration/AdminMigrationSection.unit.ts b/src/components/administration/AdminMigrationSection.unit.ts index bfa934c8a3..2ddc3aa3b9 100644 --- a/src/components/administration/AdminMigrationSection.unit.ts +++ b/src/components/administration/AdminMigrationSection.unit.ts @@ -129,7 +129,7 @@ describe("AdminMigrationSection", () => { describe("Migration Control Section", () => { it("should render migration control section when grace period is not expired", () => { vi.useFakeTimers(); - jest.setSystemTime(new Date(2023, 1, 3)); + vi.setSystemTime(new Date(2023, 1, 3)); const { wrapper } = setup( {}, { @@ -164,7 +164,7 @@ describe("AdminMigrationSection", () => { } ); vi.useFakeTimers(); - jest.setSystemTime(new Date(2023, 1, 3)); + vi.setSystemTime(new Date(2023, 1, 3)); expect( wrapper.find('[data-testId="migration-control-section"]').exists() @@ -347,7 +347,7 @@ describe("AdminMigrationSection", () => { } ); vi.useFakeTimers(); - jest.setSystemTime(new Date(2023, 1, 3)); + vi.setSystemTime(new Date(2023, 1, 3)); const buttonComponent = wrapper.find( "[data-testId=migration-start-button]" @@ -626,7 +626,7 @@ describe("AdminMigrationSection", () => { describe("Date paragraph", () => { it("should exist when migration has been completed", async () => { vi.useFakeTimers(); - jest.setSystemTime(new Date(2023, 1, 2)); + vi.setSystemTime(new Date(2023, 1, 2)); const { wrapper } = setup( { getSchool: { ...mockSchool, officialSchoolNumber: "12345" }, @@ -652,7 +652,7 @@ describe("AdminMigrationSection", () => { it("should show finalFinish text when migration grace period has expired", async () => { vi.useFakeTimers(); - jest.setSystemTime(new Date(2023, 1, 4)); + vi.setSystemTime(new Date(2023, 1, 4)); const { wrapper } = setup( { getSchool: { ...mockSchool, officialSchoolNumber: "12345" }, diff --git a/src/components/organisms/DataFilter/filterComponents/DateBetween.unit.ts b/src/components/organisms/DataFilter/filterComponents/DateBetween.unit.ts index 16bc4e8025..145b7c9c71 100644 --- a/src/components/organisms/DataFilter/filterComponents/DateBetween.unit.ts +++ b/src/components/organisms/DataFilter/filterComponents/DateBetween.unit.ts @@ -29,7 +29,7 @@ describe("@components/DataFilter/filterComponents/DateBetween.vue", () => { it("should render the date picker components", async () => { vi.useFakeTimers(); const testDate = new Date(2024, 0, 1); - jest.setSystemTime(testDate); + vi.setSystemTime(testDate); const wrapper = mountComponent(); From 0e3235f94a94ecc86b86a227459dced136c762e0 Mon Sep 17 00:00:00 2001 From: Odalys Adam Date: Mon, 21 Oct 2024 23:55:06 +0200 Subject: [PATCH 11/18] replace line breaked jest occurrences --- .../AdminMigrationSection.unit.ts | 16 ++-- .../ProvisioningOptionsPage.unit.ts | 7 +- .../ErrorHandler.composable.unit.ts | 4 +- .../ExternalToolConfigurator.unit.ts | 13 +-- src/mixins/infiniteScrolling.unit.js | 41 ++++++---- src/mixins/print.unit.js | 3 +- .../board/CardRequestPool.composable.unit.ts | 6 +- .../room/courseInfoApi.composable.unit.ts | 4 +- ...laborativeTextEditorApi.composable.unit.ts | 14 ++-- .../upload/FileUpload.unit.ts | 4 +- .../SubmissionItemApi.composable.unit.ts | 6 +- .../data/mediaBoardApi.composable.unit.ts | 10 +-- src/pages/administration/migration.unit.ts | 13 +-- .../CourseRoomDetails.page.unit.ts | 4 +- .../CourseRoomOverview.page.unit.js | 6 +- src/store/auth.unit.ts | 12 +-- src/store/copy.unit.ts | 80 +++++++------------ src/store/course-room-details.unit.ts | 58 ++++++-------- src/store/course-room-list.unit.ts | 46 +++++------ src/store/env-config.unit.ts | 30 +++---- src/store/finished-tasks.unit.ts | 24 +++--- src/store/news.unit.ts | 36 ++++----- src/store/share.unit.ts | 24 +++--- src/store/status-alerts.unit.ts | 12 +-- src/store/systems.unit.ts | 6 +- src/store/tasks.unit.ts | 28 +++---- src/store/user-login-migrations.unit.ts | 6 +- src/store/video-conference.unit.ts | 8 +- src/utils/fileHelper.unit.ts | 2 +- 29 files changed, 237 insertions(+), 286 deletions(-) diff --git a/src/components/administration/AdminMigrationSection.unit.ts b/src/components/administration/AdminMigrationSection.unit.ts index 2ddc3aa3b9..63525a7c2e 100644 --- a/src/components/administration/AdminMigrationSection.unit.ts +++ b/src/components/administration/AdminMigrationSection.unit.ts @@ -25,15 +25,13 @@ describe("AdminMigrationSection", () => { let userLoginMigrationModule: jest.Mocked; let envConfigModule: jest.Mocked; - jest - .spyOn( - useUserLoginMigrationMappingsComposable, - "useUserLoginMigrationMappings" - ) - .mockReturnValue({ - ...useUserLoginMigrationMappingsComposable.useUserLoginMigrationMappings(), - getBusinessErrorTranslationKey: () => "", - }); + vi.spyOn( + useUserLoginMigrationMappingsComposable, + "useUserLoginMigrationMappings" + ).mockReturnValue({ + ...useUserLoginMigrationMappingsComposable.useUserLoginMigrationMappings(), + getBusinessErrorTranslationKey: () => "", + }); const setup = ( schoolGetters: Partial = {}, diff --git a/src/components/administration/ProvisioningOptionsPage.unit.ts b/src/components/administration/ProvisioningOptionsPage.unit.ts index 40eb30c235..4f9eab87ee 100644 --- a/src/components/administration/ProvisioningOptionsPage.unit.ts +++ b/src/components/administration/ProvisioningOptionsPage.unit.ts @@ -32,9 +32,10 @@ vi.mock("@/utils/pageTitle", () => ({ vi.mock("vue-router"); const useRouterMock = useRouter; -jest - .spyOn(window, "scrollTo") - .mockImplementation(() => ({ top: 0, behavior: "smooth" })); +vi.spyOn(window, "scrollTo").mockImplementation(() => ({ + top: 0, + behavior: "smooth", +})); describe("ProvisioningOptionsPage", () => { let useProvisioningOptionsStateMock: DeepMocked< diff --git a/src/components/error-handling/ErrorHandler.composable.unit.ts b/src/components/error-handling/ErrorHandler.composable.unit.ts index e3aaa736fa..662aa3bb46 100644 --- a/src/components/error-handling/ErrorHandler.composable.unit.ts +++ b/src/components/error-handling/ErrorHandler.composable.unit.ts @@ -90,9 +90,7 @@ describe("ErrorHandler.Composable", () => { describe("when no errorHandler for the code of the error is defined", () => { it("should fall back to console.error", async () => { - const consoleErrorSpy = jest - .spyOn(console, "error") - .mockImplementation(); + const consoleErrorSpy = vi.spyOn(console, "error").mockImplementation(); const { handleError } = setup(); mockedIsAxiosError.mockReturnValueOnce(true); diff --git a/src/components/external-tools/configuration/ExternalToolConfigurator.unit.ts b/src/components/external-tools/configuration/ExternalToolConfigurator.unit.ts index 097843fb47..16cf9e27e3 100644 --- a/src/components/external-tools/configuration/ExternalToolConfigurator.unit.ts +++ b/src/components/external-tools/configuration/ExternalToolConfigurator.unit.ts @@ -20,12 +20,13 @@ import ExternalToolConfigSettings from "./ExternalToolConfigSettings.vue"; import ExternalToolConfigurator from "./ExternalToolConfigurator.vue"; describe("ExternalToolConfigurator", () => { - jest - .spyOn(useExternalToolUtilsComposable, "useExternalToolMappings") - .mockReturnValue({ - ...useExternalToolUtilsComposable.useExternalToolMappings(), - getBusinessErrorTranslationKey: () => "", - }); + vi.spyOn( + useExternalToolUtilsComposable, + "useExternalToolMappings" + ).mockReturnValue({ + ...useExternalToolUtilsComposable.useExternalToolMappings(), + getBusinessErrorTranslationKey: () => "", + }); const getWrapper = ( props: ComponentProps diff --git a/src/mixins/infiniteScrolling.unit.js b/src/mixins/infiniteScrolling.unit.js index 2ce15c8fed..36a9e3794a 100644 --- a/src/mixins/infiniteScrolling.unit.js +++ b/src/mixins/infiniteScrolling.unit.js @@ -34,20 +34,23 @@ describe("@/mixins/infiniteScrolling", () => { ])( "calculates bottom intersection correctly for scrollY %p, viewportHeight %p and pageHeight %p", (scrollY, clientHeight, scrollHeight, result) => { - jest - .spyOn(document.documentElement, "clientHeight", "get") - .mockImplementation(() => clientHeight); - jest - .spyOn(document.documentElement, "scrollHeight", "get") - .mockImplementation(() => scrollHeight); + vi.spyOn( + document.documentElement, + "clientHeight", + "get" + ).mockImplementation(() => clientHeight); + vi.spyOn( + document.documentElement, + "scrollHeight", + "get" + ).mockImplementation(() => scrollHeight); window.scrollY = scrollY; const wrapper = getInstance(); expect(wrapper.vm.$_isBottomReached()).toBe(result); } ); it("removes window event listeners on destroy", () => { - jest - .spyOn(window, "removeEventListener") + vi.spyOn(window, "removeEventListener") .mockImplementation() .mockImplementation(); const wrapper = getInstance(); @@ -55,17 +58,21 @@ describe("@/mixins/infiniteScrolling", () => { expect(window.removeEventListener.mock.calls[0]).toContain("scroll"); }); it("updates data on scroll event", () => { - jest - .spyOn(document.documentElement, "clientHeight", "get") - .mockImplementation(() => 500); - jest - .spyOn(document.documentElement, "scrollHeight", "get") - .mockImplementation(() => 200); + vi.spyOn( + document.documentElement, + "clientHeight", + "get" + ).mockImplementation(() => 500); + vi.spyOn( + document.documentElement, + "scrollHeight", + "get" + ).mockImplementation(() => 200); window.scrollY = scrollY; - jest - .spyOn(window, "addEventListener") - .mockImplementation((event, cb) => cb()); + vi.spyOn(window, "addEventListener").mockImplementation((event, cb) => + cb() + ); const wrapper = getInstance(); expect(wrapper.vm.bottom).toBe(true); diff --git a/src/mixins/print.unit.js b/src/mixins/print.unit.js index 8f46768a3e..69dfcf87ae 100644 --- a/src/mixins/print.unit.js +++ b/src/mixins/print.unit.js @@ -24,8 +24,7 @@ let newWindowMock; describe("@/mixins/print", () => { beforeEach(() => { newWindowMock = getNewWindowMock(); - jest - .spyOn(window, "open") + vi.spyOn(window, "open") .mockImplementation() .mockReturnValue(newWindowMock); }); diff --git a/src/modules/data/board/CardRequestPool.composable.unit.ts b/src/modules/data/board/CardRequestPool.composable.unit.ts index 4337d4e1b9..3022b3a562 100644 --- a/src/modules/data/board/CardRequestPool.composable.unit.ts +++ b/src/modules/data/board/CardRequestPool.composable.unit.ts @@ -19,9 +19,9 @@ const setup = (...cardIds: string[]) => { const returnedCards = cardIds.map((id) => ({ id })); mockReturnData = { data: { data: returnedCards } }; - jest - .spyOn(serverApi, "BoardCardApiFactory") - .mockReturnValue(cardsApiFactoryMock as unknown as BoardCardApiInterface); + vi.spyOn(serverApi, "BoardCardApiFactory").mockReturnValue( + cardsApiFactoryMock as unknown as BoardCardApiInterface + ); return { cardsApiFactoryMock }; }; diff --git a/src/modules/data/room/courseInfoApi.composable.unit.ts b/src/modules/data/room/courseInfoApi.composable.unit.ts index 4561feeb7f..57afb3908b 100644 --- a/src/modules/data/room/courseInfoApi.composable.unit.ts +++ b/src/modules/data/room/courseInfoApi.composable.unit.ts @@ -19,9 +19,7 @@ describe("courseInfoApi.composable", () => { courseInfoApi = createMock(); axiosMock = createMock(); - jest - .spyOn(serverApi, "CourseInfoApiFactory") - .mockReturnValue(courseInfoApi); + vi.spyOn(serverApi, "CourseInfoApiFactory").mockReturnValue(courseInfoApi); initializeAxios(axiosMock); }); diff --git a/src/modules/feature/board-collaborative-text-editor-element/composables/CollaborativeTextEditorApi.composable.unit.ts b/src/modules/feature/board-collaborative-text-editor-element/composables/CollaborativeTextEditorApi.composable.unit.ts index cf8472fa00..6642ac3ac1 100644 --- a/src/modules/feature/board-collaborative-text-editor-element/composables/CollaborativeTextEditorApi.composable.unit.ts +++ b/src/modules/feature/board-collaborative-text-editor-element/composables/CollaborativeTextEditorApi.composable.unit.ts @@ -62,9 +62,10 @@ describe("CollaborativeTextEditorApi Composable", () => { const collaborativeTextEditorApi = createMock(); - jest - .spyOn(serverApi, "CollaborativeTextEditorApiFactory") - .mockReturnValue(collaborativeTextEditorApi); + vi.spyOn( + serverApi, + "CollaborativeTextEditorApiFactory" + ).mockReturnValue(collaborativeTextEditorApi); collaborativeTextEditorApi.collaborativeTextEditorControllerGetOrCreateCollaborativeTextEditorForParent.mockResolvedValueOnce( response ); @@ -114,9 +115,10 @@ describe("CollaborativeTextEditorApi Composable", () => { const collaborativeTextEditorApi = createMock(); - jest - .spyOn(serverApi, "CollaborativeTextEditorApiFactory") - .mockReturnValue(collaborativeTextEditorApi); + vi.spyOn( + serverApi, + "CollaborativeTextEditorApiFactory" + ).mockReturnValue(collaborativeTextEditorApi); collaborativeTextEditorApi.collaborativeTextEditorControllerGetOrCreateCollaborativeTextEditorForParent.mockRejectedValue( responseError ); diff --git a/src/modules/feature/board-file-element/upload/FileUpload.unit.ts b/src/modules/feature/board-file-element/upload/FileUpload.unit.ts index 682ffacc05..bfa4ee9ac0 100644 --- a/src/modules/feature/board-file-element/upload/FileUpload.unit.ts +++ b/src/modules/feature/board-file-element/upload/FileUpload.unit.ts @@ -12,9 +12,7 @@ import FilePicker from "./file-picker/FilePicker.vue"; const setupUseSharedLastCreatedElementMock = () => { const mockedUse = createMock>(); - jest - .spyOn(utilBoard, "useSharedLastCreatedElement") - .mockReturnValue(mockedUse); + vi.spyOn(utilBoard, "useSharedLastCreatedElement").mockReturnValue(mockedUse); }; describe("FileUpload", () => { diff --git a/src/modules/feature/board-submission-element/composables/SubmissionItemApi.composable.unit.ts b/src/modules/feature/board-submission-element/composables/SubmissionItemApi.composable.unit.ts index 4317c997cf..b6ad1704f3 100644 --- a/src/modules/feature/board-submission-element/composables/SubmissionItemApi.composable.unit.ts +++ b/src/modules/feature/board-submission-element/composables/SubmissionItemApi.composable.unit.ts @@ -11,9 +11,9 @@ describe("SubmissionItemApi.composable", () => { submissionItemApi = createMock(); vi.spyOn(serverApi, "BoardElementApiFactory").mockReturnValue(elementApi); - jest - .spyOn(serverApi, "BoardSubmissionApiFactory") - .mockReturnValue(submissionItemApi); + vi.spyOn(serverApi, "BoardSubmissionApiFactory").mockReturnValue( + submissionItemApi + ); }); afterEach(() => { diff --git a/src/modules/feature/media-shelf/data/mediaBoardApi.composable.unit.ts b/src/modules/feature/media-shelf/data/mediaBoardApi.composable.unit.ts index 1da5593533..8c77692631 100644 --- a/src/modules/feature/media-shelf/data/mediaBoardApi.composable.unit.ts +++ b/src/modules/feature/media-shelf/data/mediaBoardApi.composable.unit.ts @@ -30,13 +30,11 @@ describe("mediaBoardApi.composable", () => { mediaLineApi = createMock(); mediaElementApi = createMock(); - jest - .spyOn(serverApi, "MediaBoardApiFactory") - .mockReturnValue(mediaBoardApi); + vi.spyOn(serverApi, "MediaBoardApiFactory").mockReturnValue(mediaBoardApi); vi.spyOn(serverApi, "MediaLineApiFactory").mockReturnValue(mediaLineApi); - jest - .spyOn(serverApi, "MediaElementApiFactory") - .mockReturnValue(mediaElementApi); + vi.spyOn(serverApi, "MediaElementApiFactory").mockReturnValue( + mediaElementApi + ); }); afterEach(() => { diff --git a/src/pages/administration/migration.unit.ts b/src/pages/administration/migration.unit.ts index 842b526771..808b6a1532 100644 --- a/src/pages/administration/migration.unit.ts +++ b/src/pages/administration/migration.unit.ts @@ -410,9 +410,9 @@ describe("User Migration / Index", () => { }); }); - jest - .spyOn(schoolsModule, "fetchSchool") - .mockResolvedValueOnce(Promise.resolve()); + vi.spyOn(schoolsModule, "fetchSchool").mockResolvedValueOnce( + Promise.resolve() + ); const button = wrapper.findComponent( "[data-testid=import-users-cancel-migration-btn]" @@ -529,9 +529,10 @@ describe("User Migration / Index", () => { const wrapper = getWrapper(); - jest - .spyOn(importUsersModule, "clearAllAutoMatches") - .mockResolvedValueOnce(Promise.resolve()); + vi.spyOn( + importUsersModule, + "clearAllAutoMatches" + ).mockResolvedValueOnce(Promise.resolve()); vi.spyOn(importUsersStub.methods, "reloadData"); diff --git a/src/pages/course-rooms/CourseRoomDetails.page.unit.ts b/src/pages/course-rooms/CourseRoomDetails.page.unit.ts index 52368fc712..0ca50a0d28 100644 --- a/src/pages/course-rooms/CourseRoomDetails.page.unit.ts +++ b/src/pages/course-rooms/CourseRoomDetails.page.unit.ts @@ -175,9 +175,7 @@ const getWrapper = ( // we need this because in order for useMediaQuery (vueuse) to work // window.matchMedia has to return a reasonable result. // https://github.com/vueuse/vueuse/blob/main/packages/core/useMediaQuery/index.ts#L44 - jest - .spyOn(window, "matchMedia") - .mockReturnValue(createMock()); + vi.spyOn(window, "matchMedia").mockReturnValue(createMock()); return mount(CourseRoomDetailsPage, { global: { diff --git a/src/pages/course-rooms/CourseRoomOverview.page.unit.js b/src/pages/course-rooms/CourseRoomOverview.page.unit.js index 6ac236c42f..3fff6cd68d 100644 --- a/src/pages/course-rooms/CourseRoomOverview.page.unit.js +++ b/src/pages/course-rooms/CourseRoomOverview.page.unit.js @@ -103,13 +103,13 @@ setupStores({ }); const spyMocks = { - storeRoomAlignMock: jest + storeRoomAlignMock: vi .spyOn(courseRoomListModule, "align") .mockImplementation(async () => ({})), - storeModuleFetchMock: jest + storeModuleFetchMock: vi .spyOn(courseRoomListModule, "fetch") .mockImplementation(async () => ({})), - storeModuleFetchAllMock: jest + storeModuleFetchAllMock: vi .spyOn(courseRoomListModule, "fetchAllElements") .mockImplementation(async () => ({})), }; diff --git a/src/store/auth.unit.ts b/src/store/auth.unit.ts index 3c937c41a1..c14966faae 100644 --- a/src/store/auth.unit.ts +++ b/src/store/auth.unit.ts @@ -310,9 +310,9 @@ describe("auth store module", () => { data: { successful: true }, }), }; - jest - .spyOn(serverApi, "UserApiFactory") - .mockReturnValue(mockApi as unknown as serverApi.UserApiInterface); + vi.spyOn(serverApi, "UserApiFactory").mockReturnValue( + mockApi as unknown as serverApi.UserApiInterface + ); const authModule = new AuthModule({}); authModule.updateUserLanguage(LanguageType.De); @@ -326,9 +326,9 @@ describe("auth store module", () => { throw new AxiosError("I'm an error"); }), }; - jest - .spyOn(serverApi, "UserApiFactory") - .mockReturnValue(mockApi as unknown as serverApi.UserApiInterface); + vi.spyOn(serverApi, "UserApiFactory").mockReturnValue( + mockApi as unknown as serverApi.UserApiInterface + ); const authModule = new AuthModule({}); authModule.updateUserLanguage(LanguageType.De); diff --git a/src/store/copy.unit.ts b/src/store/copy.unit.ts index 597c7eac0a..07f14f2c8d 100644 --- a/src/store/copy.unit.ts +++ b/src/store/copy.unit.ts @@ -60,11 +60,9 @@ describe("copy module", () => { const roomCopyMockApi = { courseRoomsControllerCopyCourse: vi.fn(async () => ({})), }; - jest - .spyOn(serverApi, "CourseRoomsApiFactory") - .mockReturnValue( - roomCopyMockApi as unknown as serverApi.CourseRoomsApiInterface - ); + vi.spyOn(serverApi, "CourseRoomsApiFactory").mockReturnValue( + roomCopyMockApi as unknown as serverApi.CourseRoomsApiInterface + ); const copyModule = new CopyModule({}); const payload: CopyParams = { @@ -83,11 +81,9 @@ describe("copy module", () => { const taskMockApi = { taskControllerCopyTask: vi.fn(async () => ({ data: {} })), }; - jest - .spyOn(serverApi, "TaskApiFactory") - .mockReturnValue( - taskMockApi as unknown as serverApi.TaskApiInterface - ); + vi.spyOn(serverApi, "TaskApiFactory").mockReturnValue( + taskMockApi as unknown as serverApi.TaskApiInterface + ); const copyModule = new CopyModule({}); it("should send with courseId", async () => { @@ -127,11 +123,9 @@ describe("copy module", () => { data: {}, })), }; - jest - .spyOn(serverApi, "CourseRoomsApiFactory") - .mockReturnValue( - roomCopyMockApi as unknown as serverApi.CourseRoomsApiInterface - ); + vi.spyOn(serverApi, "CourseRoomsApiFactory").mockReturnValue( + roomCopyMockApi as unknown as serverApi.CourseRoomsApiInterface + ); const copyModule = new CopyModule({}); const payload: CopyParams = { @@ -155,11 +149,9 @@ describe("copy module", () => { data: {}, })), }; - jest - .spyOn(serverApi, "CourseRoomsApiFactory") - .mockReturnValue( - roomCopyMockApi as unknown as serverApi.CourseRoomsApiInterface - ); + vi.spyOn(serverApi, "CourseRoomsApiFactory").mockReturnValue( + roomCopyMockApi as unknown as serverApi.CourseRoomsApiInterface + ); const copyModule = new CopyModule({}); await copyModule.copy({ id: "testLessonId", @@ -177,11 +169,9 @@ describe("copy module", () => { const boardCopyMockApi = { boardControllerCopyBoard: vi.fn(async () => ({ data: {} })), }; - jest - .spyOn(serverApi, "BoardApiFactory") - .mockReturnValue( - boardCopyMockApi as unknown as serverApi.BoardApiInterface - ); + vi.spyOn(serverApi, "BoardApiFactory").mockReturnValue( + boardCopyMockApi as unknown as serverApi.BoardApiInterface + ); const copyModule = new CopyModule({}); await copyModule.copy({ id: "testBoardId", @@ -202,11 +192,9 @@ describe("copy module", () => { data: {}, })), }; - jest - .spyOn(serverApi, "ShareTokenApiFactory") - .mockReturnValue( - shareApiMock as unknown as serverApi.ShareTokenApiInterface - ); + vi.spyOn(serverApi, "ShareTokenApiFactory").mockReturnValue( + shareApiMock as unknown as serverApi.ShareTokenApiInterface + ); const copyModule = new CopyModule({}); const token = "abc123a"; @@ -226,11 +214,9 @@ describe("copy module", () => { data: {}, })), }; - jest - .spyOn(serverApi, "ShareTokenApiFactory") - .mockReturnValue( - shareApiMock as unknown as serverApi.ShareTokenApiInterface - ); + vi.spyOn(serverApi, "ShareTokenApiFactory").mockReturnValue( + shareApiMock as unknown as serverApi.ShareTokenApiInterface + ); const copyModule = new CopyModule({}); const token = "abc123a"; @@ -252,11 +238,9 @@ describe("copy module", () => { const shareApiMock = { shareTokenControllerImportShareToken: vi.fn(async () => ({})), }; - jest - .spyOn(serverApi, "ShareTokenApiFactory") - .mockReturnValue( - shareApiMock as unknown as serverApi.ShareTokenApiInterface - ); + vi.spyOn(serverApi, "ShareTokenApiFactory").mockReturnValue( + shareApiMock as unknown as serverApi.ShareTokenApiInterface + ); const copyModule = new CopyModule({}); const payload = { @@ -278,11 +262,9 @@ describe("copy module", () => { data: {}, })), }; - jest - .spyOn(serverApi, "ShareTokenApiFactory") - .mockReturnValue( - shareApiMock as unknown as serverApi.ShareTokenApiInterface - ); + vi.spyOn(serverApi, "ShareTokenApiFactory").mockReturnValue( + shareApiMock as unknown as serverApi.ShareTokenApiInterface + ); const copyModule = new CopyModule({}); const token = "abc123a"; @@ -304,11 +286,9 @@ describe("copy module", () => { const shareApiMock = { shareTokenControllerImportShareToken: vi.fn(async () => ({})), }; - jest - .spyOn(serverApi, "ShareTokenApiFactory") - .mockReturnValue( - shareApiMock as unknown as serverApi.ShareTokenApiInterface - ); + vi.spyOn(serverApi, "ShareTokenApiFactory").mockReturnValue( + shareApiMock as unknown as serverApi.ShareTokenApiInterface + ); const copyModule = new CopyModule({}); const payload = { diff --git a/src/store/course-room-details.unit.ts b/src/store/course-room-details.unit.ts index e975691e10..080f1709aa 100644 --- a/src/store/course-room-details.unit.ts +++ b/src/store/course-room-details.unit.ts @@ -130,11 +130,9 @@ describe("course-room module", () => { describe("fetch", () => { it("should call backend and sets state correctly", async () => { - jest - .spyOn(serverApi, "CourseRoomsApiFactory") - .mockReturnValue( - mockApi as unknown as serverApi.CourseRoomsApiInterface - ); + vi.spyOn(serverApi, "CourseRoomsApiFactory").mockReturnValue( + mockApi as unknown as serverApi.CourseRoomsApiInterface + ); const courseRoomDetailsModule = new CourseRoomDetailsModule({}); await courseRoomDetailsModule.fetchContent("123"); @@ -149,11 +147,9 @@ describe("course-room module", () => { describe("publishCard", () => { it("'publishCard' action should call backend and 'fetchContent' method", async () => { - jest - .spyOn(serverApi, "CourseRoomsApiFactory") - .mockReturnValue( - mockApi as unknown as serverApi.CourseRoomsApiInterface - ); + vi.spyOn(serverApi, "CourseRoomsApiFactory").mockReturnValue( + mockApi as unknown as serverApi.CourseRoomsApiInterface + ); const courseRoomDetailsModule = new CourseRoomDetailsModule({}); await courseRoomDetailsModule.publishCard({ @@ -174,11 +170,9 @@ describe("course-room module", () => { describe("sortElements", () => { it("'sortElements' action should call backend and 'fetchContent' method", async () => { - jest - .spyOn(serverApi, "CourseRoomsApiFactory") - .mockReturnValue( - mockApi as unknown as serverApi.CourseRoomsApiInterface - ); + vi.spyOn(serverApi, "CourseRoomsApiFactory").mockReturnValue( + mockApi as unknown as serverApi.CourseRoomsApiInterface + ); const courseRoomDetailsModule = new CourseRoomDetailsModule({}); const payload = { @@ -202,7 +196,7 @@ describe("course-room module", () => { const mockApi = { lessonControllerDelete: vi.fn(), }; - const spy = jest + const spy = vi .spyOn(serverApi, "LessonApiFactory") .mockReturnValue(mockApi as unknown as serverApi.LessonApiInterface); @@ -221,7 +215,7 @@ describe("course-room module", () => { const mockApi = { lessonControllerDelete: vi.fn(() => Promise.reject({ ...error })), }; - const spy = jest + const spy = vi .spyOn(serverApi, "LessonApiFactory") .mockReturnValue(mockApi as unknown as serverApi.LessonApiInterface); @@ -240,7 +234,7 @@ describe("course-room module", () => { const mockApi = { taskControllerDelete: vi.fn(), }; - const spy = jest + const spy = vi .spyOn(serverApi, "TaskApiFactory") .mockReturnValue(mockApi as unknown as serverApi.TaskApiInterface); @@ -259,7 +253,7 @@ describe("course-room module", () => { const mockApi = { taskControllerDelete: vi.fn(() => Promise.reject({ ...error })), }; - const spy = jest + const spy = vi .spyOn(serverApi, "TaskApiFactory") .mockReturnValue(mockApi as unknown as serverApi.TaskApiInterface); @@ -278,7 +272,7 @@ describe("course-room module", () => { const mockApi = { boardControllerCreateBoard: vi.fn(), }; - const spy = jest + const spy = vi .spyOn(serverApi, "BoardApiFactory") .mockReturnValue(mockApi as unknown as serverApi.BoardApiInterface); @@ -301,7 +295,7 @@ describe("course-room module", () => { const mockApi = { boardControllerCreateBoard: vi.fn(), }; - const spy = jest + const spy = vi .spyOn(serverApi, "BoardApiFactory") .mockReturnValue(mockApi as unknown as serverApi.BoardApiInterface); @@ -325,7 +319,7 @@ describe("course-room module", () => { const mockApi = { boardControllerCreateBoard: vi.fn().mockRejectedValue(error), }; - const spy = jest + const spy = vi .spyOn(serverApi, "BoardApiFactory") .mockReturnValue(mockApi as unknown as serverApi.BoardApiInterface); @@ -350,7 +344,7 @@ describe("course-room module", () => { const mockApi = { boardControllerDeleteBoard: vi.fn(), }; - const spy = jest + const spy = vi .spyOn(serverApi, "BoardApiFactory") .mockReturnValue(mockApi as unknown as serverApi.BoardApiInterface); @@ -369,7 +363,7 @@ describe("course-room module", () => { const mockApi = { boardControllerDeleteBoard: vi.fn().mockRejectedValue(error), }; - const spy = jest + const spy = vi .spyOn(serverApi, "BoardApiFactory") .mockReturnValue(mockApi as unknown as serverApi.BoardApiInterface); @@ -389,7 +383,7 @@ describe("course-room module", () => { const mockApi = { lessonControllerDelete: vi.fn(() => Promise.resolve()), }; - const spy = jest + const spy = vi .spyOn(serverApi, "CoursesApiFactory") .mockReturnValue(mockApi as unknown as serverApi.CoursesApiInterface); @@ -412,7 +406,7 @@ describe("course-room module", () => { Promise.reject({ ...error }) ), }; - const spy = jest + const spy = vi .spyOn(serverApi, "CoursesApiFactory") .mockReturnValue(mockApi as unknown as serverApi.CoursesApiInterface); @@ -452,9 +446,9 @@ describe("course-room module", () => { const mockApi = { taskControllerFinish: vi.fn(), }; - jest - .spyOn(serverApi, "TaskApiFactory") - .mockReturnValue(mockApi as unknown as serverApi.TaskApiInterface); + vi.spyOn(serverApi, "TaskApiFactory").mockReturnValue( + mockApi as unknown as serverApi.TaskApiInterface + ); const courseRoomDetailsModule = new CourseRoomDetailsModule({}); const setBusinessErrorSpy = vi.spyOn( @@ -496,9 +490,9 @@ describe("course-room module", () => { }; }, }; - jest - .spyOn(serverApi, "TaskApiFactory") - .mockReturnValue(mockApi as unknown as serverApi.TaskApiInterface); + vi.spyOn(serverApi, "TaskApiFactory").mockReturnValue( + mockApi as unknown as serverApi.TaskApiInterface + ); const courseRoomDetailsModule = new CourseRoomDetailsModule({}); const finishTaskSpy = vi.spyOn(courseRoomDetailsModule, "finishTask"); diff --git a/src/store/course-room-list.unit.ts b/src/store/course-room-list.unit.ts index 2ceebaae40..1b7ac34a3f 100644 --- a/src/store/course-room-list.unit.ts +++ b/src/store/course-room-list.unit.ts @@ -88,16 +88,14 @@ describe("rooms module", () => { describe("fetch", () => { it("should call backend and sets state correctly", async () => { const mockApi = { - dashboardControllerFindForUser: jest + dashboardControllerFindForUser: vi .fn() .mockResolvedValue({ data: {} }), }; - jest - .spyOn(serverApi, "DashboardApiFactory") - .mockReturnValue( - mockApi as unknown as serverApi.DashboardApiInterface - ); + vi.spyOn(serverApi, "DashboardApiFactory").mockReturnValue( + mockApi as unknown as serverApi.DashboardApiInterface + ); const courseRoomListModule = new CourseRoomListModule({}); @@ -123,11 +121,9 @@ describe("rooms module", () => { })), }; - jest - .spyOn(serverApi, "DashboardApiFactory") - .mockReturnValue( - mockApi as unknown as serverApi.DashboardApiInterface - ); + vi.spyOn(serverApi, "DashboardApiFactory").mockReturnValue( + mockApi as unknown as serverApi.DashboardApiInterface + ); const courseRoomListModule = new CourseRoomListModule({}); @@ -176,11 +172,9 @@ describe("rooms module", () => { data: { ...groupToPatch }, })), }; - jest - .spyOn(serverApi, "DashboardApiFactory") - .mockReturnValue( - mockApi as unknown as serverApi.DashboardApiInterface - ); + vi.spyOn(serverApi, "DashboardApiFactory").mockReturnValue( + mockApi as unknown as serverApi.DashboardApiInterface + ); const courseRoomListModule = new CourseRoomListModule({}); const roomsData: RoomsData = { @@ -211,11 +205,9 @@ describe("rooms module", () => { Promise.reject({ ...error }) ), }; - jest - .spyOn(serverApi, "DashboardApiFactory") - .mockReturnValue( - mockApi as unknown as serverApi.DashboardApiInterface - ); + vi.spyOn(serverApi, "DashboardApiFactory").mockReturnValue( + mockApi as unknown as serverApi.DashboardApiInterface + ); const courseRoomListModule = new CourseRoomListModule({}); const roomsData: RoomsData = { id: "dummyId", @@ -243,9 +235,9 @@ describe("rooms module", () => { describe("fetchAllElements", () => { it("should call the backend", async () => { const mockApi = { courseControllerFindForUser: vi.fn() }; - jest - .spyOn(serverApi, "CoursesApiFactory") - .mockReturnValue(mockApi as unknown as serverApi.CoursesApiInterface); + vi.spyOn(serverApi, "CoursesApiFactory").mockReturnValue( + mockApi as unknown as serverApi.CoursesApiInterface + ); const courseRoomListModule = new CourseRoomListModule({}); await courseRoomListModule.fetchAllElements(); @@ -267,9 +259,9 @@ describe("rooms module", () => { Promise.reject({ ...error }) ), }; - jest - .spyOn(serverApi, "CoursesApiFactory") - .mockReturnValue(mockApi as unknown as serverApi.CoursesApiInterface); + vi.spyOn(serverApi, "CoursesApiFactory").mockReturnValue( + mockApi as unknown as serverApi.CoursesApiInterface + ); const courseRoomListModule = new CourseRoomListModule({}); courseRoomListModule.fetchAllElements().then(() => { diff --git a/src/store/env-config.unit.ts b/src/store/env-config.unit.ts index 2099fbc69c..aec6a6abe6 100644 --- a/src/store/env-config.unit.ts +++ b/src/store/env-config.unit.ts @@ -56,17 +56,15 @@ describe("env-config module", () => { }); const defaultApi = createMock(); - jest - .spyOn(serverApi, "DefaultApiFactory") - .mockReturnValue(defaultApi); + vi.spyOn(serverApi, "DefaultApiFactory").mockReturnValue(defaultApi); defaultApi.serverConfigControllerPublicConfig.mockResolvedValueOnce( serverConfigresponse ); const fileApi = createMock(); - jest - .spyOn(fileConfigApi, "FileConfigApiFactory") - .mockReturnValue(fileApi); + vi.spyOn(fileConfigApi, "FileConfigApiFactory").mockReturnValue( + fileApi + ); fileApi.publicConfig.mockResolvedValueOnce(fileStorageConfigResponse); const contentInitMock = vi.fn(); @@ -161,17 +159,15 @@ describe("env-config module", () => { const error = new Error("testError"); const defaultApi = createMock(); - jest - .spyOn(serverApi, "DefaultApiFactory") - .mockReturnValue(defaultApi); + vi.spyOn(serverApi, "DefaultApiFactory").mockReturnValue(defaultApi); defaultApi.serverConfigControllerPublicConfig.mockResolvedValueOnce( serverConfigresponse ); const fileApi = createMock(); - jest - .spyOn(fileConfigApi, "FileConfigApiFactory") - .mockReturnValue(fileApi); + vi.spyOn(fileConfigApi, "FileConfigApiFactory").mockReturnValue( + fileApi + ); fileApi.publicConfig.mockRejectedValueOnce(error); const contentModuleInitMock = vi.fn(); @@ -281,17 +277,15 @@ describe("env-config module", () => { const error = new Error("testError"); const defaultApi = createMock(); - jest - .spyOn(serverApi, "DefaultApiFactory") - .mockReturnValue(defaultApi); + vi.spyOn(serverApi, "DefaultApiFactory").mockReturnValue(defaultApi); defaultApi.serverConfigControllerPublicConfig.mockRejectedValueOnce( error ); const fileApi = createMock(); - jest - .spyOn(fileConfigApi, "FileConfigApiFactory") - .mockReturnValue(fileApi); + vi.spyOn(fileConfigApi, "FileConfigApiFactory").mockReturnValue( + fileApi + ); fileApi.publicConfig.mockResolvedValueOnce(fileStorageConfigResponse); const contentInitMock = vi.fn(); diff --git a/src/store/finished-tasks.unit.ts b/src/store/finished-tasks.unit.ts index 3f2b27a98c..2c786292a8 100644 --- a/src/store/finished-tasks.unit.ts +++ b/src/store/finished-tasks.unit.ts @@ -23,7 +23,7 @@ describe("finished task store", () => { describe("actions", () => { const setup = (taskApiMock: any) => { // eslint-disable-next-line @typescript-eslint/no-unused-vars - const spy = jest + const spy = vi .spyOn(serverApi, "TaskApiFactory") .mockReturnValue(taskApiMock as unknown as serverApi.TaskApiInterface); const finishedTasksModule = new FinishedTasksModule({}); @@ -61,7 +61,7 @@ describe("finished task store", () => { it("should fetch the next page", (done) => { const mockApi = { - taskControllerFindAllFinished: jest + taskControllerFindAllFinished: vi .fn() .mockResolvedValueOnce({ data: { @@ -81,7 +81,7 @@ describe("finished task store", () => { }), }; - const spy = jest + const spy = vi .spyOn(serverApi, "TaskApiFactory") .mockReturnValue(mockApi as unknown as serverApi.TaskApiInterface); @@ -113,7 +113,7 @@ describe("finished task store", () => { taskControllerFindAllFinished: vi.fn(), }; - const spy = jest + const spy = vi .spyOn(serverApi, "TaskApiFactory") .mockReturnValue(mockApi as unknown as serverApi.TaskApiInterface); @@ -137,7 +137,7 @@ describe("finished task store", () => { taskControllerFindAllFinished: vi.fn(), }; - const spy = jest + const spy = vi .spyOn(serverApi, "TaskApiFactory") .mockReturnValue(mockApi as unknown as serverApi.TaskApiInterface); @@ -162,7 +162,7 @@ describe("finished task store", () => { Promise.reject({ ...error }) ), }; - const spy = jest + const spy = vi .spyOn(serverApi, "TaskApiFactory") .mockReturnValue(mockApi as unknown as serverApi.TaskApiInterface); @@ -184,7 +184,7 @@ describe("finished task store", () => { describe("refetchTasks", () => { it("should fetch all tasks up until current pagination", async () => { const mockApi = { - taskControllerFindAllFinished: jest + taskControllerFindAllFinished: vi .fn() .mockReturnValueOnce({ data: { @@ -212,7 +212,7 @@ describe("finished task store", () => { }), }; - const spy = jest + const spy = vi .spyOn(serverApi, "TaskApiFactory") .mockReturnValue(mockApi as unknown as serverApi.TaskApiInterface); @@ -246,7 +246,7 @@ describe("finished task store", () => { Promise.reject({ ...error }) ), }; - const spy = jest + const spy = vi .spyOn(serverApi, "TaskApiFactory") .mockReturnValue(mockApi as unknown as serverApi.TaskApiInterface); @@ -277,9 +277,9 @@ describe("finished task store", () => { taskControllerRestore: vi.fn(() => Promise.reject({ ...error })), }; - jest - .spyOn(serverApi, "TaskApiFactory") - .mockReturnValue(mockApi as unknown as serverApi.TaskApiInterface); + vi.spyOn(serverApi, "TaskApiFactory").mockReturnValue( + mockApi as unknown as serverApi.TaskApiInterface + ); finishedTasksModule.restoreTask(task.id).then(() => { expect(finishedTasksModule.getStatus).toBe("error"); diff --git a/src/store/news.unit.ts b/src/store/news.unit.ts index 56663eaa20..74de6b57d5 100644 --- a/src/store/news.unit.ts +++ b/src/store/news.unit.ts @@ -14,9 +14,9 @@ describe("news store", () => { }, })), }; - jest - .spyOn(serverApi, "NewsApiFactory") - .mockReturnValue(mockApi as unknown as serverApi.NewsApiInterface); + vi.spyOn(serverApi, "NewsApiFactory").mockReturnValue( + mockApi as unknown as serverApi.NewsApiInterface + ); const newsModule = new NewsModule({}); newsModule.findNews().then(() => { @@ -36,9 +36,9 @@ describe("news store", () => { const mockApi = { newsControllerFindAll: vi.fn(() => Promise.reject({ ...error })), }; - jest - .spyOn(serverApi, "NewsApiFactory") - .mockReturnValue(mockApi as unknown as serverApi.NewsApiInterface); + vi.spyOn(serverApi, "NewsApiFactory").mockReturnValue( + mockApi as unknown as serverApi.NewsApiInterface + ); const newsModule = new NewsModule({}); newsModule.findNews().then(() => { @@ -58,9 +58,9 @@ describe("news store", () => { data: { mockNews: "mock news value" }, })), }; - jest - .spyOn(serverApi, "NewsApiFactory") - .mockReturnValue(mockApi as unknown as serverApi.NewsApiInterface); + vi.spyOn(serverApi, "NewsApiFactory").mockReturnValue( + mockApi as unknown as serverApi.NewsApiInterface + ); const newsModule = new NewsModule({}); const newsId = "1234"; @@ -79,9 +79,9 @@ describe("news store", () => { const mockApi = { newsControllerFindOne: vi.fn(() => Promise.reject({ ...error })), }; - jest - .spyOn(serverApi, "NewsApiFactory") - .mockReturnValue(mockApi as unknown as serverApi.NewsApiInterface); + vi.spyOn(serverApi, "NewsApiFactory").mockReturnValue( + mockApi as unknown as serverApi.NewsApiInterface + ); const newsModule = new NewsModule({}); const newsId = "1234"; @@ -102,9 +102,9 @@ describe("news store", () => { data: { id: 42, ...newsToCreate }, })), }; - jest - .spyOn(serverApi, "NewsApiFactory") - .mockReturnValue(mockApi as unknown as serverApi.NewsApiInterface); + vi.spyOn(serverApi, "NewsApiFactory").mockReturnValue( + mockApi as unknown as serverApi.NewsApiInterface + ); const newsModule = new NewsModule({}); const newsToCreate: serverApi.CreateNewsParams = { @@ -132,9 +132,9 @@ describe("news store", () => { const mockApi = { newsControllerCreate: vi.fn(() => Promise.reject({ ...error })), }; - jest - .spyOn(serverApi, "NewsApiFactory") - .mockReturnValue(mockApi as unknown as serverApi.NewsApiInterface); + vi.spyOn(serverApi, "NewsApiFactory").mockReturnValue( + mockApi as unknown as serverApi.NewsApiInterface + ); const newsModule = new NewsModule({}); const newsToCreate: serverApi.CreateNewsParams = { title: "a news title", diff --git a/src/store/share.unit.ts b/src/store/share.unit.ts index 5838e83a27..2f57e5f4ef 100644 --- a/src/store/share.unit.ts +++ b/src/store/share.unit.ts @@ -39,11 +39,9 @@ describe("share module", () => { }, })), }; - jest - .spyOn(serverApi, "ShareTokenApiFactory") - .mockReturnValue( - shareTokenMockApi as unknown as ShareTokenApiInterface - ); + vi.spyOn(serverApi, "ShareTokenApiFactory").mockReturnValue( + shareTokenMockApi as unknown as ShareTokenApiInterface + ); it("should call the backend with the correct payload", async () => { const shareModule = new ShareModule({}); @@ -80,11 +78,9 @@ describe("share module", () => { Promise.reject({ ...error }) ), }; - jest - .spyOn(serverApi, "ShareTokenApiFactory") - .mockReturnValue( - shareTokenErrorMockApi as unknown as ShareTokenApiInterface - ); + vi.spyOn(serverApi, "ShareTokenApiFactory").mockReturnValue( + shareTokenErrorMockApi as unknown as ShareTokenApiInterface + ); shareModule.setParentId("sampleCourseId"); @@ -99,11 +95,9 @@ describe("share module", () => { Promise.resolve(undefined) ), }; - jest - .spyOn(serverApi, "ShareTokenApiFactory") - .mockReturnValue( - shareTokenErrorMockApi as unknown as ShareTokenApiInterface - ); + vi.spyOn(serverApi, "ShareTokenApiFactory").mockReturnValue( + shareTokenErrorMockApi as unknown as ShareTokenApiInterface + ); shareModule.setParentId("sampleCourseId"); const errorResult = await shareModule.createShareUrl(sharePayload); diff --git a/src/store/status-alerts.unit.ts b/src/store/status-alerts.unit.ts index 45795913ba..37c78c4fbb 100644 --- a/src/store/status-alerts.unit.ts +++ b/src/store/status-alerts.unit.ts @@ -18,9 +18,9 @@ describe("status alerts module", () => { }, })), }; - jest - .spyOn(serverApi, "AlertApiFactory") - .mockReturnValue(mockApi as unknown as serverApi.AlertApiInterface); + vi.spyOn(serverApi, "AlertApiFactory").mockReturnValue( + mockApi as unknown as serverApi.AlertApiInterface + ); const statusAlertsModule = new StatusAlertsModule({}); const setStatusAlertsSpy = vi.spyOn( statusAlertsModule, @@ -43,9 +43,9 @@ describe("status alerts module", () => { const mockApi = { alertControllerFind: vi.fn(() => Promise.reject({ ...error })), }; - jest - .spyOn(serverApi, "AlertApiFactory") - .mockReturnValue(mockApi as unknown as serverApi.AlertApiInterface); + vi.spyOn(serverApi, "AlertApiFactory").mockReturnValue( + mockApi as unknown as serverApi.AlertApiInterface + ); const statusAlertsModule = new StatusAlertsModule({}); const setBusinessErrorSpy = vi.spyOn( statusAlertsModule, diff --git a/src/store/systems.unit.ts b/src/store/systems.unit.ts index 653166e86b..b4ee6146e1 100644 --- a/src/store/systems.unit.ts +++ b/src/store/systems.unit.ts @@ -87,9 +87,9 @@ describe("SystemsModule", () => { }), }; - jest - .spyOn(serverApi, "SystemsApiFactory") - .mockReturnValue(mockApi as unknown as serverApi.SystemsApiInterface); + vi.spyOn(serverApi, "SystemsApiFactory").mockReturnValue( + mockApi as unknown as serverApi.SystemsApiInterface + ); return { apiMock: mockApi, diff --git a/src/store/tasks.unit.ts b/src/store/tasks.unit.ts index dd0e96dafb..ae25781810 100644 --- a/src/store/tasks.unit.ts +++ b/src/store/tasks.unit.ts @@ -25,7 +25,7 @@ function mockTaskFilter( method: FunctionPropertyNames>, result: Task[] ) { - return jest + return vi .spyOn(TaskFilter.prototype, method) .mockReturnValue(new TaskFilter(result)); } @@ -46,7 +46,7 @@ describe("task store", () => { }, })), }; - const spy = jest + const spy = vi .spyOn(serverApi, "TaskApiFactory") .mockReturnValue(mockApi as unknown as serverApi.TaskApiInterface); const tasksModule = new TasksModule({}); @@ -68,7 +68,7 @@ describe("task store", () => { it("should fetch all pages", (done) => { const mockApi = { - taskControllerFindAll: jest + taskControllerFindAll: vi .fn() .mockReturnValueOnce({ data: { @@ -96,9 +96,9 @@ describe("task store", () => { }), }; - jest - .spyOn(serverApi, "TaskApiFactory") - .mockReturnValue(mockApi as unknown as serverApi.TaskApiInterface); + vi.spyOn(serverApi, "TaskApiFactory").mockReturnValue( + mockApi as unknown as serverApi.TaskApiInterface + ); const tasksModule = new TasksModule({}); tasksModule.fetchAllTasks().then(() => { @@ -119,9 +119,9 @@ describe("task store", () => { const mockApi = { taskControllerFindAll: vi.fn(() => Promise.reject({ ...error })), }; - jest - .spyOn(serverApi, "TaskApiFactory") - .mockReturnValue(mockApi as unknown as serverApi.TaskApiInterface); + vi.spyOn(serverApi, "TaskApiFactory").mockReturnValue( + mockApi as unknown as serverApi.TaskApiInterface + ); const tasksModule = new TasksModule({}); tasksModule.fetchAllTasks().then(() => { @@ -146,7 +146,7 @@ describe("task store", () => { const mockApi = { taskControllerRevertPublished: vi.fn(), }; - const spy = jest + const spy = vi .spyOn(serverApi, "TaskApiFactory") .mockReturnValue(mockApi as unknown as serverApi.TaskApiInterface); @@ -180,9 +180,9 @@ describe("task store", () => { taskControllerFinish: vi.fn(() => Promise.reject({ ...error })), }; - jest - .spyOn(serverApi, "TaskApiFactory") - .mockReturnValue(mockApi as unknown as serverApi.TaskApiInterface); + vi.spyOn(serverApi, "TaskApiFactory").mockReturnValue( + mockApi as unknown as serverApi.TaskApiInterface + ); const tasksModule = new TasksModule({}); tasksModule.finishTask(task.id).then(() => { @@ -206,7 +206,7 @@ describe("task store", () => { const mockApi = { taskControllerDelete: vi.fn(), }; - const spy = jest + const spy = vi .spyOn(serverApi, "TaskApiFactory") .mockReturnValue(mockApi as unknown as serverApi.TaskApiInterface); diff --git a/src/store/user-login-migrations.unit.ts b/src/store/user-login-migrations.unit.ts index 5bd967a90e..1bdae32af2 100644 --- a/src/store/user-login-migrations.unit.ts +++ b/src/store/user-login-migrations.unit.ts @@ -34,9 +34,9 @@ describe("UserLoginMigrationModule", () => { apiMock = createMock(); - jest - .spyOn(serverApi, "UserLoginMigrationApiFactory") - .mockReturnValue(apiMock); + vi.spyOn(serverApi, "UserLoginMigrationApiFactory").mockReturnValue( + apiMock + ); setupStores({ authModule: AuthModule, diff --git a/src/store/video-conference.unit.ts b/src/store/video-conference.unit.ts index 7d59c4fc7a..aefee8bc29 100644 --- a/src/store/video-conference.unit.ts +++ b/src/store/video-conference.unit.ts @@ -39,11 +39,9 @@ describe("VideoConferenceModule", () => { }) ); - jest - .spyOn(serverApi, "VideoConferenceApiFactory") - .mockReturnValue( - videoconferenceApi as unknown as VideoConferenceApiInterface - ); + vi.spyOn(serverApi, "VideoConferenceApiFactory").mockReturnValue( + videoconferenceApi as unknown as VideoConferenceApiInterface + ); return { videoconferenceApi, diff --git a/src/utils/fileHelper.unit.ts b/src/utils/fileHelper.unit.ts index 84e8e25067..06e327714d 100644 --- a/src/utils/fileHelper.unit.ts +++ b/src/utils/fileHelper.unit.ts @@ -27,7 +27,7 @@ describe("@/utils/fileHelper", () => { download: "", click: vi.fn(), }; - const createElementSpy = jest + const createElementSpy = vi .spyOn(document, "createElement") .mockImplementation(() => link); document.body.appendChild = vi.fn(); From bcb02cc77fe7455d21eb809726372c81267b8294 Mon Sep 17 00:00:00 2001 From: Odalys Adam Date: Mon, 21 Oct 2024 23:58:33 +0200 Subject: [PATCH 12/18] adjust aliases paths --- package-lock.json | 49 +++++++++++++++++++++++++++++++++++++++++++++++ package.json | 1 + vitest.config.mts | 22 ++++++++++++--------- 3 files changed, 63 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9465df83e5..358891f0ea 100644 --- a/package-lock.json +++ b/package-lock.json @@ -79,6 +79,7 @@ "ts-jest": "^29.1.2", "ts-loader": "^9.5.1", "typescript": "^5.4.3", + "vite-tsconfig-paths": "^5.0.1", "vitest": "^2.1.3", "vue-loader": "^17.4.2", "vue-style-loader": "^4.1.3", @@ -9784,6 +9785,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/globrex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", + "dev": true, + "license": "MIT" + }, "node_modules/gopd": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", @@ -16819,6 +16827,27 @@ "node": ">=8" } }, + "node_modules/tsconfck": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-3.1.4.tgz", + "integrity": "sha512-kdqWFGVJqe+KGYvlSO9NIaWn9jT1Ny4oKVzAJsKii5eoE9snzTJzL4+MMVOMn+fikWGFmKEylcXL710V/kIPJQ==", + "dev": true, + "license": "MIT", + "bin": { + "tsconfck": "bin/tsconfck.js" + }, + "engines": { + "node": "^18 || >=20" + }, + "peerDependencies": { + "typescript": "^5.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/tsconfig": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-7.0.0.tgz", @@ -17241,6 +17270,26 @@ "url": "https://opencollective.com/vitest" } }, + "node_modules/vite-tsconfig-paths": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-5.0.1.tgz", + "integrity": "sha512-yqwv+LstU7NwPeNqajZzLEBVpUFU6Dugtb2P84FXuvaoYA+/70l9MHE+GYfYAycVyPSDYZ7mjOFuYBRqlEpTig==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "globrex": "^0.1.2", + "tsconfck": "^3.0.3" + }, + "peerDependencies": { + "vite": "*" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, "node_modules/vitest": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.3.tgz", diff --git a/package.json b/package.json index 3413bc1acc..95a7e7f621 100644 --- a/package.json +++ b/package.json @@ -91,6 +91,7 @@ "ts-jest": "^29.1.2", "ts-loader": "^9.5.1", "typescript": "^5.4.3", + "vite-tsconfig-paths": "^5.0.1", "vitest": "^2.1.3", "vue-loader": "^17.4.2", "vue-style-loader": "^4.1.3", diff --git a/vitest.config.mts b/vitest.config.mts index a90ecdf9ae..8f930b2c9c 100644 --- a/vitest.config.mts +++ b/vitest.config.mts @@ -2,21 +2,25 @@ // https://github.com/vuejs/core/blob/main/vitest.config.ts // https://vitest.dev/config/ +import path from "path"; import { defineConfig } from "vitest/config"; +import tsconfigPaths from "vite-tsconfig-paths"; export default defineConfig({ + // for aliases to work + plugins: [tsconfigPaths()], resolve: { alias: { "\\.(jpg|ico|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": - "/tests/test-utils/mediaFileMock.js", - "^@data-(.*)$": "/src/modules/data/$1", - "^@feature-(.*)$": "/src/modules/feature/$1", - "^@page-(.*)$": "/src/modules/page/$1", - "^@ui-(.*)$": "/src/modules/ui/$1", - "^@util-(.*)$": "/src/modules/util/$1", - "^@icons(.*)$": "/src/components/icons/$1", - "^@/(.*)$": "/src/$1", - "^@@/(.*)$": "/$1", + path.resolve(__dirname, "./tests/test-utils/mediaFileMock.js"), + "^@data-(.*)$": path.resolve(__dirname, "./src/modules/data/$1"), + "^@feature-(.*)$": path.resolve(__dirname, "./src/modules/feature/$1"), + "^@page-(.*)$": path.resolve(__dirname, "./src/modules/page/$1"), + "^@ui-(.*)$": path.resolve(__dirname, "./src/modules/ui/$1"), + "^@util-(.*)$": path.resolve(__dirname, "./src/modules/util/$1"), + "^@icons(.*)$": path.resolve(__dirname, "./src/components/icons/$1"), + "^@/(.*)$": path.resolve(__dirname, "./src/$1"), + "^@@/(.*)$": path.resolve(__dirname, "./$1"), }, }, test: { From fd18797dd2036773a4498a9bfd4c62981d8d9cbd Mon Sep 17 00:00:00 2001 From: Odalys Adam Date: Tue, 22 Oct 2024 00:07:42 +0200 Subject: [PATCH 13/18] replace jest.requireActual with vi.importActual --- .../error-handling/ErrorHandler.composable.unit.ts | 4 ++-- .../DataFilter/composables/filter.composable.unit.ts | 6 +++--- .../DataFilter/composables/localStorage.composable.unit.ts | 4 ++-- src/modules/data/board/Board.store.unit.ts | 4 ++-- .../data/board/BoardPageInformation.composable.unit.ts | 4 ++-- src/modules/data/board/ContentElementState.unit.ts | 4 ++-- .../ariaNotification/ariaLiveNotificationHandler.unit.ts | 4 ++-- .../data/board/boardActions/boardRestApi.composable.unit.ts | 4 ++-- .../data/board/cardActions/cardRestApi.composable.unit.ts | 4 ++-- src/modules/data/board/socket/socket.unit.ts | 4 ++-- ...ontextExternalToolConfigurationStatus.composable.unit.ts | 4 ++-- .../CollaborativeTextEditorNotifications.composable.unit.ts | 4 ++-- .../content/display/audio-display/AudioDisplay.unit.ts | 4 ++-- .../composables/FileStorageNotifications.composable.unit.ts | 4 ++-- .../board/shared/AddElementDialog.composable.unit.ts | 4 ++-- .../feature/course-sync/GroupSelectionDialog.unit.ts | 4 ++-- src/modules/feature/media-shelf/MediaBoard.unit.ts | 4 ++-- .../feature/media-shelf/MediaBoardAvailableLine.unit.ts | 4 ++-- src/modules/feature/media-shelf/MediaBoardLine.unit.ts | 4 ++-- src/modules/page/class-members/ClassMembers.page.unit.ts | 4 ++-- src/modules/page/media-shelf/MediaShelf.page.unit.ts | 4 ++-- .../DeleteConfirmation.composable.unit.ts | 4 ++-- src/pages/administration/RoomsOverview.page.unit.ts | 4 ++-- 23 files changed, 47 insertions(+), 47 deletions(-) diff --git a/src/components/error-handling/ErrorHandler.composable.unit.ts b/src/components/error-handling/ErrorHandler.composable.unit.ts index 662aa3bb46..d362b8f3a8 100644 --- a/src/components/error-handling/ErrorHandler.composable.unit.ts +++ b/src/components/error-handling/ErrorHandler.composable.unit.ts @@ -25,9 +25,9 @@ const translationMap: Record = {}; keys.forEach((key) => (translationMap[key] = key)); -vi.mock("vue-i18n", () => { +vi.mock("vue-i18n", async () => { return { - ...jest.requireActual("vue-i18n"), + ...(await vi.importActual("vue-i18n")), useI18n: vi.fn().mockReturnValue({ t: (key: string) => { return translationMap[key] || "error.generic"; diff --git a/src/components/organisms/DataFilter/composables/filter.composable.unit.ts b/src/components/organisms/DataFilter/composables/filter.composable.unit.ts index 428f27e826..d64e4c1fc0 100644 --- a/src/components/organisms/DataFilter/composables/filter.composable.unit.ts +++ b/src/components/organisms/DataFilter/composables/filter.composable.unit.ts @@ -16,16 +16,16 @@ const defaultState = { version: 1, }; -vi.mock("@vueuse/core", () => { +vi.mock("@vueuse/core", async () => { return { - ...jest.requireActual("@vueuse/core"), + ...(await vi.importActual("@vueuse/core")), useStorage: vi.fn().mockReturnValue({ value: defaultState }), }; }); vi.mock("vue-i18n", () => { return { - ...jest.requireActual("vue-i18n"), + ...(await vi.importActual("vue-i18n")), useI18n: vi.fn().mockReturnValue({ t: (key: string) => key }), }; }); diff --git a/src/components/organisms/DataFilter/composables/localStorage.composable.unit.ts b/src/components/organisms/DataFilter/composables/localStorage.composable.unit.ts index 6c8d4d5714..278716f444 100644 --- a/src/components/organisms/DataFilter/composables/localStorage.composable.unit.ts +++ b/src/components/organisms/DataFilter/composables/localStorage.composable.unit.ts @@ -15,9 +15,9 @@ const defaultState = { version: 1, }; -vi.mock("@vueuse/core", () => { +vi.mock("@vueuse/core", async () => { return { - ...jest.requireActual("@vueuse/core"), + ...(await vi.importActual("@vueuse/core")), useStorage: vi.fn().mockReturnValue({ value: defaultState }), }; }); diff --git a/src/modules/data/board/Board.store.unit.ts b/src/modules/data/board/Board.store.unit.ts index 8a2a6cec6e..8096ae2a85 100644 --- a/src/modules/data/board/Board.store.unit.ts +++ b/src/modules/data/board/Board.store.unit.ts @@ -57,9 +57,9 @@ vi.mock("vue-router"); const useRouterMock = useRouter; const useRouteMock = useRoute; -vi.mock("vue-i18n", () => { +vi.mock("vue-i18n", async () => { return { - ...jest.requireActual("vue-i18n"), + ...(await vi.importActual("vue-i18n")), useI18n: () => ({ t: vi.fn().mockImplementation((key) => key) }), }; }); diff --git a/src/modules/data/board/BoardPageInformation.composable.unit.ts b/src/modules/data/board/BoardPageInformation.composable.unit.ts index c2714be8e0..c9b364768d 100644 --- a/src/modules/data/board/BoardPageInformation.composable.unit.ts +++ b/src/modules/data/board/BoardPageInformation.composable.unit.ts @@ -14,9 +14,9 @@ vi.mock( }) ); -vi.mock("vue-i18n", () => { +vi.mock("vue-i18n", async () => { return { - ...jest.requireActual("vue-i18n"), + ...(await vi.importActual("vue-i18n")), useI18n: vi.fn().mockReturnValue({ t: (key: string) => key }), }; }); diff --git a/src/modules/data/board/ContentElementState.unit.ts b/src/modules/data/board/ContentElementState.unit.ts index 8aa4843894..19027b7138 100644 --- a/src/modules/data/board/ContentElementState.unit.ts +++ b/src/modules/data/board/ContentElementState.unit.ts @@ -29,9 +29,9 @@ const TEST_ELEMENT: RichTextElementResponse = { }, }; -vi.mock("vue-i18n", () => { +vi.mock("vue-i18n", async () => { return { - ...jest.requireActual("@vueuse/core"), + ...(await vi.importActual("@vueuse/core")), useI18n: vi.fn().mockReturnValue({ t: (key: string) => key }), }; }); diff --git a/src/modules/data/board/ariaNotification/ariaLiveNotificationHandler.unit.ts b/src/modules/data/board/ariaNotification/ariaLiveNotificationHandler.unit.ts index 973e7c6349..4b043e277d 100644 --- a/src/modules/data/board/ariaNotification/ariaLiveNotificationHandler.unit.ts +++ b/src/modules/data/board/ariaNotification/ariaLiveNotificationHandler.unit.ts @@ -25,9 +25,9 @@ const card = { visibilitySettings: {}, }; -vi.mock("vue-i18n", () => { +vi.mock("vue-i18n", async () => { return { - ...jest.requireActual("vue-i18n"), + ...(await vi.importActual("vue-i18n")), useI18n: vi.fn().mockReturnValue({ t: (key: string) => key }), }; }); diff --git a/src/modules/data/board/boardActions/boardRestApi.composable.unit.ts b/src/modules/data/board/boardActions/boardRestApi.composable.unit.ts index 63f63efea8..496bb04ca2 100644 --- a/src/modules/data/board/boardActions/boardRestApi.composable.unit.ts +++ b/src/modules/data/board/boardActions/boardRestApi.composable.unit.ts @@ -44,9 +44,9 @@ const mockedUseSocketConnection = vi.mocked(useSocketConnection); vi.mock("vue-router"); const useRouterMock = useRouter; -vi.mock("vue-i18n", () => { +vi.mock("vue-i18n", async () => { return { - ...jest.requireActual("vue-i18n"), + ...(await vi.importActual("vue-i18n")), useI18n: () => { return { t: (key: string) => key, diff --git a/src/modules/data/board/cardActions/cardRestApi.composable.unit.ts b/src/modules/data/board/cardActions/cardRestApi.composable.unit.ts index d606c24b8c..022f45d868 100644 --- a/src/modules/data/board/cardActions/cardRestApi.composable.unit.ts +++ b/src/modules/data/board/cardActions/cardRestApi.composable.unit.ts @@ -43,9 +43,9 @@ const mockedUseSocketConnection = vi.mocked(useSocketConnection); vi.mock("vue-router"); const useRouterMock = useRouter; -vi.mock("vue-i18n", () => { +vi.mock("vue-i18n", async () => { return { - ...jest.requireActual("vue-i18n"), + ...(await vi.importActual("vue-i18n")), useI18n: () => ({ t: vi.fn().mockImplementation((key) => key) }), }; }); diff --git a/src/modules/data/board/socket/socket.unit.ts b/src/modules/data/board/socket/socket.unit.ts index df9115fd48..ed9d15162a 100644 --- a/src/modules/data/board/socket/socket.unit.ts +++ b/src/modules/data/board/socket/socket.unit.ts @@ -27,9 +27,9 @@ const mockUseBoardNotifier = vi.mocked(useBoardNotifier); vi.mock("../boardActions/boardSocketApi.composable"); vi.mock("../boardActions/boardRestApi.composable"); -vi.mock("@vueuse/shared", () => { +vi.mock("@vueuse/shared", async () => { return { - ...jest.requireActual("@vueuse/shared"), + ...(await vi.importActual("@vueuse/shared")), useTimeoutFn: vi.fn().mockImplementation((cb: () => void) => { cb(); return { diff --git a/src/modules/data/external-tool/ContextExternalToolConfigurationStatus.composable.unit.ts b/src/modules/data/external-tool/ContextExternalToolConfigurationStatus.composable.unit.ts index 016e8d2461..6ea1a0b9e8 100644 --- a/src/modules/data/external-tool/ContextExternalToolConfigurationStatus.composable.unit.ts +++ b/src/modules/data/external-tool/ContextExternalToolConfigurationStatus.composable.unit.ts @@ -8,9 +8,9 @@ import { } from "@@/tests/test-utils"; import { useContextExternalToolConfigurationStatus } from "./ContextExternalToolConfigurationStatus.composable"; -vi.mock("vue-i18n", () => { +vi.mock("vue-i18n", async () => { return { - ...jest.requireActual("vue-i18n"), + ...(await vi.importActual("vue-i18n")), useI18n: vi.fn().mockReturnValue({ t: (key: string) => key }), }; }); diff --git a/src/modules/feature/board-collaborative-text-editor-element/composables/CollaborativeTextEditorNotifications.composable.unit.ts b/src/modules/feature/board-collaborative-text-editor-element/composables/CollaborativeTextEditorNotifications.composable.unit.ts index 5d4a7d9103..c32e9c89c6 100644 --- a/src/modules/feature/board-collaborative-text-editor-element/composables/CollaborativeTextEditorNotifications.composable.unit.ts +++ b/src/modules/feature/board-collaborative-text-editor-element/composables/CollaborativeTextEditorNotifications.composable.unit.ts @@ -5,9 +5,9 @@ import { mountComposable } from "@@/tests/test-utils/mountComposable"; import { useI18n } from "vue-i18n"; import { useCollaborativeTextEditorNotifier } from "./CollaborativeTextEditorNotifications.composable"; -vi.mock("vue-i18n", () => { +vi.mock("vue-i18n", async () => { return { - ...jest.requireActual("vue-i18n"), + ...(await vi.importActual("vue-i18n")), useI18n: vi.fn().mockReturnValue({ t: jest .fn() diff --git a/src/modules/feature/board-file-element/content/display/audio-display/AudioDisplay.unit.ts b/src/modules/feature/board-file-element/content/display/audio-display/AudioDisplay.unit.ts index 002b8de3fb..244960f5f5 100644 --- a/src/modules/feature/board-file-element/content/display/audio-display/AudioDisplay.unit.ts +++ b/src/modules/feature/board-file-element/content/display/audio-display/AudioDisplay.unit.ts @@ -9,8 +9,8 @@ import { useMediaControls } from "@vueuse/core"; import { nextTick, ref } from "vue"; import AudioDisplay from "./AudioDisplay.vue"; -vi.mock("@vueuse/core", () => { - const original = jest.requireActual("@vueuse/core"); +vi.mock("@vueuse/core", async () => { + const original = await vi.importActual("@vueuse/core"); return { ...original, diff --git a/src/modules/feature/board-file-element/shared/composables/FileStorageNotifications.composable.unit.ts b/src/modules/feature/board-file-element/shared/composables/FileStorageNotifications.composable.unit.ts index 3bcd53dbad..7d080c29b6 100644 --- a/src/modules/feature/board-file-element/shared/composables/FileStorageNotifications.composable.unit.ts +++ b/src/modules/feature/board-file-element/shared/composables/FileStorageNotifications.composable.unit.ts @@ -6,9 +6,9 @@ import { mountComposable } from "@@/tests/test-utils/mountComposable"; import { useI18n } from "vue-i18n"; import { useFileStorageNotifier } from "./FileStorageNotifications.composable"; -vi.mock("vue-i18n", () => { +vi.mock("vue-i18n", async () => { return { - ...jest.requireActual("vue-i18n"), + ...(await vi.importActual("vue-i18n")), useI18n: vi.fn().mockReturnValue({ t: vi.fn().mockImplementation((key: string) => key), n: vi.fn().mockImplementation((key: string) => key), diff --git a/src/modules/feature/board/shared/AddElementDialog.composable.unit.ts b/src/modules/feature/board/shared/AddElementDialog.composable.unit.ts index 43364c5c50..a25c847e16 100644 --- a/src/modules/feature/board/shared/AddElementDialog.composable.unit.ts +++ b/src/modules/feature/board/shared/AddElementDialog.composable.unit.ts @@ -18,9 +18,9 @@ const mockedInjectStrict = vi.mocked(injectStrict); const translationMap: Record = {}; -vi.mock("vue-i18n", () => { +vi.mock("vue-i18n", async () => { return { - ...jest.requireActual("vue-i18n"), + ...(await vi.importActual("vue-i18n")), useI18n: vi.fn().mockReturnValue({ t: (key: string) => key, tc: (key: string) => key, diff --git a/src/modules/feature/course-sync/GroupSelectionDialog.unit.ts b/src/modules/feature/course-sync/GroupSelectionDialog.unit.ts index a702fc1680..f50284dee2 100644 --- a/src/modules/feature/course-sync/GroupSelectionDialog.unit.ts +++ b/src/modules/feature/course-sync/GroupSelectionDialog.unit.ts @@ -13,9 +13,9 @@ import vueDompurifyHTMLPlugin from "vue-dompurify-html"; import { VAutocomplete } from "vuetify/lib/components/index.mjs"; import GroupSelectionDialog from "./GroupSelectionDialog.vue"; -vi.mock("@data-group", () => { +vi.mock("@data-group", async () => { return { - ...jest.requireActual("@data-group"), + ...(await vi.importActual("@data-group")), useGroupListState: vi.fn(), }; }); diff --git a/src/modules/feature/media-shelf/MediaBoard.unit.ts b/src/modules/feature/media-shelf/MediaBoard.unit.ts index 2e4c832d3a..ce4ee79566 100644 --- a/src/modules/feature/media-shelf/MediaBoard.unit.ts +++ b/src/modules/feature/media-shelf/MediaBoard.unit.ts @@ -28,9 +28,9 @@ import MediaBoardLine from "./MediaBoardLine.vue"; import MediaBoardLineGhost from "./MediaBoardLineGhost.vue"; vi.mock("./data/mediaBoardState.composable"); -vi.mock("@vueuse/core", () => { +vi.mock("@vueuse/core", async () => { return { - ...jest.requireActual("@vueuse/core"), + ...(await vi.importActual("@vueuse/core")), useMediaQuery: vi.fn(), }; }); diff --git a/src/modules/feature/media-shelf/MediaBoardAvailableLine.unit.ts b/src/modules/feature/media-shelf/MediaBoardAvailableLine.unit.ts index 3e6cb9b179..de0b99aaf9 100644 --- a/src/modules/feature/media-shelf/MediaBoardAvailableLine.unit.ts +++ b/src/modules/feature/media-shelf/MediaBoardAvailableLine.unit.ts @@ -19,9 +19,9 @@ import { availableMediaLineId, ElementCreate } from "./data"; import MediaBoardAvailableLine from "./MediaBoardAvailableLine.vue"; import MediaBoardLineMenu from "./MediaBoardLineMenu.vue"; -vi.mock("@vueuse/core", () => { +vi.mock("@vueuse/core", async () => { return { - ...jest.requireActual("@vueuse/core"), + ...(await vi.importActual("@vueuse/core")), useMediaQuery: vi.fn(), }; }); diff --git a/src/modules/feature/media-shelf/MediaBoardLine.unit.ts b/src/modules/feature/media-shelf/MediaBoardLine.unit.ts index fc87db9060..03aa3ea3e1 100644 --- a/src/modules/feature/media-shelf/MediaBoardLine.unit.ts +++ b/src/modules/feature/media-shelf/MediaBoardLine.unit.ts @@ -23,9 +23,9 @@ import MediaBoardLineHeader from "./MediaBoardLineHeader.vue"; import MediaBoardLineMenu from "./MediaBoardLineMenu.vue"; import MediaBoardExternalToolDeletedElement from "./MediaBoardExternalToolDeletedElement.vue"; -vi.mock("@vueuse/core", () => { +vi.mock("@vueuse/core", async () => { return { - ...jest.requireActual("@vueuse/core"), + ...(await vi.importActual("@vueuse/core")), useMediaQuery: vi.fn(), }; }); diff --git a/src/modules/page/class-members/ClassMembers.page.unit.ts b/src/modules/page/class-members/ClassMembers.page.unit.ts index e8239a3d49..8fa2ad4b64 100644 --- a/src/modules/page/class-members/ClassMembers.page.unit.ts +++ b/src/modules/page/class-members/ClassMembers.page.unit.ts @@ -14,9 +14,9 @@ import { } from "@@/tests/test-utils/setup"; import vueDompurifyHTMLPlugin from "vue-dompurify-html"; -vi.mock("@data-group", () => { +vi.mock("@data-group", async () => { return { - ...jest.requireActual("@data-group"), + ...(await vi.importActual("@data-group")), useGroupState: vi.fn(), }; }); diff --git a/src/modules/page/media-shelf/MediaShelf.page.unit.ts b/src/modules/page/media-shelf/MediaShelf.page.unit.ts index 6455f8a5ee..704c6a8897 100644 --- a/src/modules/page/media-shelf/MediaShelf.page.unit.ts +++ b/src/modules/page/media-shelf/MediaShelf.page.unit.ts @@ -13,9 +13,9 @@ import { flushPromises, mount } from "@vue/test-utils"; import { ref } from "vue"; import MediaShelfPage from "./MediaShelf.page.vue"; -vi.mock("@feature-media-shelf", () => { +vi.mock("@feature-media-shelf", async () => { return { - ...jest.requireActual("@feature-media-shelf"), + ...(await vi.importActual("@feature-media-shelf")), useSharedMediaBoardState: vi.fn(), }; }); diff --git a/src/modules/ui/confirmation-dialog/DeleteConfirmation.composable.unit.ts b/src/modules/ui/confirmation-dialog/DeleteConfirmation.composable.unit.ts index c42dc1a8b2..ac471a5fc3 100644 --- a/src/modules/ui/confirmation-dialog/DeleteConfirmation.composable.unit.ts +++ b/src/modules/ui/confirmation-dialog/DeleteConfirmation.composable.unit.ts @@ -5,9 +5,9 @@ import { createTestingI18n } from "@@/tests/test-utils/setup"; import { useI18n } from "vue-i18n"; vi.mock("./Confirmation.composable"); -vi.mock("vue-i18n", () => { +vi.mock("vue-i18n", async () => { return { - ...jest.requireActual("vue-i18n"), + ...(await vi.importActual("vue-i18n")), useI18n: vi.fn(), }; }); diff --git a/src/pages/administration/RoomsOverview.page.unit.ts b/src/pages/administration/RoomsOverview.page.unit.ts index 359ea63d57..6733e76ba5 100644 --- a/src/pages/administration/RoomsOverview.page.unit.ts +++ b/src/pages/administration/RoomsOverview.page.unit.ts @@ -30,9 +30,9 @@ vi.mock("vue-router", () => ({ useRouter: vi.fn(), })); -vi.mock("@data-room", () => { +vi.mock("@data-room", async () => { return { - ...jest.requireActual("@data-room"), + ...(await vi.importActual("@data-room")), useCourseList: vi.fn(), useCourseApi: vi.fn(), }; From f72d731f2d4f77688dbb631eb6e2e65c702775f8 Mon Sep 17 00:00:00 2001 From: Odalys Adam Date: Tue, 22 Oct 2024 00:10:33 +0200 Subject: [PATCH 14/18] replace jest.runAllTimers with vi.runAllTimers --- src/components/molecules/ContextMenu.unit.ts | 2 +- src/mixins/print.unit.js | 2 +- .../content/FileContent.unit.ts | 4 +-- src/modules/feature/board/board/Board.unit.ts | 12 ++++----- .../feature/board/board/BoardHeader.unit.ts | 8 +++--- .../course-sync/GroupSelectionDialog.unit.ts | 2 +- .../administration/student-overview.unit.js | 10 +++---- .../administration/teacher-overview.unit.js | 26 +++++++++---------- 8 files changed, 33 insertions(+), 33 deletions(-) diff --git a/src/components/molecules/ContextMenu.unit.ts b/src/components/molecules/ContextMenu.unit.ts index 045faabdd2..0307b41742 100644 --- a/src/components/molecules/ContextMenu.unit.ts +++ b/src/components/molecules/ContextMenu.unit.ts @@ -65,7 +65,7 @@ describe("@/components/molecules/ContextMenu", () => { const wrapper = getWrapper(); await wrapper.find(".context-menu__button").trigger("click"); - jest.runAllTimers(); + vi.runAllTimers(); const emitted = await wrapper.emitted("update:show"); expect(emitted).toHaveLength(1); diff --git a/src/mixins/print.unit.js b/src/mixins/print.unit.js index 69dfcf87ae..87afc114aa 100644 --- a/src/mixins/print.unit.js +++ b/src/mixins/print.unit.js @@ -60,7 +60,7 @@ describe("@/mixins/print", () => { const testContent = "some plain old content"; vi.useFakeTimers(); method(testContent); - jest.runAllTimers(); + vi.runAllTimers(); expect(newWindowMock.print).toHaveBeenCalled(); expect(newWindowMock.close).toHaveBeenCalled(); }); diff --git a/src/modules/feature/board-file-element/content/FileContent.unit.ts b/src/modules/feature/board-file-element/content/FileContent.unit.ts index 247460f8bf..4b3f406390 100644 --- a/src/modules/feature/board-file-element/content/FileContent.unit.ts +++ b/src/modules/feature/board-file-element/content/FileContent.unit.ts @@ -555,7 +555,7 @@ describe("FileContent", () => { const fileInputs = wrapper.findComponent(FileInputs); fileInputs.vm.$emit("update:alternativeText"); - jest.runAllTimers(); + vi.runAllTimers(); expect(wrapper.emitted("update:alternativeText")).toHaveLength(1); }); @@ -566,7 +566,7 @@ describe("FileContent", () => { const fileInputs = wrapper.findComponent(FileInputs); fileInputs.vm.$emit("update:caption"); - jest.runAllTimers(); + vi.runAllTimers(); expect(wrapper.emitted("update:caption")).toHaveLength(1); }); diff --git a/src/modules/feature/board/board/Board.unit.ts b/src/modules/feature/board/board/Board.unit.ts index dd82ea1829..7ec81bc309 100644 --- a/src/modules/feature/board/board/Board.unit.ts +++ b/src/modules/feature/board/board/Board.unit.ts @@ -413,7 +413,7 @@ describe("Board", () => { setup(); - jest.runAllTimers(); + vi.runAllTimers(); expect(mockedBoardNotifierCalls.showCustomNotifier).toHaveBeenCalled(); }); @@ -423,7 +423,7 @@ describe("Board", () => { setup({ isBoardVisible: false }); - jest.runAllTimers(); + vi.runAllTimers(); expect(mockedBoardNotifierCalls.showCustomNotifier).toHaveBeenCalledWith( "components.board.alert.info.draft", @@ -436,7 +436,7 @@ describe("Board", () => { setup(); - jest.runAllTimers(); + vi.runAllTimers(); expect(mockedBoardNotifierCalls.showCustomNotifier).toHaveBeenCalledWith( "components.board.alert.info.teacher", @@ -450,7 +450,7 @@ describe("Board", () => { const { boardStore } = setup({ isBoardVisible: false }); boardStore.board!.isVisible = true; - jest.runAllTimers(); + vi.runAllTimers(); expect(mockedBoardNotifierCalls.showCustomNotifier).toHaveBeenCalledWith( "components.board.alert.info.teacher", @@ -464,7 +464,7 @@ describe("Board", () => { const { boardStore } = setup(); boardStore.board!.isVisible = false; - jest.runAllTimers(); + vi.runAllTimers(); expect(mockedBoardNotifierCalls.showCustomNotifier).toHaveBeenCalledWith( "components.board.alert.info.draft", @@ -479,7 +479,7 @@ describe("Board", () => { setup(); - jest.runAllTimers(); + vi.runAllTimers(); expect( mockedBoardNotifierCalls.showCustomNotifier diff --git a/src/modules/feature/board/board/BoardHeader.unit.ts b/src/modules/feature/board/board/BoardHeader.unit.ts index 0386c14465..16617acd84 100644 --- a/src/modules/feature/board/board/BoardHeader.unit.ts +++ b/src/modules/feature/board/board/BoardHeader.unit.ts @@ -166,7 +166,7 @@ describe("BoardHeader", () => { const titleInput = wrapper.findComponent(BoardAnyTitleInput); titleInput.vm.$emit("update:value", ""); - jest.runAllTimers(); + vi.runAllTimers(); const emitted = wrapper.emitted("update:title"); expect(emitted).toBeUndefined(); @@ -182,7 +182,7 @@ describe("BoardHeader", () => { const titleInput = wrapper.findComponent(BoardAnyTitleInput); titleInput.vm.$emit("update:value", "new-title"); - jest.runAllTimers(); + vi.runAllTimers(); const emitted = wrapper.emitted("update:title"); expect(emitted).toBeDefined(); @@ -201,7 +201,7 @@ describe("BoardHeader", () => { titleInput.vm.$emit("update:value", ""); titleInput.vm.$emit("blur"); - jest.runAllTimers(); + vi.runAllTimers(); const emitted = wrapper.emitted("update:title"); expect(emitted).toBeDefined(); @@ -221,7 +221,7 @@ describe("BoardHeader", () => { titleInput.vm.$emit("update:value", "newTitle"); titleInput.vm.$emit("blur"); - jest.runAllTimers(); + vi.runAllTimers(); const emitted = wrapper.emitted("update:title"); expect(emitted?.[1]).toBeUndefined(); diff --git a/src/modules/feature/course-sync/GroupSelectionDialog.unit.ts b/src/modules/feature/course-sync/GroupSelectionDialog.unit.ts index f50284dee2..71f04708de 100644 --- a/src/modules/feature/course-sync/GroupSelectionDialog.unit.ts +++ b/src/modules/feature/course-sync/GroupSelectionDialog.unit.ts @@ -96,7 +96,7 @@ describe("GroupSelectionDialog", () => { const autocomplete = wrapper.findComponent(VAutocomplete); await autocomplete.setValue("testGroup", "search"); - jest.runAllTimers(); + vi.runAllTimers(); expect(useGroupListStateMock.fetchGroups).toHaveBeenCalledWith< [GroupListFilter, { append: boolean }?] diff --git a/src/pages/administration/student-overview.unit.js b/src/pages/administration/student-overview.unit.js index a8727a4cba..82cfd9346b 100644 --- a/src/pages/administration/student-overview.unit.js +++ b/src/pages/administration/student-overview.unit.js @@ -247,7 +247,7 @@ describe("students/index", () => { expect(checkBox.exists()).toBe(true); await checkBox.trigger("click"); await dataRow.vm.$emit("update:selected", true); - jest.runAllTimers(); + vi.runAllTimers(); // user is selected expect(dataRow.vm.selected).toBe(true); @@ -262,14 +262,14 @@ describe("students/index", () => { expect(openContextButton.exists()).toBe(true); // contextMenu is clicked await openContextButton.trigger("click"); - jest.runAllTimers(); + vi.runAllTimers(); // delete button action is rendered in contextMenu const deleteActionButton = wrapper.find(`[data-testid="delete_action"]`); expect(deleteActionButton.exists()).toBe(true); // delete button is clicked await deleteActionButton.trigger("click"); - jest.runAllTimers(); + vi.runAllTimers(); // delete action is emitted expect(selectionBar.emitted("fire-action")[0][0].dataTestId).toStrictEqual( @@ -486,7 +486,7 @@ describe("students/index", () => { const { wrapper, usersActionsStubs, uiStateMutationsStubs } = setup(); //run all existing timers - jest.runAllTimers(); + vi.runAllTimers(); const searchBarInput = wrapper.find(`input[data-testid="searchbar"]`); expect(searchBarInput.exists()).toBe(true); @@ -494,7 +494,7 @@ describe("students/index", () => { searchBarInput.setValue("abc"); //run new timer from updating the value - jest.runAllTimers(); + vi.runAllTimers(); expect(uiStateMutationsStubs.set).toHaveBeenCalled(); diff --git a/src/pages/administration/teacher-overview.unit.js b/src/pages/administration/teacher-overview.unit.js index e55fdb983b..6f0bd9b398 100644 --- a/src/pages/administration/teacher-overview.unit.js +++ b/src/pages/administration/teacher-overview.unit.js @@ -246,7 +246,7 @@ describe("teachers/index", () => { expect(checkBox.exists()).toBe(true); await checkBox.trigger("click"); await dataRow.vm.$emit("update:selected", true); - jest.runAllTimers(); + vi.runAllTimers(); // user is selected expect(dataRow.vm.selected).toBe(true); @@ -261,14 +261,14 @@ describe("teachers/index", () => { expect(openContextButton.exists()).toBe(true); // contextMenu is clicked await openContextButton.trigger("click"); - jest.runAllTimers(); + vi.runAllTimers(); // delete button action is rendered in contextMenu const deleteActionButton = wrapper.find(`[data-testid="delete_action"]`); expect(deleteActionButton.exists()).toBe(true); // delete button is clicked await deleteActionButton.trigger("click"); - jest.runAllTimers(); + vi.runAllTimers(); // delete action is emitted expect(selectionBar.emitted("fire-action")[0][0].dataTestId).toStrictEqual( @@ -287,7 +287,7 @@ describe("teachers/index", () => { expect(checkBox.exists()).toBe(true); await checkBox.trigger("click"); await dataRow.vm.$emit("update:selected", true); - jest.runAllTimers(); + vi.runAllTimers(); // user is selected expect(dataRow.vm.selected).toBe(true); @@ -302,7 +302,7 @@ describe("teachers/index", () => { expect(openContextButton.exists()).toBe(true); // contextMenu is clicked await openContextButton.trigger("click"); - jest.runAllTimers(); + vi.runAllTimers(); // registration_link button action is rendered in contextMenu const registrationButton = wrapper.find( @@ -311,7 +311,7 @@ describe("teachers/index", () => { expect(registrationButton.exists()).toBe(true); // registration_link button is clicked await registrationButton.trigger("click"); - jest.runAllTimers(); + vi.runAllTimers(); // registration_link action is emitted expect(selectionBar.emitted("fire-action")[0][0].dataTestId).toStrictEqual( @@ -330,7 +330,7 @@ describe("teachers/index", () => { expect(checkBox.exists()).toBe(true); await checkBox.trigger("click"); await dataRow.vm.$emit("update:selected", true); - jest.runAllTimers(); + vi.runAllTimers(); // user is selected expect(dataRow.vm.selected).toBe(true); @@ -345,14 +345,14 @@ describe("teachers/index", () => { expect(openContextButton.exists()).toBe(true); // contextMenu is clicked await openContextButton.trigger("click"); - jest.runAllTimers(); + vi.runAllTimers(); // qr_code button action is rendered in contextMenu const registrationButton = wrapper.find(`[data-testid="qr_code"]`); expect(registrationButton.exists()).toBe(true); // qr_code button is clicked await registrationButton.trigger("click"); - jest.runAllTimers(); + vi.runAllTimers(); // qr_code action is emitted expect(selectionBar.emitted("fire-action")[0][0].dataTestId).toStrictEqual( @@ -473,7 +473,7 @@ describe("teachers/index", () => { const { wrapper, usersActionsStubs, uiStateMutationsStubs } = setup(); // run all existing timers - jest.runAllTimers(); + vi.runAllTimers(); const searchBarInput = wrapper .find(`[data-testid="searchbar"]`) @@ -483,7 +483,7 @@ describe("teachers/index", () => { searchBarInput.setValue("abc"); //run new timer from updating the value - jest.runAllTimers(); + vi.runAllTimers(); expect(uiStateMutationsStubs.set).toHaveBeenCalled(); expect(usersActionsStubs.findTeachers).toHaveBeenCalled(); @@ -493,7 +493,7 @@ describe("teachers/index", () => { it.skip("should table filter options call uiState after passing props", () => { const { wrapper, uiStateMutationsStubs } = setup(); - jest.runAllTimers(); + vi.runAllTimers(); const filterComponent = wrapper.findComponent( `[data-testid="data_filter"]` @@ -502,7 +502,7 @@ describe("teachers/index", () => { filterComponent.setProps({ activeFilters: { classes: ["mockclassname"] } }); - jest.runAllTimers(); + vi.runAllTimers(); expect(uiStateMutationsStubs.set).toHaveBeenCalled(); }); From ce7c457ddc0c1927f39d9cb1e6d0836fe97480c8 Mon Sep 17 00:00:00 2001 From: Odalys Adam Date: Tue, 22 Oct 2024 00:13:05 +0200 Subject: [PATCH 15/18] replace jest.resetModules/resetAllMocks with vi.resetModules/resetAllMocks --- src/components/molecules/RoomModal.unit.ts | 2 +- src/components/rooms/RoomBaseCard.unit.ts | 2 +- src/components/rooms/RoomExternalToolCard.unit.ts | 2 +- src/components/rooms/RoomVideoConferenceCard.unit.ts | 2 +- src/modules/data/board/Board.store.unit.ts | 6 +++--- .../data/board/BoardPageInformation.composable.unit.ts | 2 +- src/modules/data/board/Card.store.unit.ts | 4 ++-- .../CollaborativeTextEditorElement.unit.ts | 2 +- .../components/CollaborativeTextEditorElementMenu.unit.ts | 2 +- .../CollaborativeTextEditorApi.composable.unit.ts | 2 +- .../feature/board-deleted-element/DeletedElement.unit.ts | 2 +- .../board-deleted-element/DeletedElementMenu.unit.ts | 2 +- .../board-external-tool-element/ExternalToolElement.unit.ts | 2 +- .../ExternalToolElementAlert.unit.ts | 2 +- .../ExternalToolElementMenu.unit.ts | 2 +- .../content/footer/attributes/FileAttributes.unit.ts | 2 +- .../content/footer/download/FileDownload.unit.ts | 2 +- .../shared/composables/FileStorageApi.composable.unit.ts | 2 +- .../feature/board-file-element/upload/FileUpload.unit.ts | 2 +- .../upload/file-picker/FilePicker.unit.ts | 2 +- .../SubmissionContentElementState.composable.unit.ts | 2 +- src/modules/feature/course-sync/EndCourseSyncDialog.unit.ts | 2 +- src/modules/feature/media-shelf/MediaBoard.unit.ts | 2 +- .../feature/media-shelf/MediaBoardAvailableElement.unit.ts | 2 +- .../feature/media-shelf/MediaBoardAvailableLine.unit.ts | 2 +- .../media-shelf/MediaBoardExternalToolElement.unit.ts | 2 +- .../media-shelf/MediaBoardExternalToolElementMenu.unit.ts | 2 +- src/modules/feature/media-shelf/MediaBoardLine.unit.ts | 2 +- src/modules/feature/media-shelf/MediaBoardLineGhost.unit.ts | 2 +- .../feature/media-shelf/MediaBoardLineHeader.unit.ts | 2 +- src/modules/feature/media-shelf/MediaBoardLineMenu.unit.ts | 2 +- src/modules/page/media-shelf/MediaShelf.page.unit.ts | 2 +- src/modules/ui/light-box/LightBox.unit.ts | 2 +- src/modules/ui/room-details/RoomBoardCard.unit.ts | 2 +- src/pages/administration/student-overview.unit.js | 2 +- src/pages/administration/teacher-overview.unit.js | 2 +- src/pages/course-rooms/CourseRoomDetails.page.unit.ts | 2 +- .../course-rooms/tools/RoomVideoConferenceSection.unit.ts | 2 +- src/pages/tasks/TaskOverview.unit.ts | 2 +- src/store/env-config.unit.ts | 2 +- src/store/school-external-tools.unit.ts | 2 +- src/store/schools.unit.ts | 2 +- src/store/systems.unit.ts | 2 +- src/store/user-login-migrations.unit.ts | 2 +- 44 files changed, 47 insertions(+), 47 deletions(-) diff --git a/src/components/molecules/RoomModal.unit.ts b/src/components/molecules/RoomModal.unit.ts index 1131ec988b..ee8d6689de 100644 --- a/src/components/molecules/RoomModal.unit.ts +++ b/src/components/molecules/RoomModal.unit.ts @@ -27,7 +27,7 @@ describe("RoomModal", () => { }; afterEach(() => { - jest.resetAllMocks(); + vi.resetAllMocks(); }); describe("when modal is not open", () => { diff --git a/src/components/rooms/RoomBaseCard.unit.ts b/src/components/rooms/RoomBaseCard.unit.ts index 48cbc25801..b5be6c2bbc 100644 --- a/src/components/rooms/RoomBaseCard.unit.ts +++ b/src/components/rooms/RoomBaseCard.unit.ts @@ -32,7 +32,7 @@ describe("RoomBaseCard", () => { }; afterEach(() => { - jest.resetAllMocks(); + vi.resetAllMocks(); }); describe("when a logoUrl is provided", () => { diff --git a/src/components/rooms/RoomExternalToolCard.unit.ts b/src/components/rooms/RoomExternalToolCard.unit.ts index a1b86800a3..04400a6912 100644 --- a/src/components/rooms/RoomExternalToolCard.unit.ts +++ b/src/components/rooms/RoomExternalToolCard.unit.ts @@ -46,7 +46,7 @@ describe("RoomExternalToolCard", () => { }); afterEach(() => { - jest.resetAllMocks(); + vi.resetAllMocks(); vi.clearAllMocks(); }); diff --git a/src/components/rooms/RoomVideoConferenceCard.unit.ts b/src/components/rooms/RoomVideoConferenceCard.unit.ts index 70543ee644..f3dcb327ad 100644 --- a/src/components/rooms/RoomVideoConferenceCard.unit.ts +++ b/src/components/rooms/RoomVideoConferenceCard.unit.ts @@ -29,7 +29,7 @@ describe("RoomVideoConferenceCard", () => { }; afterEach(() => { - jest.resetAllMocks(); + vi.resetAllMocks(); }); describe("Title", () => { diff --git a/src/modules/data/board/Board.store.unit.ts b/src/modules/data/board/Board.store.unit.ts index 8096ae2a85..2c40a9ca02 100644 --- a/src/modules/data/board/Board.store.unit.ts +++ b/src/modules/data/board/Board.store.unit.ts @@ -181,7 +181,7 @@ describe("BoardStore", () => { }; afterEach(() => { - jest.resetAllMocks(); + vi.resetAllMocks(); }); describe("getLastColumnIndex", () => { @@ -405,7 +405,7 @@ describe("BoardStore", () => { describe("when previous card needs to be focused", () => { afterEach(() => { - jest.resetAllMocks(); + vi.resetAllMocks(); }); describe("when the card is first element", () => { it('should call "forceFocus" if already focused card is deleted', async () => { @@ -486,7 +486,7 @@ describe("BoardStore", () => { describe("when previous column needs to be focused", () => { afterEach(() => { - jest.resetAllMocks(); + vi.resetAllMocks(); }); describe("when the column is the first element", () => { it('should call "forceFocus" if already focused column is deleted', async () => { diff --git a/src/modules/data/board/BoardPageInformation.composable.unit.ts b/src/modules/data/board/BoardPageInformation.composable.unit.ts index c9b364768d..103f786e7e 100644 --- a/src/modules/data/board/BoardPageInformation.composable.unit.ts +++ b/src/modules/data/board/BoardPageInformation.composable.unit.ts @@ -101,7 +101,7 @@ describe("BoardPageInformation.composable", () => { describe("when board context does not exist", () => { beforeEach(() => { - jest.resetAllMocks(); + vi.resetAllMocks(); }); const setup = () => { diff --git a/src/modules/data/board/Card.store.unit.ts b/src/modules/data/board/Card.store.unit.ts index 66ad9f8c96..b5501b4182 100644 --- a/src/modules/data/board/Card.store.unit.ts +++ b/src/modules/data/board/Card.store.unit.ts @@ -160,7 +160,7 @@ describe("CardStore", () => { }; afterEach(() => { - jest.resetAllMocks(); + vi.resetAllMocks(); }); describe("fetchCardRequest", () => { @@ -641,7 +641,7 @@ describe("CardStore", () => { describe("deleteElementSuccess", () => { afterEach(() => { - jest.resetAllMocks(); + vi.resetAllMocks(); }); it("should not delete element if card is undefined", async () => { const { cardStore, cardId, elements } = setup(); diff --git a/src/modules/feature/board-collaborative-text-editor-element/CollaborativeTextEditorElement.unit.ts b/src/modules/feature/board-collaborative-text-editor-element/CollaborativeTextEditorElement.unit.ts index 8815e34717..63120fceea 100644 --- a/src/modules/feature/board-collaborative-text-editor-element/CollaborativeTextEditorElement.unit.ts +++ b/src/modules/feature/board-collaborative-text-editor-element/CollaborativeTextEditorElement.unit.ts @@ -63,7 +63,7 @@ describe("CollaborativeTextEditorElement", () => { }; afterEach(() => { - jest.resetAllMocks(); + vi.resetAllMocks(); }); describe("when component is not in edit-mode", () => { diff --git a/src/modules/feature/board-collaborative-text-editor-element/components/CollaborativeTextEditorElementMenu.unit.ts b/src/modules/feature/board-collaborative-text-editor-element/components/CollaborativeTextEditorElementMenu.unit.ts index 688546037f..b48933935d 100644 --- a/src/modules/feature/board-collaborative-text-editor-element/components/CollaborativeTextEditorElementMenu.unit.ts +++ b/src/modules/feature/board-collaborative-text-editor-element/components/CollaborativeTextEditorElementMenu.unit.ts @@ -52,7 +52,7 @@ describe("CollaborativeTextEditorElementMenu", () => { }; afterEach(() => { - jest.resetAllMocks(); + vi.resetAllMocks(); }); const setup = () => { diff --git a/src/modules/feature/board-collaborative-text-editor-element/composables/CollaborativeTextEditorApi.composable.unit.ts b/src/modules/feature/board-collaborative-text-editor-element/composables/CollaborativeTextEditorApi.composable.unit.ts index 6642ac3ac1..11b622e77e 100644 --- a/src/modules/feature/board-collaborative-text-editor-element/composables/CollaborativeTextEditorApi.composable.unit.ts +++ b/src/modules/feature/board-collaborative-text-editor-element/composables/CollaborativeTextEditorApi.composable.unit.ts @@ -44,7 +44,7 @@ const setupErrorResponse = (message = "NOT_FOUND", code = 404) => { describe("CollaborativeTextEditorApi Composable", () => { afterEach(() => { - jest.resetAllMocks(); + vi.resetAllMocks(); }); describe("getUrl", () => { diff --git a/src/modules/feature/board-deleted-element/DeletedElement.unit.ts b/src/modules/feature/board-deleted-element/DeletedElement.unit.ts index 23c65fee48..ae9f3ec12a 100644 --- a/src/modules/feature/board-deleted-element/DeletedElement.unit.ts +++ b/src/modules/feature/board-deleted-element/DeletedElement.unit.ts @@ -56,7 +56,7 @@ describe("DeletedElement", () => { }; afterEach(() => { - jest.resetAllMocks(); + vi.resetAllMocks(); }); describe("when the user is not a teacher", () => { diff --git a/src/modules/feature/board-deleted-element/DeletedElementMenu.unit.ts b/src/modules/feature/board-deleted-element/DeletedElementMenu.unit.ts index 899868624b..1d73e7acba 100644 --- a/src/modules/feature/board-deleted-element/DeletedElementMenu.unit.ts +++ b/src/modules/feature/board-deleted-element/DeletedElementMenu.unit.ts @@ -22,7 +22,7 @@ describe("DeletedElementMenu", () => { }; afterEach(() => { - jest.resetAllMocks(); + vi.resetAllMocks(); }); describe("Delete Button", () => { diff --git a/src/modules/feature/board-external-tool-element/ExternalToolElement.unit.ts b/src/modules/feature/board-external-tool-element/ExternalToolElement.unit.ts index 43a5aedde6..c9d883cdb3 100644 --- a/src/modules/feature/board-external-tool-element/ExternalToolElement.unit.ts +++ b/src/modules/feature/board-external-tool-element/ExternalToolElement.unit.ts @@ -133,7 +133,7 @@ describe("ExternalToolElement", () => { }; afterEach(() => { - jest.resetAllMocks(); + vi.resetAllMocks(); }); describe("when the element is mounted", () => { diff --git a/src/modules/feature/board-external-tool-element/ExternalToolElementAlert.unit.ts b/src/modules/feature/board-external-tool-element/ExternalToolElementAlert.unit.ts index aa03544f7b..7c7e9119ee 100644 --- a/src/modules/feature/board-external-tool-element/ExternalToolElementAlert.unit.ts +++ b/src/modules/feature/board-external-tool-element/ExternalToolElementAlert.unit.ts @@ -84,7 +84,7 @@ describe("ExternalToolElementAlert", () => { }; afterEach(() => { - jest.resetAllMocks(); + vi.resetAllMocks(); }); describe("when an error exists", () => { diff --git a/src/modules/feature/board-external-tool-element/ExternalToolElementMenu.unit.ts b/src/modules/feature/board-external-tool-element/ExternalToolElementMenu.unit.ts index 64d7a6f0f0..006ecf3cd7 100644 --- a/src/modules/feature/board-external-tool-element/ExternalToolElementMenu.unit.ts +++ b/src/modules/feature/board-external-tool-element/ExternalToolElementMenu.unit.ts @@ -27,7 +27,7 @@ describe("ExternalToolElementMenu", () => { }; afterEach(() => { - jest.resetAllMocks(); + vi.resetAllMocks(); }); describe("Edit Button", () => { diff --git a/src/modules/feature/board-file-element/content/footer/attributes/FileAttributes.unit.ts b/src/modules/feature/board-file-element/content/footer/attributes/FileAttributes.unit.ts index 01f98b30ca..977438bb7b 100644 --- a/src/modules/feature/board-file-element/content/footer/attributes/FileAttributes.unit.ts +++ b/src/modules/feature/board-file-element/content/footer/attributes/FileAttributes.unit.ts @@ -53,7 +53,7 @@ describe("FileAttributes", () => { }; afterEach(() => { - jest.resetAllMocks(); + vi.resetAllMocks(); }); it("should be found in dom", () => { diff --git a/src/modules/feature/board-file-element/content/footer/download/FileDownload.unit.ts b/src/modules/feature/board-file-element/content/footer/download/FileDownload.unit.ts index 6103ec4d5f..1f9c1523d2 100644 --- a/src/modules/feature/board-file-element/content/footer/download/FileDownload.unit.ts +++ b/src/modules/feature/board-file-element/content/footer/download/FileDownload.unit.ts @@ -12,7 +12,7 @@ vi.mock("@/utils/fileHelper"); describe("FileDownload", () => { beforeEach(() => { - jest.resetAllMocks(); + vi.resetAllMocks(); }); const setup = () => { diff --git a/src/modules/feature/board-file-element/shared/composables/FileStorageApi.composable.unit.ts b/src/modules/feature/board-file-element/shared/composables/FileStorageApi.composable.unit.ts index 57569bc96b..02f7e8b63d 100644 --- a/src/modules/feature/board-file-element/shared/composables/FileStorageApi.composable.unit.ts +++ b/src/modules/feature/board-file-element/shared/composables/FileStorageApi.composable.unit.ts @@ -54,7 +54,7 @@ const setupErrorResponse = (message = "NOT_FOUND", code = 404) => { describe("FileStorageApi Composable", () => { afterEach(() => { - jest.resetAllMocks(); + vi.resetAllMocks(); }); describe("getFileRecord", () => { diff --git a/src/modules/feature/board-file-element/upload/FileUpload.unit.ts b/src/modules/feature/board-file-element/upload/FileUpload.unit.ts index bfa4ee9ac0..5ab0ea5d18 100644 --- a/src/modules/feature/board-file-element/upload/FileUpload.unit.ts +++ b/src/modules/feature/board-file-element/upload/FileUpload.unit.ts @@ -17,7 +17,7 @@ const setupUseSharedLastCreatedElementMock = () => { describe("FileUpload", () => { afterEach(() => { - jest.resetAllMocks(); + vi.resetAllMocks(); }); describe("when isEditMode is true", () => { diff --git a/src/modules/feature/board-file-element/upload/file-picker/FilePicker.unit.ts b/src/modules/feature/board-file-element/upload/file-picker/FilePicker.unit.ts index 9304fef12b..404dc4354c 100644 --- a/src/modules/feature/board-file-element/upload/file-picker/FilePicker.unit.ts +++ b/src/modules/feature/board-file-element/upload/file-picker/FilePicker.unit.ts @@ -8,7 +8,7 @@ import FilePicker from "./FilePicker.vue"; describe("FilePicker", () => { afterEach(() => { - jest.resetAllMocks(); + vi.resetAllMocks(); }); describe("when isFilePickerOpen is false", () => { diff --git a/src/modules/feature/board-submission-element/composables/SubmissionContentElementState.composable.unit.ts b/src/modules/feature/board-submission-element/composables/SubmissionContentElementState.composable.unit.ts index d6f2ff517d..1aebcacfdf 100644 --- a/src/modules/feature/board-submission-element/composables/SubmissionContentElementState.composable.unit.ts +++ b/src/modules/feature/board-submission-element/composables/SubmissionContentElementState.composable.unit.ts @@ -29,7 +29,7 @@ describe("SubmissionContentElementState.composable", () => { }); afterEach(() => { - jest.resetAllMocks(); + vi.resetAllMocks(); }); const setup = ( diff --git a/src/modules/feature/course-sync/EndCourseSyncDialog.unit.ts b/src/modules/feature/course-sync/EndCourseSyncDialog.unit.ts index d14257dacf..47cf0d0f9a 100644 --- a/src/modules/feature/course-sync/EndCourseSyncDialog.unit.ts +++ b/src/modules/feature/course-sync/EndCourseSyncDialog.unit.ts @@ -46,7 +46,7 @@ describe("EndCourseSyncDialog", () => { }); afterEach(() => { - jest.resetAllMocks(); + vi.resetAllMocks(); }); describe("when clicking on cancel", () => { diff --git a/src/modules/feature/media-shelf/MediaBoard.unit.ts b/src/modules/feature/media-shelf/MediaBoard.unit.ts index ce4ee79566..de8a81c817 100644 --- a/src/modules/feature/media-shelf/MediaBoard.unit.ts +++ b/src/modules/feature/media-shelf/MediaBoard.unit.ts @@ -73,7 +73,7 @@ describe("MediaBoard", () => { }); afterEach(() => { - jest.resetAllMocks(); + vi.resetAllMocks(); }); describe("when the available line creates a new element on the board", () => { diff --git a/src/modules/feature/media-shelf/MediaBoardAvailableElement.unit.ts b/src/modules/feature/media-shelf/MediaBoardAvailableElement.unit.ts index cf179ef0ce..b8a9d9c0c7 100644 --- a/src/modules/feature/media-shelf/MediaBoardAvailableElement.unit.ts +++ b/src/modules/feature/media-shelf/MediaBoardAvailableElement.unit.ts @@ -89,7 +89,7 @@ describe("MediaBoardAvailableElement", () => { }); afterEach(() => { - jest.resetAllMocks(); + vi.resetAllMocks(); }); describe("when loading external tool data", () => { diff --git a/src/modules/feature/media-shelf/MediaBoardAvailableLine.unit.ts b/src/modules/feature/media-shelf/MediaBoardAvailableLine.unit.ts index de0b99aaf9..5e56c2c9d3 100644 --- a/src/modules/feature/media-shelf/MediaBoardAvailableLine.unit.ts +++ b/src/modules/feature/media-shelf/MediaBoardAvailableLine.unit.ts @@ -51,7 +51,7 @@ describe("MediaBoardAvailableLine", () => { }; afterEach(() => { - jest.resetAllMocks(); + vi.resetAllMocks(); }); describe("when opening the menu", () => { diff --git a/src/modules/feature/media-shelf/MediaBoardExternalToolElement.unit.ts b/src/modules/feature/media-shelf/MediaBoardExternalToolElement.unit.ts index c87dbe29fa..509d692809 100644 --- a/src/modules/feature/media-shelf/MediaBoardExternalToolElement.unit.ts +++ b/src/modules/feature/media-shelf/MediaBoardExternalToolElement.unit.ts @@ -102,7 +102,7 @@ describe("MediaBoardExternalToolElement", () => { }); afterEach(() => { - jest.resetAllMocks(); + vi.resetAllMocks(); }); describe("when loading external tool data", () => { diff --git a/src/modules/feature/media-shelf/MediaBoardExternalToolElementMenu.unit.ts b/src/modules/feature/media-shelf/MediaBoardExternalToolElementMenu.unit.ts index 5549748a88..04ac86d365 100644 --- a/src/modules/feature/media-shelf/MediaBoardExternalToolElementMenu.unit.ts +++ b/src/modules/feature/media-shelf/MediaBoardExternalToolElementMenu.unit.ts @@ -20,7 +20,7 @@ describe("MediaBoardExternalToolElementMenu", () => { }; afterEach(() => { - jest.resetAllMocks(); + vi.resetAllMocks(); }); describe("Delete Button", () => { diff --git a/src/modules/feature/media-shelf/MediaBoardLine.unit.ts b/src/modules/feature/media-shelf/MediaBoardLine.unit.ts index 03aa3ea3e1..fb63cb1fa9 100644 --- a/src/modules/feature/media-shelf/MediaBoardLine.unit.ts +++ b/src/modules/feature/media-shelf/MediaBoardLine.unit.ts @@ -57,7 +57,7 @@ describe("MediaBoardLine", () => { }; afterEach(() => { - jest.resetAllMocks(); + vi.resetAllMocks(); }); describe("when rendering the line", () => { diff --git a/src/modules/feature/media-shelf/MediaBoardLineGhost.unit.ts b/src/modules/feature/media-shelf/MediaBoardLineGhost.unit.ts index 6f4a45277b..c15b44ecc6 100644 --- a/src/modules/feature/media-shelf/MediaBoardLineGhost.unit.ts +++ b/src/modules/feature/media-shelf/MediaBoardLineGhost.unit.ts @@ -22,7 +22,7 @@ describe("MediaBoardLineGhost", () => { }; afterEach(() => { - jest.resetAllMocks(); + vi.resetAllMocks(); }); describe("when the new line button is clicked", () => { diff --git a/src/modules/feature/media-shelf/MediaBoardLineHeader.unit.ts b/src/modules/feature/media-shelf/MediaBoardLineHeader.unit.ts index 31c1374df5..766ecfbe8a 100644 --- a/src/modules/feature/media-shelf/MediaBoardLineHeader.unit.ts +++ b/src/modules/feature/media-shelf/MediaBoardLineHeader.unit.ts @@ -38,7 +38,7 @@ describe("MediaBoardLineHeader", () => { }); afterEach(() => { - jest.resetAllMocks(); + vi.resetAllMocks(); }); describe("when the title updated", () => { diff --git a/src/modules/feature/media-shelf/MediaBoardLineMenu.unit.ts b/src/modules/feature/media-shelf/MediaBoardLineMenu.unit.ts index 207e81c8b3..1f0a9d6861 100644 --- a/src/modules/feature/media-shelf/MediaBoardLineMenu.unit.ts +++ b/src/modules/feature/media-shelf/MediaBoardLineMenu.unit.ts @@ -34,7 +34,7 @@ describe("MediaBoardLineMenu", () => { }; afterEach(() => { - jest.resetAllMocks(); + vi.resetAllMocks(); }); describe("when opening the menu for a line", () => { diff --git a/src/modules/page/media-shelf/MediaShelf.page.unit.ts b/src/modules/page/media-shelf/MediaShelf.page.unit.ts index 704c6a8897..e88f1118e6 100644 --- a/src/modules/page/media-shelf/MediaShelf.page.unit.ts +++ b/src/modules/page/media-shelf/MediaShelf.page.unit.ts @@ -61,7 +61,7 @@ describe("MediaShelfPage", () => { }); afterEach(() => { - jest.resetAllMocks(); + vi.resetAllMocks(); }); describe("when the page is loading", () => { diff --git a/src/modules/ui/light-box/LightBox.unit.ts b/src/modules/ui/light-box/LightBox.unit.ts index e5d550f75c..7418ce9dab 100644 --- a/src/modules/ui/light-box/LightBox.unit.ts +++ b/src/modules/ui/light-box/LightBox.unit.ts @@ -22,7 +22,7 @@ const mockedUseInternalLightBox = vi.mocked(useInternalLightBox); describe("LightBox", () => { beforeEach(() => { - jest.resetAllMocks(); + vi.resetAllMocks(); }); const setup = (props: { diff --git a/src/modules/ui/room-details/RoomBoardCard.unit.ts b/src/modules/ui/room-details/RoomBoardCard.unit.ts index 54526cd3fb..2382ca8be7 100644 --- a/src/modules/ui/room-details/RoomBoardCard.unit.ts +++ b/src/modules/ui/room-details/RoomBoardCard.unit.ts @@ -109,7 +109,7 @@ describe("RoomBoardCard", () => { }; afterEach(() => { - jest.resetAllMocks(); + vi.resetAllMocks(); }); describe("when a board card is rendered", () => { diff --git a/src/pages/administration/student-overview.unit.js b/src/pages/administration/student-overview.unit.js index 82cfd9346b..4e2b84fc1a 100644 --- a/src/pages/administration/student-overview.unit.js +++ b/src/pages/administration/student-overview.unit.js @@ -128,7 +128,7 @@ describe("students/index", () => { beforeEach(() => { vi.useFakeTimers(); - jest.resetModules(); // reset module registry to avoid conflicts + vi.resetModules(); // reset module registry to avoid conflicts process.env = { ...OLD_ENV }; // make a copy setupStores({ diff --git a/src/pages/administration/teacher-overview.unit.js b/src/pages/administration/teacher-overview.unit.js index 6f0bd9b398..ee6fd7fb52 100644 --- a/src/pages/administration/teacher-overview.unit.js +++ b/src/pages/administration/teacher-overview.unit.js @@ -122,7 +122,7 @@ describe("teachers/index", () => { beforeEach(() => { vi.useFakeTimers(); - jest.resetModules(); // reset module registry to avoid conflicts + vi.resetModules(); // reset module registry to avoid conflicts process.env = { ...OLD_ENV }; // make a copy setupStores({ diff --git a/src/pages/course-rooms/CourseRoomDetails.page.unit.ts b/src/pages/course-rooms/CourseRoomDetails.page.unit.ts index 0ca50a0d28..45b0f0f390 100644 --- a/src/pages/course-rooms/CourseRoomDetails.page.unit.ts +++ b/src/pages/course-rooms/CourseRoomDetails.page.unit.ts @@ -222,7 +222,7 @@ describe("@/pages/CourseRoomDetails.page.vue", () => { }); afterEach(() => { - jest.resetAllMocks(); + vi.resetAllMocks(); }); it("should fetch data", async () => { diff --git a/src/pages/course-rooms/tools/RoomVideoConferenceSection.unit.ts b/src/pages/course-rooms/tools/RoomVideoConferenceSection.unit.ts index dafcc597eb..ce0b9f0784 100644 --- a/src/pages/course-rooms/tools/RoomVideoConferenceSection.unit.ts +++ b/src/pages/course-rooms/tools/RoomVideoConferenceSection.unit.ts @@ -87,7 +87,7 @@ describe("RoomVideoConferenceSection", () => { }; afterEach(() => { - jest.resetAllMocks(); + vi.resetAllMocks(); }); describe("when the video conference is not running", () => { diff --git a/src/pages/tasks/TaskOverview.unit.ts b/src/pages/tasks/TaskOverview.unit.ts index c8039a4048..263bb81729 100644 --- a/src/pages/tasks/TaskOverview.unit.ts +++ b/src/pages/tasks/TaskOverview.unit.ts @@ -29,7 +29,7 @@ describe("TaskOverview", () => { }; beforeEach(() => { - jest.resetAllMocks(); + vi.resetAllMocks(); setupStores({ envConfigModule: EnvConfigModule, }); diff --git a/src/store/env-config.unit.ts b/src/store/env-config.unit.ts index aec6a6abe6..33ced87b4b 100644 --- a/src/store/env-config.unit.ts +++ b/src/store/env-config.unit.ts @@ -32,7 +32,7 @@ describe("env-config module", () => { beforeEach(() => { consoleWarnSpy = vi.spyOn(console, "warn").mockImplementation(); consoleErrorSpy = vi.spyOn(console, "error").mockImplementation(); - jest.resetAllMocks(); + vi.resetAllMocks(); }); afterEach(() => { diff --git a/src/store/school-external-tools.unit.ts b/src/store/school-external-tools.unit.ts index 13840b48d1..7a649cb5f6 100644 --- a/src/store/school-external-tools.unit.ts +++ b/src/store/school-external-tools.unit.ts @@ -42,7 +42,7 @@ describe("SchoolExternalToolsModule", () => { }); afterEach(() => { - jest.resetAllMocks(); + vi.resetAllMocks(); }); describe("getters", () => { diff --git a/src/store/schools.unit.ts b/src/store/schools.unit.ts index a22aa81711..b707f5eeff 100644 --- a/src/store/schools.unit.ts +++ b/src/store/schools.unit.ts @@ -46,7 +46,7 @@ describe("schools module", () => { }); afterEach(() => { - jest.resetAllMocks(); + vi.resetAllMocks(); }); describe("actions", () => { diff --git a/src/store/systems.unit.ts b/src/store/systems.unit.ts index b4ee6146e1..efe0ced144 100644 --- a/src/store/systems.unit.ts +++ b/src/store/systems.unit.ts @@ -10,7 +10,7 @@ describe("SystemsModule", () => { }); afterEach(() => { - jest.resetAllMocks(); + vi.resetAllMocks(); }); describe("getter/setter", () => { diff --git a/src/store/user-login-migrations.unit.ts b/src/store/user-login-migrations.unit.ts index 1bdae32af2..5dc28aa5ec 100644 --- a/src/store/user-login-migrations.unit.ts +++ b/src/store/user-login-migrations.unit.ts @@ -44,7 +44,7 @@ describe("UserLoginMigrationModule", () => { }); afterEach(() => { - jest.resetAllMocks(); + vi.resetAllMocks(); }); describe("getter/setter", () => { From 57d4bfe2d30f63b41bd4ea4b85702b41b4939ad7 Mon Sep 17 00:00:00 2001 From: Odalys Adam Date: Tue, 22 Oct 2024 00:18:39 +0200 Subject: [PATCH 16/18] replace runOnlyPendingTimers & restoreAllMocks --- .../data/board/cardActions/cardSocketApi.composable.unit.ts | 2 +- .../feature/board-file-element/content/FileContent.unit.ts | 2 +- src/store/group.unit.ts | 2 +- src/store/video-conference.unit.ts | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/modules/data/board/cardActions/cardSocketApi.composable.unit.ts b/src/modules/data/board/cardActions/cardSocketApi.composable.unit.ts index 0cdefa55c8..22e7531d4f 100644 --- a/src/modules/data/board/cardActions/cardSocketApi.composable.unit.ts +++ b/src/modules/data/board/cardActions/cardSocketApi.composable.unit.ts @@ -89,7 +89,7 @@ describe("useCardSocketApi", () => { }); afterEach(() => { - jest.runOnlyPendingTimers(); + vi.runOnlyPendingTimers(); vi.useRealTimers(); }); diff --git a/src/modules/feature/board-file-element/content/FileContent.unit.ts b/src/modules/feature/board-file-element/content/FileContent.unit.ts index 4b3f406390..c118f4c850 100644 --- a/src/modules/feature/board-file-element/content/FileContent.unit.ts +++ b/src/modules/feature/board-file-element/content/FileContent.unit.ts @@ -17,7 +17,7 @@ describe("FileContent", () => { }); afterEach(() => { - jest.runOnlyPendingTimers(); + vi.runOnlyPendingTimers(); vi.useRealTimers(); }); diff --git a/src/store/group.unit.ts b/src/store/group.unit.ts index 34ad5ea9b5..6a73e9d100 100644 --- a/src/store/group.unit.ts +++ b/src/store/group.unit.ts @@ -39,7 +39,7 @@ describe("GroupModule", () => { }); afterEach(() => { - jest.restoreAllMocks(); + vi.restoreAllMocks(); }); describe("getter/setter", () => { diff --git a/src/store/video-conference.unit.ts b/src/store/video-conference.unit.ts index aefee8bc29..349d564654 100644 --- a/src/store/video-conference.unit.ts +++ b/src/store/video-conference.unit.ts @@ -28,7 +28,7 @@ describe("VideoConferenceModule", () => { }); afterEach(() => { - jest.restoreAllMocks(); + vi.restoreAllMocks(); }); const mockApi = () => { From 5fcf074de9ab1832f6a55b2dbcc3dd256c2a8daa Mon Sep 17 00:00:00 2001 From: Odalys Adam Date: Tue, 22 Oct 2024 00:32:57 +0200 Subject: [PATCH 17/18] adjust done() usage --- .../composables/filter.composable.unit.ts | 2 +- src/store/course-room-list.unit.ts | 39 +- src/store/finished-tasks.unit.ts | 387 +++++++++--------- src/store/news.unit.ts | 276 +++++++------ src/store/schools.unit.ts | 34 +- src/store/tasks.unit.ts | 326 +++++++-------- 6 files changed, 545 insertions(+), 519 deletions(-) diff --git a/src/components/organisms/DataFilter/composables/filter.composable.unit.ts b/src/components/organisms/DataFilter/composables/filter.composable.unit.ts index d64e4c1fc0..a9624bb675 100644 --- a/src/components/organisms/DataFilter/composables/filter.composable.unit.ts +++ b/src/components/organisms/DataFilter/composables/filter.composable.unit.ts @@ -23,7 +23,7 @@ vi.mock("@vueuse/core", async () => { }; }); -vi.mock("vue-i18n", () => { +vi.mock("vue-i18n", async () => { return { ...(await vi.importActual("vue-i18n")), useI18n: vi.fn().mockReturnValue({ t: (key: string) => key }), diff --git a/src/store/course-room-list.unit.ts b/src/store/course-room-list.unit.ts index 1b7ac34a3f..44fd571369 100644 --- a/src/store/course-room-list.unit.ts +++ b/src/store/course-room-list.unit.ts @@ -252,26 +252,27 @@ describe("rooms module", () => { ).toStrictEqual(100); // $limit: 100 }); - it("handle error", (done) => { - const error = { status: 418, statusText: "I'm not a teapot" }; - const mockApi = { - courseControllerFindForUser: vi.fn(() => - Promise.reject({ ...error }) - ), - }; - vi.spyOn(serverApi, "CoursesApiFactory").mockReturnValue( - mockApi as unknown as serverApi.CoursesApiInterface - ); - const courseRoomListModule = new CourseRoomListModule({}); - - courseRoomListModule.fetchAllElements().then(() => { - expect(courseRoomListModule.getLoading).toBe(false); - expect(courseRoomListModule.getError).toStrictEqual({ ...error }); - done(); - }); + it("handle error", () => + new Promise((done) => { + const error = { status: 418, statusText: "I'm not a teapot" }; + const mockApi = { + courseControllerFindForUser: vi.fn(() => + Promise.reject({ ...error }) + ), + }; + vi.spyOn(serverApi, "CoursesApiFactory").mockReturnValue( + mockApi as unknown as serverApi.CoursesApiInterface + ); + const courseRoomListModule = new CourseRoomListModule({}); + + courseRoomListModule.fetchAllElements().then(() => { + expect(courseRoomListModule.getLoading).toBe(false); + expect(courseRoomListModule.getError).toStrictEqual({ ...error }); + done(); + }); - expect(courseRoomListModule.getLoading).toBe(true); - }); + expect(courseRoomListModule.getLoading).toBe(true); + })); }); describe("confirmSharedCourseData", () => { diff --git a/src/store/finished-tasks.unit.ts b/src/store/finished-tasks.unit.ts index 2c786292a8..f4a943bd97 100644 --- a/src/store/finished-tasks.unit.ts +++ b/src/store/finished-tasks.unit.ts @@ -32,153 +32,158 @@ describe("finished task store", () => { }; describe("fetchFinishedTasks", () => { - it("should request an initial list of tasks", (done) => { - const { taskApiMock, finishedTasksModule } = setup({ - taskControllerFindAllFinished: vi.fn(() => ({ - data: { - data: [{ mockTask: "mock task value" }], - total: 1, - skip: 0, - limit: 50, - }, - })), - }); - - finishedTasksModule.fetchFinishedTasks().then(() => { - expect(finishedTasksModule.getTasks).toStrictEqual([ - { - mockTask: "mock task value", - }, - ]); - expect(finishedTasksModule.getStatus).toBe("completed"); - expect( - taskApiMock.taskControllerFindAllFinished - ).toHaveBeenCalledTimes(1); - done(); - }); - expect(finishedTasksModule.getStatus).toBe("pending"); - }); - - it("should fetch the next page", (done) => { - const mockApi = { - taskControllerFindAllFinished: vi - .fn() - .mockResolvedValueOnce({ + it("should request an initial list of tasks", () => + new Promise((done) => { + const { taskApiMock, finishedTasksModule } = setup({ + taskControllerFindAllFinished: vi.fn(() => ({ data: { - data: [{ mockTask: "mock task #1" }], - total: 110, - skip: 50, - limit: 50, - }, - }) - .mockResolvedValueOnce({ - data: { - data: [{ mockTask: "mock task #2" }], - total: 110, - skip: 100, + data: [{ mockTask: "mock task value" }], + total: 1, + skip: 0, limit: 50, }, - }), - }; - - const spy = vi - .spyOn(serverApi, "TaskApiFactory") - .mockReturnValue(mockApi as unknown as serverApi.TaskApiInterface); - - const finishedTasksModule = new FinishedTasksModule({}); - finishedTasksModule.pagination.skip = 50; - finishedTasksModule.pagination.total = 110; - - finishedTasksModule.fetchFinishedTasks().then(() => { - expect(finishedTasksModule.getTasks).toStrictEqual([ - { mockTask: "mock task #1" }, - ]); - expect(finishedTasksModule.getStatus).toBe("completed"); - expect(mockApi.taskControllerFindAllFinished).toHaveBeenCalledTimes( - 1 - ); - done(); - }); - expect(finishedTasksModule.getStatus).toBe("pending"); - spy.mockRestore(); - }); - - it("should not call api when total is reached", (done) => { - const finishedTasksModule = new FinishedTasksModule({}); - finishedTasksModule.pagination.skip = 100; - finishedTasksModule.pagination.total = 100; - finishedTasksModule.isInitialized = true; - - const mockApi = { - taskControllerFindAllFinished: vi.fn(), - }; + })), + }); - const spy = vi - .spyOn(serverApi, "TaskApiFactory") - .mockReturnValue(mockApi as unknown as serverApi.TaskApiInterface); - - finishedTasksModule.fetchFinishedTasks().then(() => { - expect(finishedTasksModule.getStatus).toBe("completed"); - expect(mockApi.taskControllerFindAllFinished).toHaveBeenCalledTimes( - 0 - ); - done(); - }); - spy.mockRestore(); - }); - - it("should not call api when skip value is higher than total", (done) => { - const finishedTasksModule = new FinishedTasksModule({}); - finishedTasksModule.pagination.skip = 150; - finishedTasksModule.pagination.total = 120; - finishedTasksModule.isInitialized = true; - - const mockApi = { - taskControllerFindAllFinished: vi.fn(), - }; - - const spy = vi - .spyOn(serverApi, "TaskApiFactory") - .mockReturnValue(mockApi as unknown as serverApi.TaskApiInterface); - - finishedTasksModule.fetchFinishedTasks().then(() => { - expect(finishedTasksModule.getStatus).toBe("completed"); - expect(mockApi.taskControllerFindAllFinished).toHaveBeenCalledTimes( - 0 - ); - done(); - }); - spy.mockRestore(); - }); - - it("should handle an error", (done) => { - const finishedTasksModule = new FinishedTasksModule({}); - finishedTasksModule.pagination.skip = 50; - finishedTasksModule.pagination.total = 100; - - const error = { status: 418, statusText: "I'm a teapot" }; - const mockApi = { - taskControllerFindAllFinished: vi.fn(() => - Promise.reject({ ...error }) - ), - }; - const spy = vi - .spyOn(serverApi, "TaskApiFactory") - .mockReturnValue(mockApi as unknown as serverApi.TaskApiInterface); - - finishedTasksModule.fetchFinishedTasks().then(() => { - expect(finishedTasksModule.getTasks).toStrictEqual([]); - expect(finishedTasksModule.getStatus).toBe("error"); - expect(finishedTasksModule.businessError).toStrictEqual(error); - expect(mockApi.taskControllerFindAllFinished).toHaveBeenCalledTimes( - 1 - ); - done(); - }); - expect(finishedTasksModule.getStatus).toBe("pending"); - - spy.mockRestore(); - }); + finishedTasksModule.fetchFinishedTasks().then(() => { + expect(finishedTasksModule.getTasks).toStrictEqual([ + { + mockTask: "mock task value", + }, + ]); + expect(finishedTasksModule.getStatus).toBe("completed"); + expect( + taskApiMock.taskControllerFindAllFinished + ).toHaveBeenCalledTimes(1); + done(); + }); + expect(finishedTasksModule.getStatus).toBe("pending"); + })); + + it("should fetch the next page", () => + new Promise((done) => { + const mockApi = { + taskControllerFindAllFinished: vi + .fn() + .mockResolvedValueOnce({ + data: { + data: [{ mockTask: "mock task #1" }], + total: 110, + skip: 50, + limit: 50, + }, + }) + .mockResolvedValueOnce({ + data: { + data: [{ mockTask: "mock task #2" }], + total: 110, + skip: 100, + limit: 50, + }, + }), + }; + + const spy = vi + .spyOn(serverApi, "TaskApiFactory") + .mockReturnValue(mockApi as unknown as serverApi.TaskApiInterface); + + const finishedTasksModule = new FinishedTasksModule({}); + finishedTasksModule.pagination.skip = 50; + finishedTasksModule.pagination.total = 110; + + finishedTasksModule.fetchFinishedTasks().then(() => { + expect(finishedTasksModule.getTasks).toStrictEqual([ + { mockTask: "mock task #1" }, + ]); + expect(finishedTasksModule.getStatus).toBe("completed"); + expect(mockApi.taskControllerFindAllFinished).toHaveBeenCalledTimes( + 1 + ); + done(); + }); + expect(finishedTasksModule.getStatus).toBe("pending"); + spy.mockRestore(); + })); + + it("should not call api when total is reached", () => + new Promise((done) => { + const finishedTasksModule = new FinishedTasksModule({}); + finishedTasksModule.pagination.skip = 100; + finishedTasksModule.pagination.total = 100; + finishedTasksModule.isInitialized = true; + + const mockApi = { + taskControllerFindAllFinished: vi.fn(), + }; + + const spy = vi + .spyOn(serverApi, "TaskApiFactory") + .mockReturnValue(mockApi as unknown as serverApi.TaskApiInterface); + + finishedTasksModule.fetchFinishedTasks().then(() => { + expect(finishedTasksModule.getStatus).toBe("completed"); + expect(mockApi.taskControllerFindAllFinished).toHaveBeenCalledTimes( + 0 + ); + done(); + }); + spy.mockRestore(); + })); + + it("should not call api when skip value is higher than total", () => + new Promise((done) => { + const finishedTasksModule = new FinishedTasksModule({}); + finishedTasksModule.pagination.skip = 150; + finishedTasksModule.pagination.total = 120; + finishedTasksModule.isInitialized = true; + + const mockApi = { + taskControllerFindAllFinished: vi.fn(), + }; + + const spy = vi + .spyOn(serverApi, "TaskApiFactory") + .mockReturnValue(mockApi as unknown as serverApi.TaskApiInterface); + + finishedTasksModule.fetchFinishedTasks().then(() => { + expect(finishedTasksModule.getStatus).toBe("completed"); + expect(mockApi.taskControllerFindAllFinished).toHaveBeenCalledTimes( + 0 + ); + done(); + }); + spy.mockRestore(); + })); + + it("should handle an error", () => + new Promise((done) => { + const finishedTasksModule = new FinishedTasksModule({}); + finishedTasksModule.pagination.skip = 50; + finishedTasksModule.pagination.total = 100; + + const error = { status: 418, statusText: "I'm a teapot" }; + const mockApi = { + taskControllerFindAllFinished: vi.fn(() => + Promise.reject({ ...error }) + ), + }; + const spy = vi + .spyOn(serverApi, "TaskApiFactory") + .mockReturnValue(mockApi as unknown as serverApi.TaskApiInterface); + + finishedTasksModule.fetchFinishedTasks().then(() => { + expect(finishedTasksModule.getTasks).toStrictEqual([]); + expect(finishedTasksModule.getStatus).toBe("error"); + expect(finishedTasksModule.businessError).toStrictEqual(error); + expect(mockApi.taskControllerFindAllFinished).toHaveBeenCalledTimes( + 1 + ); + done(); + }); + expect(finishedTasksModule.getStatus).toBe("pending"); + + spy.mockRestore(); + })); }); describe("refetchTasks", () => { @@ -235,60 +240,62 @@ describe("finished task store", () => { spy.mockRestore(); }); - it("should handle an error", (done) => { - const finishedTasksModule = new FinishedTasksModule({}); - finishedTasksModule.pagination.skip = 50; - finishedTasksModule.pagination.total = 100; - - const error = { status: 418, statusText: "I'm a teapot" }; - const mockApi = { - taskControllerFindAllFinished: vi.fn(() => - Promise.reject({ ...error }) - ), - }; - const spy = vi - .spyOn(serverApi, "TaskApiFactory") - .mockReturnValue(mockApi as unknown as serverApi.TaskApiInterface); - - finishedTasksModule.refetchTasks().then(() => { - expect(finishedTasksModule.getTasks).toStrictEqual([]); - expect(finishedTasksModule.getStatus).toBe("error"); - expect(finishedTasksModule.businessError).toStrictEqual(error); - expect(mockApi.taskControllerFindAllFinished).toHaveBeenCalledTimes( - 1 - ); - done(); - }); - expect(finishedTasksModule.getStatus).toBe("pending"); - - spy.mockRestore(); - }); + it("should handle an error", () => + new Promise((done) => { + const finishedTasksModule = new FinishedTasksModule({}); + finishedTasksModule.pagination.skip = 50; + finishedTasksModule.pagination.total = 100; + + const error = { status: 418, statusText: "I'm a teapot" }; + const mockApi = { + taskControllerFindAllFinished: vi.fn(() => + Promise.reject({ ...error }) + ), + }; + const spy = vi + .spyOn(serverApi, "TaskApiFactory") + .mockReturnValue(mockApi as unknown as serverApi.TaskApiInterface); + + finishedTasksModule.refetchTasks().then(() => { + expect(finishedTasksModule.getTasks).toStrictEqual([]); + expect(finishedTasksModule.getStatus).toBe("error"); + expect(finishedTasksModule.businessError).toStrictEqual(error); + expect(mockApi.taskControllerFindAllFinished).toHaveBeenCalledTimes( + 1 + ); + done(); + }); + expect(finishedTasksModule.getStatus).toBe("pending"); + + spy.mockRestore(); + })); }); // TODO - implement when we figured out how to correctly mock stores describe("restoreTask", () => { it.todo("should call restore task api and refetch all tasks"); - it("should handle an error", (done) => { - const finishedTasksModule = new FinishedTasksModule({}); - const task = taskFactory.build(); - const error = { status: 418, statusText: "I'm a teapot" }; - const mockApi = { - taskControllerRestore: vi.fn(() => Promise.reject({ ...error })), - }; - - vi.spyOn(serverApi, "TaskApiFactory").mockReturnValue( - mockApi as unknown as serverApi.TaskApiInterface - ); + it("should handle an error", () => + new Promise((done) => { + const finishedTasksModule = new FinishedTasksModule({}); + const task = taskFactory.build(); + const error = { status: 418, statusText: "I'm a teapot" }; + const mockApi = { + taskControllerRestore: vi.fn(() => Promise.reject({ ...error })), + }; + + vi.spyOn(serverApi, "TaskApiFactory").mockReturnValue( + mockApi as unknown as serverApi.TaskApiInterface + ); - finishedTasksModule.restoreTask(task.id).then(() => { - expect(finishedTasksModule.getStatus).toBe("error"); - expect(finishedTasksModule.businessError).toStrictEqual(error); - done(); - }); - expect(finishedTasksModule.getStatus).toBe("pending"); - expect(mockApi.taskControllerRestore).toHaveBeenCalledTimes(1); - }); + finishedTasksModule.restoreTask(task.id).then(() => { + expect(finishedTasksModule.getStatus).toBe("error"); + expect(finishedTasksModule.businessError).toStrictEqual(error); + done(); + }); + expect(finishedTasksModule.getStatus).toBe("pending"); + expect(mockApi.taskControllerRestore).toHaveBeenCalledTimes(1); + })); }); }); diff --git a/src/store/news.unit.ts b/src/store/news.unit.ts index 74de6b57d5..8b26276ae5 100644 --- a/src/store/news.unit.ts +++ b/src/store/news.unit.ts @@ -3,156 +3,162 @@ import * as serverApi from "../serverApi/v3/api"; describe("news store", () => { describe("findNews", () => { - it("should request a list of news", (done) => { - const mockApi = { - newsControllerFindAll: vi.fn(() => ({ - data: { - data: [{ mockNews: "mock news value" }], - total: 3, - skip: 0, - limit: 10, - }, - })), - }; - vi.spyOn(serverApi, "NewsApiFactory").mockReturnValue( - mockApi as unknown as serverApi.NewsApiInterface - ); - const newsModule = new NewsModule({}); + it("should request a list of news", () => + new Promise((done) => { + const mockApi = { + newsControllerFindAll: vi.fn(() => ({ + data: { + data: [{ mockNews: "mock news value" }], + total: 3, + skip: 0, + limit: 10, + }, + })), + }; + vi.spyOn(serverApi, "NewsApiFactory").mockReturnValue( + mockApi as unknown as serverApi.NewsApiInterface + ); + const newsModule = new NewsModule({}); - newsModule.findNews().then(() => { - expect(newsModule.getNews).toStrictEqual([ - { - mockNews: "mock news value", - }, - ]); - expect(newsModule.getStatus).toBe("completed"); - done(); - }); - expect(newsModule.getStatus).toBe("pending"); - expect(mockApi.newsControllerFindAll).toHaveBeenCalledTimes(1); - }); - it("should handle an error", (done) => { - const error = { status: 418, statusText: "I'm a teapot" }; - const mockApi = { - newsControllerFindAll: vi.fn(() => Promise.reject({ ...error })), - }; - vi.spyOn(serverApi, "NewsApiFactory").mockReturnValue( - mockApi as unknown as serverApi.NewsApiInterface - ); - const newsModule = new NewsModule({}); + newsModule.findNews().then(() => { + expect(newsModule.getNews).toStrictEqual([ + { + mockNews: "mock news value", + }, + ]); + expect(newsModule.getStatus).toBe("completed"); + done(); + }); + expect(newsModule.getStatus).toBe("pending"); + expect(mockApi.newsControllerFindAll).toHaveBeenCalledTimes(1); + })); + it("should handle an error", () => + new Promise((done) => { + const error = { status: 418, statusText: "I'm a teapot" }; + const mockApi = { + newsControllerFindAll: vi.fn(() => Promise.reject({ ...error })), + }; + vi.spyOn(serverApi, "NewsApiFactory").mockReturnValue( + mockApi as unknown as serverApi.NewsApiInterface + ); + const newsModule = new NewsModule({}); - newsModule.findNews().then(() => { - expect(newsModule.getNews).toStrictEqual([]); + newsModule.findNews().then(() => { + expect(newsModule.getNews).toStrictEqual([]); + expect(newsModule.getStatus).toBe("pending"); + expect(newsModule.businessError).toStrictEqual(error); + done(); + }); expect(newsModule.getStatus).toBe("pending"); - expect(newsModule.businessError).toStrictEqual(error); - done(); - }); - expect(newsModule.getStatus).toBe("pending"); - expect(mockApi.newsControllerFindAll).toHaveBeenCalledTimes(1); - }); + expect(mockApi.newsControllerFindAll).toHaveBeenCalledTimes(1); + })); }); describe("fetchNews", () => { - it("should request a single news", (done) => { - const mockApi = { - newsControllerFindOne: vi.fn(() => ({ - data: { mockNews: "mock news value" }, - })), - }; - vi.spyOn(serverApi, "NewsApiFactory").mockReturnValue( - mockApi as unknown as serverApi.NewsApiInterface - ); - const newsModule = new NewsModule({}); - const newsId = "1234"; + it("should request a single news", () => + new Promise((done) => { + const mockApi = { + newsControllerFindOne: vi.fn(() => ({ + data: { mockNews: "mock news value" }, + })), + }; + vi.spyOn(serverApi, "NewsApiFactory").mockReturnValue( + mockApi as unknown as serverApi.NewsApiInterface + ); + const newsModule = new NewsModule({}); + const newsId = "1234"; - newsModule.fetchNews(newsId).then(() => { - expect(newsModule.getCurrentNews).toStrictEqual({ - mockNews: "mock news value", + newsModule.fetchNews(newsId).then(() => { + expect(newsModule.getCurrentNews).toStrictEqual({ + mockNews: "mock news value", + }); + expect(newsModule.getStatus).toBe("completed"); + done(); }); - expect(newsModule.getStatus).toBe("completed"); - done(); - }); - expect(newsModule.getStatus).toBe("pending"); - expect(mockApi.newsControllerFindOne).toHaveBeenLastCalledWith(newsId); - }); - it("should handle an error", (done) => { - const error = { status: 418, statusText: "I'm a teapot" }; - const mockApi = { - newsControllerFindOne: vi.fn(() => Promise.reject({ ...error })), - }; - vi.spyOn(serverApi, "NewsApiFactory").mockReturnValue( - mockApi as unknown as serverApi.NewsApiInterface - ); - const newsModule = new NewsModule({}); - const newsId = "1234"; + expect(newsModule.getStatus).toBe("pending"); + expect(mockApi.newsControllerFindOne).toHaveBeenLastCalledWith(newsId); + })); + it("should handle an error", () => + new Promise((done) => { + const error = { status: 418, statusText: "I'm a teapot" }; + const mockApi = { + newsControllerFindOne: vi.fn(() => Promise.reject({ ...error })), + }; + vi.spyOn(serverApi, "NewsApiFactory").mockReturnValue( + mockApi as unknown as serverApi.NewsApiInterface + ); + const newsModule = new NewsModule({}); + const newsId = "1234"; - newsModule.fetchNews(newsId).then(() => { - expect(newsModule.getNews).toStrictEqual([]); + newsModule.fetchNews(newsId).then(() => { + expect(newsModule.getNews).toStrictEqual([]); + expect(newsModule.getStatus).toBe("pending"); + expect(newsModule.businessError).toStrictEqual(error); + done(); + }); expect(newsModule.getStatus).toBe("pending"); - expect(newsModule.businessError).toStrictEqual(error); - done(); - }); - expect(newsModule.getStatus).toBe("pending"); - expect(mockApi.newsControllerFindOne).toHaveBeenCalledTimes(1); - }); + expect(mockApi.newsControllerFindOne).toHaveBeenCalledTimes(1); + })); }); describe("createNews", () => { - it("should request a single news", (done) => { - const mockApi = { - newsControllerCreate: vi.fn((newsToCreate) => ({ - data: { id: 42, ...newsToCreate }, - })), - }; - vi.spyOn(serverApi, "NewsApiFactory").mockReturnValue( - mockApi as unknown as serverApi.NewsApiInterface - ); - const newsModule = new NewsModule({}); + it("should request a single news", () => + new Promise((done) => { + const mockApi = { + newsControllerCreate: vi.fn((newsToCreate) => ({ + data: { id: 42, ...newsToCreate }, + })), + }; + vi.spyOn(serverApi, "NewsApiFactory").mockReturnValue( + mockApi as unknown as serverApi.NewsApiInterface + ); + const newsModule = new NewsModule({}); - const newsToCreate: serverApi.CreateNewsParams = { - title: "a news title", - content: "a news content", - targetId: "4711", - targetModel: serverApi.CreateNewsParamsTargetModelEnum.Courses, - }; + const newsToCreate: serverApi.CreateNewsParams = { + title: "a news title", + content: "a news content", + targetId: "4711", + targetModel: serverApi.CreateNewsParamsTargetModelEnum.Courses, + }; - newsModule.createNews(newsToCreate).then(() => { - expect(newsModule.getCreatedNews).toStrictEqual({ - id: 42, - ...newsToCreate, + newsModule.createNews(newsToCreate).then(() => { + expect(newsModule.getCreatedNews).toStrictEqual({ + id: 42, + ...newsToCreate, + }); + expect(newsModule.getStatus).toBe("completed"); + done(); }); - expect(newsModule.getStatus).toBe("completed"); - done(); - }); - expect(newsModule.getStatus).toBe("pending"); - expect(mockApi.newsControllerCreate).toHaveBeenLastCalledWith( - newsToCreate - ); - }); - it("should handle an error", (done) => { - const error = { status: 418, statusText: "I'm a teapot" }; - const mockApi = { - newsControllerCreate: vi.fn(() => Promise.reject({ ...error })), - }; - vi.spyOn(serverApi, "NewsApiFactory").mockReturnValue( - mockApi as unknown as serverApi.NewsApiInterface - ); - const newsModule = new NewsModule({}); - const newsToCreate: serverApi.CreateNewsParams = { - title: "a news title", - content: "a news content", - schoolId: "1234", - targetId: "4711", - // @ts-expect-error intended - targetModel: null, - }; + expect(newsModule.getStatus).toBe("pending"); + expect(mockApi.newsControllerCreate).toHaveBeenLastCalledWith( + newsToCreate + ); + })); + it("should handle an error", () => + new Promise((done) => { + const error = { status: 418, statusText: "I'm a teapot" }; + const mockApi = { + newsControllerCreate: vi.fn(() => Promise.reject({ ...error })), + }; + vi.spyOn(serverApi, "NewsApiFactory").mockReturnValue( + mockApi as unknown as serverApi.NewsApiInterface + ); + const newsModule = new NewsModule({}); + const newsToCreate: serverApi.CreateNewsParams = { + title: "a news title", + content: "a news content", + schoolId: "1234", + targetId: "4711", + // @ts-expect-error intended + targetModel: null, + }; - newsModule.createNews(newsToCreate).then(() => { - expect(newsModule.getNews).toStrictEqual([]); + newsModule.createNews(newsToCreate).then(() => { + expect(newsModule.getNews).toStrictEqual([]); + expect(newsModule.getStatus).toBe("pending"); + expect(newsModule.businessError).toStrictEqual(error); + done(); + }); expect(newsModule.getStatus).toBe("pending"); - expect(newsModule.businessError).toStrictEqual(error); - done(); - }); - expect(newsModule.getStatus).toBe("pending"); - expect(mockApi.newsControllerCreate).toHaveBeenCalledTimes(1); - }); + expect(mockApi.newsControllerCreate).toHaveBeenCalledTimes(1); + })); }); }); diff --git a/src/store/schools.unit.ts b/src/store/schools.unit.ts index b707f5eeff..2445192e9d 100644 --- a/src/store/schools.unit.ts +++ b/src/store/schools.unit.ts @@ -323,13 +323,16 @@ describe("schools module", () => { setSchoolSpy = vi.spyOn(schoolsModule, "setSchool"); }); - afterEach((done) => { - done(); - spy.mockRestore(); - setLoadingSpy.mockRestore(); - setErrorSpy.mockRestore(); - setSchoolSpy.mockRestore(); - }); + afterEach( + () => + new Promise((done) => { + done(); + spy.mockRestore(); + setLoadingSpy.mockRestore(); + setErrorSpy.mockRestore(); + setSchoolSpy.mockRestore(); + }) + ); it("should not call backend if inMaintenance is false", async () => { schoolsModule.setSchool({ @@ -416,13 +419,16 @@ describe("schools module", () => { setSchoolSpy = vi.spyOn(schoolsModule, "setSchool"); }); - afterEach((done) => { - done(); - spy.mockRestore(); - setLoadingSpy.mockRestore(); - setErrorSpy.mockRestore(); - setSchoolSpy.mockRestore(); - }); + afterEach( + () => + new Promise((done) => { + done(); + spy.mockRestore(); + setLoadingSpy.mockRestore(); + setErrorSpy.mockRestore(); + setSchoolSpy.mockRestore(); + }) + ); it("should not call backend if inUserMigration flag is not true", async () => { schoolsModule.setSchool({ diff --git a/src/store/tasks.unit.ts b/src/store/tasks.unit.ts index ae25781810..f471242a6c 100644 --- a/src/store/tasks.unit.ts +++ b/src/store/tasks.unit.ts @@ -35,104 +35,107 @@ initializeAxios({} as AxiosInstance); describe("task store", () => { describe("actions", () => { describe("fetchAllTasks", () => { - it("should request a list of tasks", (done) => { - const mockApi = { - taskControllerFindAll: vi.fn(() => ({ - data: { - data: [{ mockTask: "mock task value" }], - total: 3, - skip: 0, - limit: 10, - }, - })), - }; - const spy = vi - .spyOn(serverApi, "TaskApiFactory") - .mockReturnValue(mockApi as unknown as serverApi.TaskApiInterface); - const tasksModule = new TasksModule({}); - - tasksModule.fetchAllTasks().then(() => { - expect(tasksModule.getTasks).toStrictEqual([ - { - mockTask: "mock task value", - }, - ]); - expect(tasksModule.getStatus).toBe("completed"); - expect(mockApi.taskControllerFindAll).toHaveBeenCalledTimes(1); - done(); - }); - expect(tasksModule.getStatus).toBe("pending"); - - spy.mockRestore(); - }); - - it("should fetch all pages", (done) => { - const mockApi = { - taskControllerFindAll: vi - .fn() - .mockReturnValueOnce({ + it("should request a list of tasks", () => + new Promise((done) => { + const mockApi = { + taskControllerFindAll: vi.fn(() => ({ data: { - data: [{ mockTask: "mock task #1" }], - total: 26, + data: [{ mockTask: "mock task value" }], + total: 3, skip: 0, limit: 10, }, - }) - .mockReturnValueOnce({ - data: { - data: [{ mockTask: "mock task #2" }], - total: 26, - skip: 10, - limit: 10, + })), + }; + const spy = vi + .spyOn(serverApi, "TaskApiFactory") + .mockReturnValue(mockApi as unknown as serverApi.TaskApiInterface); + const tasksModule = new TasksModule({}); + + tasksModule.fetchAllTasks().then(() => { + expect(tasksModule.getTasks).toStrictEqual([ + { + mockTask: "mock task value", }, - }) - .mockReturnValueOnce({ - data: { - data: [{ mockTask: "mock task #3" }], - total: 26, - skip: 20, - limit: 10, - }, - }), - }; - - vi.spyOn(serverApi, "TaskApiFactory").mockReturnValue( - mockApi as unknown as serverApi.TaskApiInterface - ); - const tasksModule = new TasksModule({}); - - tasksModule.fetchAllTasks().then(() => { - expect(tasksModule.getTasks).toStrictEqual([ - { mockTask: "mock task #1" }, - { mockTask: "mock task #2" }, - { mockTask: "mock task #3" }, - ]); - expect(tasksModule.getStatus).toBe("completed"); - expect(mockApi.taskControllerFindAll).toHaveBeenCalledTimes(3); - done(); - }); - expect(tasksModule.getStatus).toBe("pending"); - }); - - it("should handle an error", (done) => { - const error = { status: 418, statusText: "I'm a teapot" }; - const mockApi = { - taskControllerFindAll: vi.fn(() => Promise.reject({ ...error })), - }; - vi.spyOn(serverApi, "TaskApiFactory").mockReturnValue( - mockApi as unknown as serverApi.TaskApiInterface - ); - const tasksModule = new TasksModule({}); - - tasksModule.fetchAllTasks().then(() => { - expect(tasksModule.getTasks).toStrictEqual([]); - expect(tasksModule.getStatus).toBe("error"); - expect(tasksModule.businessError).toStrictEqual(error); - done(); - }); - expect(tasksModule.getStatus).toBe("pending"); - expect(mockApi.taskControllerFindAll).toHaveBeenCalledTimes(1); - }); + ]); + expect(tasksModule.getStatus).toBe("completed"); + expect(mockApi.taskControllerFindAll).toHaveBeenCalledTimes(1); + done(); + }); + expect(tasksModule.getStatus).toBe("pending"); + + spy.mockRestore(); + })); + + it("should fetch all pages", () => + new Promise((done) => { + const mockApi = { + taskControllerFindAll: vi + .fn() + .mockReturnValueOnce({ + data: { + data: [{ mockTask: "mock task #1" }], + total: 26, + skip: 0, + limit: 10, + }, + }) + .mockReturnValueOnce({ + data: { + data: [{ mockTask: "mock task #2" }], + total: 26, + skip: 10, + limit: 10, + }, + }) + .mockReturnValueOnce({ + data: { + data: [{ mockTask: "mock task #3" }], + total: 26, + skip: 20, + limit: 10, + }, + }), + }; + + vi.spyOn(serverApi, "TaskApiFactory").mockReturnValue( + mockApi as unknown as serverApi.TaskApiInterface + ); + const tasksModule = new TasksModule({}); + + tasksModule.fetchAllTasks().then(() => { + expect(tasksModule.getTasks).toStrictEqual([ + { mockTask: "mock task #1" }, + { mockTask: "mock task #2" }, + { mockTask: "mock task #3" }, + ]); + expect(tasksModule.getStatus).toBe("completed"); + expect(mockApi.taskControllerFindAll).toHaveBeenCalledTimes(3); + done(); + }); + expect(tasksModule.getStatus).toBe("pending"); + })); + + it("should handle an error", () => + new Promise((done) => { + const error = { status: 418, statusText: "I'm a teapot" }; + const mockApi = { + taskControllerFindAll: vi.fn(() => Promise.reject({ ...error })), + }; + vi.spyOn(serverApi, "TaskApiFactory").mockReturnValue( + mockApi as unknown as serverApi.TaskApiInterface + ); + const tasksModule = new TasksModule({}); + + tasksModule.fetchAllTasks().then(() => { + expect(tasksModule.getTasks).toStrictEqual([]); + expect(tasksModule.getStatus).toBe("error"); + expect(tasksModule.businessError).toStrictEqual(error); + done(); + }); + expect(tasksModule.getStatus).toBe("pending"); + expect(mockApi.taskControllerFindAll).toHaveBeenCalledTimes(1); + })); }); describe("revertPublishedTask", () => { @@ -142,57 +145,59 @@ describe("task store", () => { }); }); - it("should call api to revert a published task", (done) => { - const mockApi = { - taskControllerRevertPublished: vi.fn(), - }; - const spy = vi - .spyOn(serverApi, "TaskApiFactory") - .mockReturnValue(mockApi as unknown as serverApi.TaskApiInterface); - - const tasksModule = new TasksModule({}); - const tasks = taskFactory.buildList(3); - tasksModule.setTasks(tasks); - const fetchAllTasksSpy = vi.spyOn(tasksModule, "fetchAllTasks"); - - tasksModule.revertPublishedTask(tasks[0].id).then(() => { - expect(tasksModule.getStatus).toBe("completed"); - expect(mockApi.taskControllerRevertPublished).toHaveBeenCalledTimes( - 1 - ); - expect(fetchAllTasksSpy).toHaveBeenCalledTimes(1); - done(); - }); - expect(tasksModule.getStatus).toBe("pending"); - - spy.mockRestore(); - }); + it("should call api to revert a published task", () => + new Promise((done) => { + const mockApi = { + taskControllerRevertPublished: vi.fn(), + }; + const spy = vi + .spyOn(serverApi, "TaskApiFactory") + .mockReturnValue(mockApi as unknown as serverApi.TaskApiInterface); + + const tasksModule = new TasksModule({}); + const tasks = taskFactory.buildList(3); + tasksModule.setTasks(tasks); + const fetchAllTasksSpy = vi.spyOn(tasksModule, "fetchAllTasks"); + + tasksModule.revertPublishedTask(tasks[0].id).then(() => { + expect(tasksModule.getStatus).toBe("completed"); + expect(mockApi.taskControllerRevertPublished).toHaveBeenCalledTimes( + 1 + ); + expect(fetchAllTasksSpy).toHaveBeenCalledTimes(1); + done(); + }); + expect(tasksModule.getStatus).toBe("pending"); + + spy.mockRestore(); + })); }); // TODO - implement when we figured out how to correctly mock stores describe("finishTask", () => { it.todo("should call finish task api and refetch all tasks"); - it("should handle an error", (done) => { - const task = taskFactory.build(); - const error = { status: 418, statusText: "I'm a teapot" }; - const mockApi = { - taskControllerFinish: vi.fn(() => Promise.reject({ ...error })), - }; - - vi.spyOn(serverApi, "TaskApiFactory").mockReturnValue( - mockApi as unknown as serverApi.TaskApiInterface - ); - const tasksModule = new TasksModule({}); + it("should handle an error", () => + new Promise((done) => { + const task = taskFactory.build(); + const error = { status: 418, statusText: "I'm a teapot" }; + const mockApi = { + taskControllerFinish: vi.fn(() => Promise.reject({ ...error })), + }; - tasksModule.finishTask(task.id).then(() => { - expect(tasksModule.getStatus).toBe("error"); - expect(tasksModule.businessError).toStrictEqual(error); - done(); - }); - expect(tasksModule.getStatus).toBe("pending"); - expect(mockApi.taskControllerFinish).toHaveBeenCalledTimes(1); - }); + vi.spyOn(serverApi, "TaskApiFactory").mockReturnValue( + mockApi as unknown as serverApi.TaskApiInterface + ); + const tasksModule = new TasksModule({}); + + tasksModule.finishTask(task.id).then(() => { + expect(tasksModule.getStatus).toBe("error"); + expect(tasksModule.businessError).toStrictEqual(error); + done(); + }); + expect(tasksModule.getStatus).toBe("pending"); + expect(mockApi.taskControllerFinish).toHaveBeenCalledTimes(1); + })); }); describe("deleteTask", () => { @@ -202,29 +207,30 @@ describe("task store", () => { }); }); - it("should call api to delete a task", (done) => { - const mockApi = { - taskControllerDelete: vi.fn(), - }; - const spy = vi - .spyOn(serverApi, "TaskApiFactory") - .mockReturnValue(mockApi as unknown as serverApi.TaskApiInterface); - - const tasksModule = new TasksModule({}); - const tasks = taskFactory.buildList(3); - tasksModule.setTasks(tasks); - const fetchAllTasksSpy = vi.spyOn(tasksModule, "fetchAllTasks"); - - tasksModule.deleteTask(tasks[0].id).then(() => { - expect(tasksModule.getStatus).toBe("completed"); - expect(mockApi.taskControllerDelete).toHaveBeenCalledTimes(1); - expect(fetchAllTasksSpy).toHaveBeenCalledTimes(1); - done(); - }); - expect(tasksModule.getStatus).toBe("pending"); - - spy.mockRestore(); - }); + it("should call api to delete a task", () => + new Promise((done) => { + const mockApi = { + taskControllerDelete: vi.fn(), + }; + const spy = vi + .spyOn(serverApi, "TaskApiFactory") + .mockReturnValue(mockApi as unknown as serverApi.TaskApiInterface); + + const tasksModule = new TasksModule({}); + const tasks = taskFactory.buildList(3); + tasksModule.setTasks(tasks); + const fetchAllTasksSpy = vi.spyOn(tasksModule, "fetchAllTasks"); + + tasksModule.deleteTask(tasks[0].id).then(() => { + expect(tasksModule.getStatus).toBe("completed"); + expect(mockApi.taskControllerDelete).toHaveBeenCalledTimes(1); + expect(fetchAllTasksSpy).toHaveBeenCalledTimes(1); + done(); + }); + expect(tasksModule.getStatus).toBe("pending"); + + spy.mockRestore(); + })); }); }); From 6c83399ea9657f12dfe26a0566c79758bb75b635 Mon Sep 17 00:00:00 2001 From: Odalys Adam Date: Tue, 22 Oct 2024 00:37:49 +0200 Subject: [PATCH 18/18] fix vi not defined error --- .eslintrc.js | 3 +++ tsconfig.json | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.eslintrc.js b/.eslintrc.js index d3a4534888..7cf5cd388d 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -3,6 +3,9 @@ module.exports = { env: { node: true, }, + globals: { + vi: true, + }, extends: [ "plugin:vue/vue3-essential", "eslint:recommended", diff --git a/tsconfig.json b/tsconfig.json index e1596c8b5c..381afc218f 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -15,7 +15,7 @@ "sourceMap": true, "experimentalDecorators": true, "baseUrl": ".", - "types": ["webpack-env", "jest"], + "types": ["webpack-env", "jest", "vitest/globals"], "paths": { "@data-board": ["src/modules/data/board"], "@data-external-tool": ["src/modules/data/external-tool"],