diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4683be1..ce29f19 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,7 +20,7 @@ jobs: with: node-version: '16' - run: npm install - - run: npm test + - run: npm test -- --run --no-cache node18: name: Node 18 runs-on: ubuntu-22.04 @@ -32,7 +32,7 @@ jobs: with: node-version: '18' - run: npm install - - run: npm test + - run: npm test -- --run --no-cache node20: name: Node 20 runs-on: ubuntu-22.04 @@ -46,7 +46,7 @@ jobs: - run: npm install - run: npm run lint - run: npm run cs - - run: npm test -- --coverage --no-cache + - run: npm test -- --run --coverage --no-cache - run: npm run infection env: STRYKER_DASHBOARD_API_KEY: ${{ secrets.STRYKER_DASHBOARD_API_KEY }} diff --git a/README.md b/README.md index 9e1e7ac..3394ff0 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ Mongodb helper(s). ## Requirements * node: 16 - * [mongodb][2]: ^6.0.0 + * [mongodb][2]: ^6.7.0 ## Installation diff --git a/jest.config.cjs b/jest.config.cjs deleted file mode 100644 index 581a3a6..0000000 --- a/jest.config.cjs +++ /dev/null @@ -1,15 +0,0 @@ -/* eslint-disable no-undef */ -/* eslint-disable functional/immutable-data */ -module.exports = { - 'preset': 'ts-jest', - 'testEnvironment': 'node', - 'collectCoverageFrom': [ - 'src/**/*.ts' - ], - 'coverageThreshold': { - 'global': { - 'lines': 100 - } - }, - prettierPath: require.resolve('prettier-2'), -}; diff --git a/package.json b/package.json index 5d1784c..3242e15 100644 --- a/package.json +++ b/package.json @@ -13,13 +13,13 @@ "repository": "chubbyts/chubbyts-mongodb", "scripts": { "build": "node ./build.js", - "cs-fix": "./node_modules/prettier/bin/prettier.cjs --write src tests", - "cs": "./node_modules/prettier/bin/prettier.cjs --check src tests", + "cs-fix": "prettier --write src tests", + "cs": "prettier --check src tests", "infection": "stryker run", "lint-fix": "eslint src tests --fix", "lint": "eslint src tests", "prepare": "npm run build", - "test": "jest" + "test": "vitest" }, "prettier": { "printWidth": 120, @@ -42,21 +42,19 @@ "node": ">=16" }, "dependencies": { - "mongodb": "^6.0.0" + "mongodb": "^6.7.0" }, "devDependencies": { "@chubbyts/chubbyts-eslint": "^2.0.3", - "@chubbyts/chubbyts-function-mock": "^1.4.1", - "@chubbyts/chubbyts-packaging": "^2.0.6", + "@chubbyts/chubbyts-function-mock": "^1.4.2", + "@chubbyts/chubbyts-packaging": "^2.0.7", "@stryker-mutator/core": "^8.2.6", - "@stryker-mutator/jest-runner": "^8.2.6", - "@types/jest": "^29.5.12", - "@types/node": "^20.11.30", - "jest": "^29.7.0", - "prettier": "^3.2.5", - "prettier-2": "npm:prettier@^2.8.8", - "ts-jest": "^29.1.2", - "typescript": "^5.4.3" + "@stryker-mutator/vitest-runner": "^8.2.6", + "@types/node": "^20.14.2", + "@vitest/coverage-v8": "^1.6.0", + "prettier": "^3.3.2", + "typescript": "^5.4.5", + "vitest": "^1.6.0" }, "publishConfig": { "access": "public" diff --git a/stryker.conf.json b/stryker.conf.json index dd79970..9a92983 100644 --- a/stryker.conf.json +++ b/stryker.conf.json @@ -1,6 +1,9 @@ { "$schema": "./node_modules/@stryker-mutator/core/schema/stryker-schema.json", - "testRunner": "jest", + "testRunner": "vitest", + "vitest": { + "configFile": "vitest.config.ts" + }, "coverageAnalysis": "off", "reporters": [ "clear-text", diff --git a/tests/mongo.test.ts b/tests/mongo.test.ts index d19ab72..93d9bbc 100644 --- a/tests/mongo.test.ts +++ b/tests/mongo.test.ts @@ -1,6 +1,7 @@ import type { Collection, CreateIndexesOptions, Db, IndexSpecification, MongoClient } from 'mongodb'; import { MongoServerError } from 'mongodb'; import { useObjectMock } from '@chubbyts/chubbyts-function-mock/dist/object-mock'; +import { describe, test, expect } from 'vitest'; import type { IndexesByCollection } from '../src/mongo'; import { upsertIndexes } from '../src/mongo'; @@ -158,7 +159,7 @@ describe('upsertIndexes', () => { }, ], }); - fail('Expect error'); + throw new Error('Expect error'); } catch (e) { expect(e).toMatchInlineSnapshot('[Error: unknown error]'); } diff --git a/vitest.config.ts b/vitest.config.ts new file mode 100644 index 0000000..7c0302d --- /dev/null +++ b/vitest.config.ts @@ -0,0 +1,20 @@ + +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + globals: true, + environment: 'node', + include: ['tests/**/*.test.*'], + coverage: { + all: true, + clean: true, + reporter: ['clover', ['html', { subdir: 'html' }], 'json', 'lcovonly', 'text'], + provider: 'v8', + thresholds: { + lines: 100, + }, + include: ['src/**/*.ts'], + }, + }, +});