Skip to content

Commit 2071126

Browse files
chore: add code coverage and github-actions reporter
1 parent 915553c commit 2071126

File tree

4 files changed

+149
-13
lines changed

4 files changed

+149
-13
lines changed

.github/workflows/ci.yml

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,5 +32,18 @@ jobs:
3232
- name: Install Packages
3333
run: yarn install
3434

35-
- name: Test
36-
run: yarn test
35+
- name: Type Check
36+
run: yarn typecheck
37+
38+
- name: Lint
39+
run: yarn lint
40+
41+
- name: Test Coverage
42+
run: yarn coverage
43+
44+
- name: Report Coverage
45+
uses: zgosalvez/github-actions-report-lcov@v4
46+
with:
47+
coverage-files: coverage/lcov.*.info
48+
github-token: ${{ secrets.GITHUB_TOKEN }}
49+
update-comment: true

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
"build": "unbuild",
4040
"lint": "eslint",
4141
"test": "vitest",
42+
"coverage": "vitest run --coverage",
4243
"typecheck": "tsc --noEmit"
4344
},
4445
"dependencies": {
@@ -61,6 +62,7 @@
6162
"@types/common-tags": "^1.8.4",
6263
"@types/node": "^18.18.0",
6364
"@typescript-eslint/rule-tester": "^8.12.2",
65+
"@vitest/coverage-v8": "^2.1.4",
6466
"eslint": "^9.13.0",
6567
"eslint-config-flat-gitignore": "^0.3.0",
6668
"eslint-import-resolver-typescript": "^3.6.3",

vitest.config.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
import { defineConfig } from 'vitest/config';
22

33
export default defineConfig({
4-
test: {
5-
globals: true,
6-
reporters: 'dot',
4+
test: {
5+
globals: true,
6+
reporters: process.env.GITHUB_ACTIONS ? ['dot', 'github-actions'] : ['dot'],
7+
coverage: {
8+
reporter: ['text-summary', 'lcovonly'],
79
},
10+
},
811
});

yarn.lock

Lines changed: 126 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ __metadata:
55
version: 8
66
cacheKey: 10c0
77

8-
"@ampproject/remapping@npm:^2.2.0":
8+
"@ampproject/remapping@npm:^2.2.0, @ampproject/remapping@npm:^2.3.0":
99
version: 2.3.0
1010
resolution: "@ampproject/remapping@npm:2.3.0"
1111
dependencies:
@@ -136,7 +136,7 @@ __metadata:
136136
languageName: node
137137
linkType: hard
138138

139-
"@babel/parser@npm:^7.25.9, @babel/parser@npm:^7.26.0, @babel/parser@npm:^7.26.2":
139+
"@babel/parser@npm:^7.25.4, @babel/parser@npm:^7.25.9, @babel/parser@npm:^7.26.0, @babel/parser@npm:^7.26.2":
140140
version: 7.26.2
141141
resolution: "@babel/parser@npm:7.26.2"
142142
dependencies:
@@ -180,7 +180,7 @@ __metadata:
180180
languageName: node
181181
linkType: hard
182182

183-
"@babel/types@npm:^7.25.7, @babel/types@npm:^7.25.9, @babel/types@npm:^7.26.0":
183+
"@babel/types@npm:^7.25.4, @babel/types@npm:^7.25.7, @babel/types@npm:^7.25.9, @babel/types@npm:^7.26.0":
184184
version: 7.26.0
185185
resolution: "@babel/types@npm:7.26.0"
186186
dependencies:
@@ -190,6 +190,13 @@ __metadata:
190190
languageName: node
191191
linkType: hard
192192

193+
"@bcoe/v8-coverage@npm:^0.2.3":
194+
version: 0.2.3
195+
resolution: "@bcoe/v8-coverage@npm:0.2.3"
196+
checksum: 10c0/6b80ae4cb3db53f486da2dc63b6e190a74c8c3cca16bb2733f234a0b6a9382b09b146488ae08e2b22cf00f6c83e20f3e040a2f7894f05c045c946d6a090b1d52
197+
languageName: node
198+
linkType: hard
199+
193200
"@esbuild/aix-ppc64@npm:0.19.12":
194201
version: 0.19.12
195202
resolution: "@esbuild/aix-ppc64@npm:0.19.12"
@@ -813,6 +820,13 @@ __metadata:
813820
languageName: node
814821
linkType: hard
815822

823+
"@istanbuljs/schema@npm:^0.1.2":
824+
version: 0.1.3
825+
resolution: "@istanbuljs/schema@npm:0.1.3"
826+
checksum: 10c0/61c5286771676c9ca3eb2bd8a7310a9c063fb6e0e9712225c8471c582d157392c88f5353581c8c9adbe0dff98892317d2fdfc56c3499aa42e0194405206a963a
827+
languageName: node
828+
linkType: hard
829+
816830
"@jridgewell/gen-mapping@npm:^0.3.5":
817831
version: 0.3.5
818832
resolution: "@jridgewell/gen-mapping@npm:0.3.5"
@@ -845,7 +859,7 @@ __metadata:
845859
languageName: node
846860
linkType: hard
847861

848-
"@jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25":
862+
"@jridgewell/trace-mapping@npm:^0.3.23, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25":
849863
version: 0.3.25
850864
resolution: "@jridgewell/trace-mapping@npm:0.3.25"
851865
dependencies:
@@ -1345,6 +1359,32 @@ __metadata:
13451359
languageName: node
13461360
linkType: hard
13471361

1362+
"@vitest/coverage-v8@npm:^2.1.4":
1363+
version: 2.1.4
1364+
resolution: "@vitest/coverage-v8@npm:2.1.4"
1365+
dependencies:
1366+
"@ampproject/remapping": "npm:^2.3.0"
1367+
"@bcoe/v8-coverage": "npm:^0.2.3"
1368+
debug: "npm:^4.3.7"
1369+
istanbul-lib-coverage: "npm:^3.2.2"
1370+
istanbul-lib-report: "npm:^3.0.1"
1371+
istanbul-lib-source-maps: "npm:^5.0.6"
1372+
istanbul-reports: "npm:^3.1.7"
1373+
magic-string: "npm:^0.30.12"
1374+
magicast: "npm:^0.3.5"
1375+
std-env: "npm:^3.7.0"
1376+
test-exclude: "npm:^7.0.1"
1377+
tinyrainbow: "npm:^1.2.0"
1378+
peerDependencies:
1379+
"@vitest/browser": 2.1.4
1380+
vitest: 2.1.4
1381+
peerDependenciesMeta:
1382+
"@vitest/browser":
1383+
optional: true
1384+
checksum: 10c0/f795fdd645ccc46de45baa431a1b3b216d74195b9751cb0498009b8ef929dcd48c2f858570d421908549f5a631ac2931f7c7f3fe4ff0bc80707805beda5c18d7
1385+
languageName: node
1386+
linkType: hard
1387+
13481388
"@vitest/expect@npm:2.1.4":
13491389
version: 2.1.4
13501390
resolution: "@vitest/expect@npm:2.1.4"
@@ -1935,7 +1975,7 @@ __metadata:
19351975
languageName: node
19361976
linkType: hard
19371977

1938-
"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.3.5, debug@npm:^4.3.7":
1978+
"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.3.5, debug@npm:^4.3.7":
19391979
version: 4.3.7
19401980
resolution: "debug@npm:4.3.7"
19411981
dependencies:
@@ -2505,6 +2545,7 @@ __metadata:
25052545
"@typescript-eslint/rule-tester": "npm:^8.12.2"
25062546
"@typescript-eslint/scope-manager": "npm:^8.12.2"
25072547
"@typescript-eslint/utils": "npm:^8.12.2"
2548+
"@vitest/coverage-v8": "npm:^2.1.4"
25082549
common-tags: "npm:^1.8.0"
25092550
decamelize: "npm:^5.0.0 || ^6.0.0"
25102551
eslint: "npm:^9.13.0"
@@ -2890,7 +2931,7 @@ __metadata:
28902931
languageName: node
28912932
linkType: hard
28922933

2893-
"glob@npm:^10.2.2, glob@npm:^10.3.10":
2934+
"glob@npm:^10.2.2, glob@npm:^10.3.10, glob@npm:^10.4.1":
28942935
version: 10.4.5
28952936
resolution: "glob@npm:10.4.5"
28962937
dependencies:
@@ -2990,6 +3031,13 @@ __metadata:
29903031
languageName: node
29913032
linkType: hard
29923033

3034+
"html-escaper@npm:^2.0.0":
3035+
version: 2.0.2
3036+
resolution: "html-escaper@npm:2.0.2"
3037+
checksum: 10c0/208e8a12de1a6569edbb14544f4567e6ce8ecc30b9394fcaa4e7bb1e60c12a7c9a1ed27e31290817157e8626f3a4f29e76c8747030822eb84a6abb15c255f0a0
3038+
languageName: node
3039+
linkType: hard
3040+
29933041
"http-cache-semantics@npm:^4.1.1":
29943042
version: 4.1.1
29953043
resolution: "http-cache-semantics@npm:4.1.1"
@@ -3169,6 +3217,45 @@ __metadata:
31693217
languageName: node
31703218
linkType: hard
31713219

3220+
"istanbul-lib-coverage@npm:^3.0.0, istanbul-lib-coverage@npm:^3.2.2":
3221+
version: 3.2.2
3222+
resolution: "istanbul-lib-coverage@npm:3.2.2"
3223+
checksum: 10c0/6c7ff2106769e5f592ded1fb418f9f73b4411fd5a084387a5410538332b6567cd1763ff6b6cadca9b9eb2c443cce2f7ea7d7f1b8d315f9ce58539793b1e0922b
3224+
languageName: node
3225+
linkType: hard
3226+
3227+
"istanbul-lib-report@npm:^3.0.0, istanbul-lib-report@npm:^3.0.1":
3228+
version: 3.0.1
3229+
resolution: "istanbul-lib-report@npm:3.0.1"
3230+
dependencies:
3231+
istanbul-lib-coverage: "npm:^3.0.0"
3232+
make-dir: "npm:^4.0.0"
3233+
supports-color: "npm:^7.1.0"
3234+
checksum: 10c0/84323afb14392de8b6a5714bd7e9af845cfbd56cfe71ed276cda2f5f1201aea673c7111901227ee33e68e4364e288d73861eb2ed48f6679d1e69a43b6d9b3ba7
3235+
languageName: node
3236+
linkType: hard
3237+
3238+
"istanbul-lib-source-maps@npm:^5.0.6":
3239+
version: 5.0.6
3240+
resolution: "istanbul-lib-source-maps@npm:5.0.6"
3241+
dependencies:
3242+
"@jridgewell/trace-mapping": "npm:^0.3.23"
3243+
debug: "npm:^4.1.1"
3244+
istanbul-lib-coverage: "npm:^3.0.0"
3245+
checksum: 10c0/ffe75d70b303a3621ee4671554f306e0831b16f39ab7f4ab52e54d356a5d33e534d97563e318f1333a6aae1d42f91ec49c76b6cd3f3fb378addcb5c81da0255f
3246+
languageName: node
3247+
linkType: hard
3248+
3249+
"istanbul-reports@npm:^3.1.7":
3250+
version: 3.1.7
3251+
resolution: "istanbul-reports@npm:3.1.7"
3252+
dependencies:
3253+
html-escaper: "npm:^2.0.0"
3254+
istanbul-lib-report: "npm:^3.0.0"
3255+
checksum: 10c0/a379fadf9cf8dc5dfe25568115721d4a7eb82fbd50b005a6672aff9c6989b20cc9312d7865814e0859cd8df58cbf664482e1d3604be0afde1f7fc3ccc1394a51
3256+
languageName: node
3257+
linkType: hard
3258+
31723259
"jackspeak@npm:^3.1.2":
31733260
version: 3.4.3
31743261
resolution: "jackspeak@npm:3.4.3"
@@ -3352,6 +3439,26 @@ __metadata:
33523439
languageName: node
33533440
linkType: hard
33543441

3442+
"magicast@npm:^0.3.5":
3443+
version: 0.3.5
3444+
resolution: "magicast@npm:0.3.5"
3445+
dependencies:
3446+
"@babel/parser": "npm:^7.25.4"
3447+
"@babel/types": "npm:^7.25.4"
3448+
source-map-js: "npm:^1.2.0"
3449+
checksum: 10c0/a6cacc0a848af84f03e3f5bda7b0de75e4d0aa9ddce5517fd23ed0f31b5ddd51b2d0ff0b7e09b51f7de0f4053c7a1107117edda6b0732dca3e9e39e6c5a68c64
3450+
languageName: node
3451+
linkType: hard
3452+
3453+
"make-dir@npm:^4.0.0":
3454+
version: 4.0.0
3455+
resolution: "make-dir@npm:4.0.0"
3456+
dependencies:
3457+
semver: "npm:^7.5.3"
3458+
checksum: 10c0/69b98a6c0b8e5c4fe9acb61608a9fbcfca1756d910f51e5dbe7a9e5cfb74fca9b8a0c8a0ffdf1294a740826c1ab4871d5bf3f62f72a3049e5eac6541ddffed68
3459+
languageName: node
3460+
linkType: hard
3461+
33553462
"make-fetch-happen@npm:^13.0.0":
33563463
version: 13.0.1
33573464
resolution: "make-fetch-happen@npm:13.0.1"
@@ -4402,7 +4509,7 @@ __metadata:
44024509
languageName: node
44034510
linkType: hard
44044511

4405-
"semver@npm:^7.3.5, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.3":
4512+
"semver@npm:^7.3.5, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.3":
44064513
version: 7.6.3
44074514
resolution: "semver@npm:7.6.3"
44084515
bin:
@@ -4476,7 +4583,7 @@ __metadata:
44764583
languageName: node
44774584
linkType: hard
44784585

4479-
"source-map-js@npm:^1.0.1, source-map-js@npm:^1.2.1":
4586+
"source-map-js@npm:^1.0.1, source-map-js@npm:^1.2.0, source-map-js@npm:^1.2.1":
44804587
version: 1.2.1
44814588
resolution: "source-map-js@npm:1.2.1"
44824589
checksum: 10c0/7bda1fc4c197e3c6ff17de1b8b2c20e60af81b63a52cb32ec5a5d67a20a7d42651e2cb34ebe93833c5a2a084377e17455854fee3e21e7925c64a51b6a52b0faf
@@ -4633,6 +4740,17 @@ __metadata:
46334740
languageName: node
46344741
linkType: hard
46354742

4743+
"test-exclude@npm:^7.0.1":
4744+
version: 7.0.1
4745+
resolution: "test-exclude@npm:7.0.1"
4746+
dependencies:
4747+
"@istanbuljs/schema": "npm:^0.1.2"
4748+
glob: "npm:^10.4.1"
4749+
minimatch: "npm:^9.0.4"
4750+
checksum: 10c0/6d67b9af4336a2e12b26a68c83308c7863534c65f27ed4ff7068a56f5a58f7ac703e8fc80f698a19bb154fd8f705cdf7ec347d9512b2c522c737269507e7b263
4751+
languageName: node
4752+
linkType: hard
4753+
46364754
"text-table@npm:^0.2.0":
46374755
version: 0.2.0
46384756
resolution: "text-table@npm:0.2.0"

0 commit comments

Comments
 (0)