@slango.configs/vitest 2.0.67 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -0
- package/dist/presets/browser.d.ts +4 -0
- package/dist/presets/browser.d.ts.map +1 -0
- package/dist/presets/browser.js +15 -0
- package/dist/presets/browser.js.map +1 -0
- package/dist/presets/default.d.ts +4 -0
- package/dist/presets/default.d.ts.map +1 -0
- package/dist/presets/default.js +14 -0
- package/dist/presets/default.js.map +1 -0
- package/dist/presets/nestjs.d.ts +4 -0
- package/dist/presets/nestjs.d.ts.map +1 -0
- package/dist/presets/nestjs.js +15 -0
- package/dist/presets/nestjs.js.map +1 -0
- package/dist/presets/react.d.ts +4 -0
- package/dist/presets/react.d.ts.map +1 -0
- package/dist/presets/react.js +17 -0
- package/dist/presets/react.js.map +1 -0
- package/package.json +14 -6
- package/src/helpers/mongooseTestEnvironment.ts +0 -54
- package/src/presets/browser.js +0 -17
- package/src/presets/default.js +0 -15
- package/src/presets/nestjs.js +0 -16
- package/src/presets/react.js +0 -18
package/README.md
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
1
1
|
#  Slango Vitest Configs (@slango.configs/vitest)
|
|
2
2
|
|
|
3
3
|
This package exposes vitest configurations for easy setup.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```ts
|
|
8
|
+
// vitest.config.ts (or vitest.config.js)
|
|
9
|
+
export { default } from '@slango.configs/vitest/default';
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
Presets: `default`, `browser` (jsdom), `react` (jsdom, globals, React plugin) and `nestjs` (SWC for decorators). They
|
|
13
|
+
are written in TypeScript and published with generated type declarations, so the config can be TypeScript too. Import
|
|
14
|
+
without the `.js` extension: the package's exports map adds it.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/presets/browser.ts"],"names":[],"mappings":"AACA,OAAO,EAAgC,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAElF,QAAA,MAAM,mBAAmB,EAAE,cAWzB,CAAC;eAEY,mBAAmB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import cv8 from '@vitest/coverage-v8';
|
|
2
|
+
import { configDefaults, defineConfig } from 'vitest/config';
|
|
3
|
+
const vitestBrowserConfig = defineConfig({
|
|
4
|
+
plugins: [cv8.getProvider()],
|
|
5
|
+
test: {
|
|
6
|
+
environment: 'jsdom',
|
|
7
|
+
coverage: {
|
|
8
|
+
...configDefaults.coverage,
|
|
9
|
+
exclude: [...(configDefaults.coverage.exclude ?? []), '**/lint-staged.config.js'],
|
|
10
|
+
},
|
|
11
|
+
isolate: true,
|
|
12
|
+
},
|
|
13
|
+
});
|
|
14
|
+
export default vitestBrowserConfig;
|
|
15
|
+
//# sourceMappingURL=browser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/presets/browser.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,qBAAqB,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAuB,MAAM,eAAe,CAAC;AAElF,MAAM,mBAAmB,GAAmB,YAAY,CAAC;IACvD,OAAO,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;IAE5B,IAAI,EAAE;QACJ,WAAW,EAAE,OAAO;QACpB,QAAQ,EAAE;YACR,GAAG,cAAc,CAAC,QAAQ;YAC1B,OAAO,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,0BAA0B,CAAC;SAClF;QACD,OAAO,EAAE,IAAI;KACd;CACF,CAAC,CAAC;AAEH,eAAe,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../src/presets/default.ts"],"names":[],"mappings":"AACA,OAAO,EAAgC,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAElF,QAAA,MAAM,YAAY,EAAE,cASlB,CAAC;eAEY,YAAY"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import cv8 from '@vitest/coverage-v8';
|
|
2
|
+
import { configDefaults, defineConfig } from 'vitest/config';
|
|
3
|
+
const vitestConfig = defineConfig({
|
|
4
|
+
plugins: [cv8.getProvider()],
|
|
5
|
+
test: {
|
|
6
|
+
coverage: {
|
|
7
|
+
...configDefaults.coverage,
|
|
8
|
+
exclude: [...(configDefaults.coverage.exclude ?? []), '**/lint-staged.config.js'],
|
|
9
|
+
},
|
|
10
|
+
isolate: true,
|
|
11
|
+
},
|
|
12
|
+
});
|
|
13
|
+
export default vitestConfig;
|
|
14
|
+
//# sourceMappingURL=default.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default.js","sourceRoot":"","sources":["../../src/presets/default.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,qBAAqB,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAuB,MAAM,eAAe,CAAC;AAElF,MAAM,YAAY,GAAmB,YAAY,CAAC;IAChD,OAAO,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;IAC5B,IAAI,EAAE;QACJ,QAAQ,EAAE;YACR,GAAG,cAAc,CAAC,QAAQ;YAC1B,OAAO,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,0BAA0B,CAAC;SAClF;QACD,OAAO,EAAE,IAAI;KACd;CACF,CAAC,CAAC;AAEH,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nestjs.d.ts","sourceRoot":"","sources":["../../src/presets/nestjs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgC,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAElF,QAAA,MAAM,kBAAkB,EAAE,cASxB,CAAC;eAEY,kBAAkB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import cv8 from '@vitest/coverage-v8';
|
|
2
|
+
import swc from 'unplugin-swc';
|
|
3
|
+
import { configDefaults, defineConfig } from 'vitest/config';
|
|
4
|
+
const vitestNestJsConfig = defineConfig({
|
|
5
|
+
plugins: [cv8.getProvider(), swc.vite()],
|
|
6
|
+
test: {
|
|
7
|
+
coverage: {
|
|
8
|
+
...configDefaults.coverage,
|
|
9
|
+
exclude: [...(configDefaults.coverage.exclude ?? []), '**/lint-staged.config.js'],
|
|
10
|
+
},
|
|
11
|
+
isolate: true,
|
|
12
|
+
},
|
|
13
|
+
});
|
|
14
|
+
export default vitestNestJsConfig;
|
|
15
|
+
//# sourceMappingURL=nestjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nestjs.js","sourceRoot":"","sources":["../../src/presets/nestjs.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,qBAAqB,CAAC;AACtC,OAAO,GAAG,MAAM,cAAc,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,YAAY,EAAuB,MAAM,eAAe,CAAC;AAElF,MAAM,kBAAkB,GAAmB,YAAY,CAAC;IACtD,OAAO,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;IACxC,IAAI,EAAE;QACJ,QAAQ,EAAE;YACR,GAAG,cAAc,CAAC,QAAQ;YAC1B,OAAO,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,0BAA0B,CAAC;SAClF;QACD,OAAO,EAAE,IAAI;KACd;CACF,CAAC,CAAC;AAEH,eAAe,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../src/presets/react.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgC,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAElF,QAAA,MAAM,iBAAiB,EAAE,cAWvB,CAAC;eAEY,iBAAiB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import react from '@vitejs/plugin-react';
|
|
2
|
+
import cv8 from '@vitest/coverage-v8';
|
|
3
|
+
import { configDefaults, defineConfig } from 'vitest/config';
|
|
4
|
+
const vitestReactConfig = defineConfig({
|
|
5
|
+
plugins: [cv8.getProvider(), react()],
|
|
6
|
+
test: {
|
|
7
|
+
environment: 'jsdom',
|
|
8
|
+
globals: true,
|
|
9
|
+
coverage: {
|
|
10
|
+
...configDefaults.coverage,
|
|
11
|
+
exclude: [...(configDefaults.coverage.exclude ?? []), '**/lint-staged.config.js'],
|
|
12
|
+
},
|
|
13
|
+
isolate: true,
|
|
14
|
+
},
|
|
15
|
+
});
|
|
16
|
+
export default vitestReactConfig;
|
|
17
|
+
//# sourceMappingURL=react.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react.js","sourceRoot":"","sources":["../../src/presets/react.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,sBAAsB,CAAC;AACzC,OAAO,GAAG,MAAM,qBAAqB,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAuB,MAAM,eAAe,CAAC;AAElF,MAAM,iBAAiB,GAAmB,YAAY,CAAC;IACrD,OAAO,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC;IACrC,IAAI,EAAE;QACJ,WAAW,EAAE,OAAO;QACpB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE;YACR,GAAG,cAAc,CAAC,QAAQ;YAC1B,OAAO,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,0BAA0B,CAAC;SAClF;QACD,OAAO,EAAE,IAAI;KACd;CACF,CAAC,CAAC;AAEH,eAAe,iBAAiB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@slango.configs/vitest",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Slango vitest configs",
|
|
6
6
|
"repository": {
|
|
@@ -10,10 +10,10 @@
|
|
|
10
10
|
},
|
|
11
11
|
"type": "module",
|
|
12
12
|
"files": [
|
|
13
|
-
"
|
|
13
|
+
"dist"
|
|
14
14
|
],
|
|
15
15
|
"exports": {
|
|
16
|
-
"./*": "./
|
|
16
|
+
"./*": "./dist/presets/*.js"
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"@swc/core": "1.16.13",
|
|
@@ -27,16 +27,24 @@
|
|
|
27
27
|
"peerDependencies": {
|
|
28
28
|
"@vitest/coverage-v8": "^5.0.3",
|
|
29
29
|
"@vitest/ui": "^5.0.3",
|
|
30
|
-
"vite": "^8.
|
|
30
|
+
"vite": "^8.3.3",
|
|
31
31
|
"vitest": "^5.0.3"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@slango.configs/oxlint": "0.1.12",
|
|
35
|
+
"@slango.configs/typescript": "3.0.0",
|
|
36
|
+
"@types/node": "26.6.4",
|
|
37
|
+
"@vitest/coverage-v8": "5.0.3",
|
|
35
38
|
"oxlint": "1.87.0",
|
|
39
|
+
"oxlint-tsgolint": "7.0.2003",
|
|
40
|
+
"typescript": "7.0.2",
|
|
36
41
|
"vitest": "5.0.3"
|
|
37
42
|
},
|
|
38
43
|
"scripts": {
|
|
39
|
-
"
|
|
40
|
-
"
|
|
44
|
+
"build": "tsc -p tsconfig.build.json",
|
|
45
|
+
"build:watch": "tsc -p tsconfig.build.json --watch",
|
|
46
|
+
"build:check": "tsc --noEmit",
|
|
47
|
+
"lint": "oxlint --type-aware --max-warnings 0 .",
|
|
48
|
+
"lint:fix": "oxlint --type-aware --fix --max-warnings 0 ."
|
|
41
49
|
}
|
|
42
50
|
}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { MongoMemoryServer } from 'mongodb-memory-server';
|
|
2
|
-
import mongoose from 'mongoose';
|
|
3
|
-
import { afterAll, afterEach, beforeAll } from 'vitest';
|
|
4
|
-
|
|
5
|
-
const ConnectionStates = mongoose.ConnectionStates;
|
|
6
|
-
|
|
7
|
-
type SetupMongoTestEnvironmentOptions = {
|
|
8
|
-
preserveCollections?: string[];
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
export function setupMongoTestEnvironment({
|
|
12
|
-
preserveCollections = [],
|
|
13
|
-
}: SetupMongoTestEnvironmentOptions = {}) {
|
|
14
|
-
let mongoServer: MongoMemoryServer;
|
|
15
|
-
|
|
16
|
-
beforeAll(async () => {
|
|
17
|
-
mongoServer = await MongoMemoryServer.create();
|
|
18
|
-
const uri = mongoServer.getUri();
|
|
19
|
-
process.env.MONGO_URI = uri;
|
|
20
|
-
await mongoose.connect(uri, { dbName: 'test-db' });
|
|
21
|
-
|
|
22
|
-
await waitForDatabaseConnection();
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
afterAll(async () => {
|
|
26
|
-
await mongoose.disconnect();
|
|
27
|
-
await mongoServer.stop();
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
afterEach(async () => {
|
|
31
|
-
if (mongoose.connection.db) {
|
|
32
|
-
const collections = await mongoose.connection.db.collections();
|
|
33
|
-
for (const collection of collections) {
|
|
34
|
-
if (!preserveCollections.includes(collection.collectionName)) {
|
|
35
|
-
await collection.deleteMany({});
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
async function waitForDatabaseConnection(maxRetries = 5, interval = 1000) {
|
|
43
|
-
let retries = 0;
|
|
44
|
-
|
|
45
|
-
while (mongoose.connection.readyState !== ConnectionStates.connected && retries < maxRetries) {
|
|
46
|
-
await new Promise((resolve) => setTimeout(resolve, interval));
|
|
47
|
-
retries++;
|
|
48
|
-
console.log(`Retrying database connection (${retries}/${maxRetries})...`);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
if (mongoose.connection.readyState !== ConnectionStates.connected) {
|
|
52
|
-
throw new Error('Failed to connect to the database within the allowed retries.');
|
|
53
|
-
}
|
|
54
|
-
}
|
package/src/presets/browser.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import cv8 from '@vitest/coverage-v8';
|
|
2
|
-
import { configDefaults, defineConfig } from 'vitest/config';
|
|
3
|
-
|
|
4
|
-
const vitestBrowserConfig = defineConfig({
|
|
5
|
-
plugins: [cv8.getProvider()],
|
|
6
|
-
|
|
7
|
-
test: {
|
|
8
|
-
environment: 'jsdom',
|
|
9
|
-
coverage: {
|
|
10
|
-
...configDefaults.coverage,
|
|
11
|
-
exclude: [...configDefaults.coverage.exclude, '**/lint-staged.config.js'],
|
|
12
|
-
},
|
|
13
|
-
isolate: true,
|
|
14
|
-
},
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
export default vitestBrowserConfig;
|
package/src/presets/default.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import cv8 from '@vitest/coverage-v8';
|
|
2
|
-
import { configDefaults, defineConfig } from 'vitest/config';
|
|
3
|
-
|
|
4
|
-
const vitestConfig = defineConfig({
|
|
5
|
-
plugins: [cv8.getProvider()],
|
|
6
|
-
test: {
|
|
7
|
-
coverage: {
|
|
8
|
-
...configDefaults.coverage,
|
|
9
|
-
exclude: [...configDefaults.coverage.exclude, '**/lint-staged.config.js'],
|
|
10
|
-
},
|
|
11
|
-
isolate: true,
|
|
12
|
-
},
|
|
13
|
-
});
|
|
14
|
-
|
|
15
|
-
export default vitestConfig;
|
package/src/presets/nestjs.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import cv8 from '@vitest/coverage-v8';
|
|
2
|
-
import swc from 'unplugin-swc';
|
|
3
|
-
import { configDefaults, defineConfig } from 'vitest/config';
|
|
4
|
-
|
|
5
|
-
const vitestNestJsConfig = defineConfig({
|
|
6
|
-
plugins: [cv8.getProvider(), swc.vite()],
|
|
7
|
-
test: {
|
|
8
|
-
coverage: {
|
|
9
|
-
...configDefaults.coverage,
|
|
10
|
-
exclude: [...configDefaults.coverage.exclude, '**/lint-staged.config.js'],
|
|
11
|
-
},
|
|
12
|
-
isolate: true,
|
|
13
|
-
},
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
export default vitestNestJsConfig;
|
package/src/presets/react.js
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import react from '@vitejs/plugin-react';
|
|
2
|
-
import cv8 from '@vitest/coverage-v8';
|
|
3
|
-
import { configDefaults, defineConfig } from 'vitest/config';
|
|
4
|
-
|
|
5
|
-
const vitestReactConfig = defineConfig({
|
|
6
|
-
plugins: [cv8.getProvider(), react()],
|
|
7
|
-
test: {
|
|
8
|
-
environment: 'jsdom',
|
|
9
|
-
globals: true,
|
|
10
|
-
coverage: {
|
|
11
|
-
...configDefaults.coverage,
|
|
12
|
-
exclude: [...configDefaults.coverage.exclude, '**/lint-staged.config.js'],
|
|
13
|
-
},
|
|
14
|
-
isolate: true,
|
|
15
|
-
},
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
export default vitestReactConfig;
|