diff --git a/api.planx.uk/.eslintrc b/api.planx.uk/.eslintrc index 2118b3683f..b1869d8a06 100644 --- a/api.planx.uk/.eslintrc +++ b/api.planx.uk/.eslintrc @@ -5,7 +5,8 @@ "extends": [ "eslint:recommended", "plugin:@typescript-eslint/recommended", - "prettier" + "prettier", + "plugin:@vitest/legacy-recommended" ], "rules": { "@typescript-eslint/no-explicit-any": "warn", @@ -17,7 +18,19 @@ } ], "@typescript-eslint/no-non-null-assertion": "off", - "no-nested-ternary": "error" + "no-nested-ternary": "error", + "@vitest/expect-expect": [ + "error", + { + "assertFunctionNames": [ + "expect", + // Allow Supertest expect() calls + "get.expect", + "post.expect", + "supertest.**.expect" + ] + } + ] }, "globals": { "require": "readonly", diff --git a/api.planx.uk/package.json b/api.planx.uk/package.json index 4e05261c3b..98fdea9e8b 100644 --- a/api.planx.uk/package.json +++ b/api.planx.uk/package.json @@ -101,6 +101,7 @@ "@typescript-eslint/eslint-plugin": "^5.62.0", "@typescript-eslint/parser": "^5.62.0", "@vitest/coverage-istanbul": "^2.0.5", + "@vitest/eslint-plugin": "^1.1.0", "@vitest/ui": "^2.0.5", "dotenv": "^16.4.5", "eslint": "^8.57.0", diff --git a/api.planx.uk/pnpm-lock.yaml b/api.planx.uk/pnpm-lock.yaml index 70288a2573..07e67b9d52 100644 --- a/api.planx.uk/pnpm-lock.yaml +++ b/api.planx.uk/pnpm-lock.yaml @@ -222,6 +222,9 @@ devDependencies: '@vitest/coverage-istanbul': specifier: ^2.0.5 version: 2.0.5(vitest@2.0.5) + '@vitest/eslint-plugin': + specifier: ^1.1.0 + version: 1.1.0(eslint@8.57.0)(typescript@5.5.2)(vitest@2.0.5) '@vitest/ui': specifier: ^2.0.5 version: 2.0.5(vitest@2.0.5) @@ -1962,6 +1965,26 @@ packages: - supports-color dev: true + /@vitest/eslint-plugin@1.1.0(eslint@8.57.0)(typescript@5.5.2)(vitest@2.0.5): + resolution: {integrity: sha512-Ur80Y27Wbw8gFHJ3cv6vypcjXmrx6QHfw+q435h6Q2L+tf+h4Xf5pJTCL4YU/Jps9EVeggQxS85OcUZU7sdXRw==} + peerDependencies: + '@typescript-eslint/utils': '>= 8.0' + eslint: '>= 8.57.0' + typescript: '>= 5.0.0' + vitest: '*' + peerDependenciesMeta: + '@typescript-eslint/utils': + optional: true + typescript: + optional: true + vitest: + optional: true + dependencies: + eslint: 8.57.0 + typescript: 5.5.2 + vitest: 2.0.5(@types/node@18.19.13)(@vitest/ui@2.0.5)(jsdom@24.1.0) + dev: true + /@vitest/expect@2.0.5: resolution: {integrity: sha512-yHZtwuP7JZivj65Gxoi8upUN2OzHTi3zVfjwdpu2WrvCZPLwsJ2Ey5ILIPccoW23dd/zQBlJ4/dhi7DWNyXCpA==} dependencies: