Skip to content

Commit 102d48f

Browse files
committed
fix: coverage reporting
1 parent fedae35 commit 102d48f

File tree

6 files changed

+66
-13
lines changed

6 files changed

+66
-13
lines changed

.c8rc.json

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"all": true,
3+
"reporter": [
4+
"lcov",
5+
"text",
6+
"html",
7+
"text-summary"
8+
],
9+
"include": [
10+
"lib/**/*.js",
11+
"index.js"
12+
]
13+
}

.github/workflows/nodejs.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,11 @@ jobs:
2424
post-test-steps: |
2525
- name: Coverage Report
2626
uses: codecov/codecov-action@v4
27+
secrets:
28+
test-secrets: |-
29+
{
30+
"NODE_V8_COVERAGE": "./coverage/tmp"
31+
}
2732
automerge:
2833
if: >
2934
github.event_name == 'pull_request' && github.event.pull_request.user.login == 'dependabot[bot]'

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,3 +79,6 @@ fuzz-results-*.json
7979
# Bundle output
8080
undici-fetch.js
8181
/test/imports/undici-import.js
82+
83+
# .npmrc has platform specific value for windows
84+
.npmrc

package.json

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -67,27 +67,31 @@
6767
"build:wasm": "node build/wasm.js --docker",
6868
"lint": "standard | snazzy",
6969
"lint:fix": "standard --fix | snazzy",
70-
"test": "node scripts/generate-pem && npm run test:unit && npm run test:node-fetch && npm run test:fetch && npm run test:cookies && npm run test:eventsource && npm run test:wpt && npm run test:websocket && npm run test:jest && npm run test:typescript && npm run test:node-test",
71-
"test:cookies": "borp --coverage -p \"test/cookie/*.js\"",
72-
"test:node-fetch": "borp --coverage -p \"test/node-fetch/**/*.js\"",
73-
"test:eventsource": "npm run build:node && borp --expose-gc --coverage -p \"test/eventsource/*.js\"",
74-
"test:fetch": "npm run build:node && borp --expose-gc --coverage -p \"test/fetch/*.js\" && borp --coverage -p \"test/webidl/*.js\"",
75-
"test:jest": "jest",
70+
"test": "npm run test:javascript && npm run test:typescript",
71+
"test:javascript": "node scripts/generate-pem && npm run test:unit && npm run test:node-fetch && npm run test:fetch && npm run test:cookies && npm run test:eventsource && npm run test:wpt && npm run test:websocket && npm run test:node-test && npm run test:jest",
72+
"test:cookies": "borp -p \"test/cookie/*.js\"",
73+
"test:node-fetch": "borp -p \"test/node-fetch/**/*.js\"",
74+
"test:eventsource": "npm run build:node && borp --expose-gc -p \"test/eventsource/*.js\"",
75+
"test:fetch": "npm run build:node && borp --expose-gc -p \"test/fetch/*.js\" && borp -p \"test/webidl/*.js\"",
76+
"test:jest": "cross-env NODE_V8_COVERAGE= jest",
7677
"test:unit": "borp --expose-gc -p \"test/*.js\"",
77-
"test:node-test": "borp --coverage -p \"test/node-test/**/*.js\"",
78-
"test:tdd": "borp --coverage --expose-gc -p \"test/*.js\"",
78+
"test:node-test": "borp -p \"test/node-test/**/*.js\"",
79+
"test:tdd": "borp --expose-gc -p \"test/*.js\"",
7980
"test:tdd:node-test": "borp -p \"test/node-test/**/*.js\" -w",
80-
"test:typescript": "tsd && tsc --skipLibCheck test/imports/undici-import.ts",
81-
"test:websocket": "borp --coverage -p \"test/websocket/*.js\"",
81+
"test:typescript": "cross-env NODE_V8_COVERAGE= tsd && tsc --skipLibCheck test/imports/undici-import.ts",
82+
"test:websocket": "borp -p \"test/websocket/*.js\"",
8283
"test:wpt": "node test/wpt/start-fetch.mjs && node test/wpt/start-FileAPI.mjs && node test/wpt/start-mimesniff.mjs && node test/wpt/start-xhr.mjs && node test/wpt/start-websockets.mjs && node test/wpt/start-cacheStorage.mjs && node test/wpt/start-eventsource.mjs",
83-
"coverage": "nyc --reporter=text --reporter=html npm run test",
84-
"coverage:ci": "nyc --reporter=lcov npm run test",
84+
"coverage": "cross-env NODE_V8_COVERAGE=./coverage/tmp && npm run coverage:clean && npm run test && npm run coverage:report",
85+
"coverage:ci": "npm run coverage:clean && npm run test && npm run coverage:report:ci",
86+
"coverage:clean": "node ./scripts/clean-coverage.js",
87+
"coverage:report": "cross-env NODE_V8_COVERAGE= c8 report",
88+
"coverage:report:ci": "c8 report",
8589
"bench": "PORT=3042 concurrently -k -s first npm:bench:server npm:bench:run",
8690
"bench:server": "node benchmarks/server.js",
8791
"prebench:run": "node benchmarks/wait.js",
8892
"bench:run": "SAMPLES=100 CONNECTIONS=50 node benchmarks/benchmark.js",
8993
"serve:website": "docsify serve .",
90-
"prepare": "husky install",
94+
"prepare": "husky install && node ./scripts/platform-shell.js",
9195
"fuzz": "jsfuzz test/fuzzing/fuzz.js corpus"
9296
},
9397
"devDependencies": {
@@ -98,8 +102,10 @@
98102
"abort-controller": "^3.0.0",
99103
"axios": "^1.6.5",
100104
"borp": "^0.9.1",
105+
"c8": "^9.1.0",
101106
"concurrently": "^8.0.1",
102107
"cronometro": "^3.0.1",
108+
"cross-env": "^7.0.3",
103109
"dns-packet": "^5.4.0",
104110
"docsify-cli": "^4.4.3",
105111
"form-data": "^4.0.0",

scripts/clean-coverage.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
'use strict'
2+
3+
const { rmSync } = require('node:fs')
4+
const { resolve } = require('node:path')
5+
6+
if (process.env.NODE_V8_COVERAGE) {
7+
if (process.env.NODE_V8_COVERAGE.endsWith('/tmp')) {
8+
rmSync(resolve(__dirname, process.env.NODE_V8_COVERAGE, '..'), { recursive: true, force: true })
9+
} else {
10+
rmSync(resolve(__dirname, process.env.NODE_V8_COVERAGE), { recursive: true, force: true })
11+
}
12+
} else {
13+
rmSync(resolve(__dirname, 'coverage'), { recursive: true, force: true })
14+
}

scripts/platform-shell.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
'use strict'
2+
3+
const { platform } = require('node:os')
4+
const { writeFileSync } = require('node:fs')
5+
const { resolve } = require('node:path')
6+
7+
if (platform() === 'win32') {
8+
writeFileSync(
9+
resolve(__dirname, '.npmrc'),
10+
'script-shell = "C:\\windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe"\n'
11+
)
12+
}

0 commit comments

Comments
 (0)