Skip to content

Commit b7a0d56

Browse files
committed
migrate to vitest (ssm util)
1 parent 4095ba5 commit b7a0d56

File tree

9 files changed

+1386
-27
lines changed

9 files changed

+1386
-27
lines changed
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
// Setup AWS SDK client mock matchers
2+
import 'aws-sdk-client-mock-jest/vitest';

lambdas/libs/aws-ssm-util/jest.config.ts

Lines changed: 0 additions & 17 deletions
This file was deleted.

lambdas/libs/aws-ssm-util/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
"@typescript-eslint/eslint-plugin": "^8.25.0",
2222
"@typescript-eslint/parser": "^8.25.0",
2323
"@vercel/ncc": "0.38.3",
24+
"aws-sdk-client-mock-jest": "^4.1.0",
2425
"body-parser": "^1.20.3",
2526
"eslint": "^8.57.0",
2627
"eslint-plugin-prettier": "5.2.3",

lambdas/libs/aws-ssm-util/src/index.test.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,18 @@ import {
66
SSMClient,
77
} from '@aws-sdk/client-ssm';
88
import { mockClient } from 'aws-sdk-client-mock';
9-
import 'aws-sdk-client-mock-jest';
9+
import { AwsClientStubSpy } from 'aws-sdk-client-mock';
1010
import nock from 'nock';
1111

1212
import { getParameter, putParameter } from '.';
13+
import { describe, it, expect, beforeEach, vi } from 'vitest';
1314

1415
const mockSSMClient = mockClient(SSMClient);
1516
const cleanEnv = process.env;
1617

1718
beforeEach(() => {
18-
jest.resetModules();
19-
jest.clearAllMocks();
19+
vi.resetModules();
20+
vi.clearAllMocks();
2021
process.env = { ...cleanEnv };
2122
nock.disableNetConnect();
2223
});
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { mergeConfig } from 'vitest/config';
2+
import defaultConfig from '../../vitest.base.config';
3+
4+
export default mergeConfig(defaultConfig, {
5+
test: {
6+
setupFiles: ['./aws-vitest-setup.ts'],
7+
coverage: {
8+
include: ['src/**/*.ts'],
9+
exclude: ['src/**/*.test.ts', 'src/**/*.d.ts'],
10+
thresholds: {
11+
statements: 100,
12+
branches: 100,
13+
functions: 100,
14+
lines: 100,
15+
}
16+
},
17+
},
18+
});

lambdas/nx.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,12 @@
2020
"options": {
2121
"targetName": "lint"
2222
}
23+
},
24+
{
25+
"plugin": "@nx/vite/plugin",
26+
"options": {
27+
"targetName": "test"
28+
}
2329
}
2430
],
2531
"targetDefaults": {
@@ -34,6 +40,15 @@
3440
"dependsOn": ["build"],
3541
"executor": "@nx/workspace:run-commands",
3642
"cache": true
43+
},
44+
"test": {
45+
"inputs": [
46+
"default",
47+
"^default",
48+
"{workspaceRoot}/vitest.base.config.ts",
49+
"{projectRoot}/vitest.config.ts"
50+
],
51+
"cache": true
3752
}
3853
}
3954

lambdas/package.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
"lint": "nx run-many --target=lint --all",
1616
"affected:lint": "nx affected:lint --parallel",
1717
"test": "nx run-many --target=test --all",
18+
"vitest": "vitest",
1819
"affected:test": "nx affected:test --parallel"
1920
},
2021
"resolutions": {
@@ -24,14 +25,19 @@
2425
"@nx/eslint": "20.4.6",
2526
"@nx/jest": "20.3.0",
2627
"@nx/js": "^20.3.2",
28+
"@nx/vite": "^20.4.6",
2729
"@swc-node/register": "~1.10.9",
2830
"@swc/core": "~1.10.11",
2931
"@swc/helpers": "~0.5.15",
32+
"@vitest/coverage-v8": "^3.0.7",
33+
"chalk": "^5.4.1",
3034
"eslint": "^8.57.0",
3135
"jest": "^29.7.0",
3236
"nx": "20.3.2",
3337
"prettier": "^3.4.2",
34-
"typescript": "^5.7.3"
38+
"typescript": "^5.7.3",
39+
"vite": "^5.4.14",
40+
"vitest": "^3.0.7"
3541
},
3642
"packageManager": "[email protected]"
3743
}

lambdas/vitest.base.config.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { defineConfig } from 'vitest/config';
2+
3+
const defaultConfig = defineConfig({
4+
test: {
5+
environment: 'node',
6+
coverage: {
7+
provider: 'v8',
8+
reporter: ['text', 'lcov', 'html'],
9+
include: ['**/src/**/*.ts'],
10+
exclude: ['**/*local*.ts', '**/*.d.ts', '**/*.test.ts', '**/node_modules/**'],
11+
all: true,
12+
reportsDirectory: './coverage'
13+
},
14+
globals: true,
15+
}
16+
});
17+
18+
export default defaultConfig;

0 commit comments

Comments
 (0)