@7n/test 0.14.3 → 0.14.4
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/CHANGELOG.md +6 -0
- package/package.json +1 -1
- package/src/coverage-per-file.mjs +17 -2
- package/src/docs/coverage-per-file.md +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.14.4] - 2026-07-11
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- `measureCoveragePerFile`: не додавати `--coverage.exclude=**/*.d.ts` на CLI, коли target-проєкт має власний локальний vitest + `vitest.config.js` — CLI-флаг повністю замінює (не мерджить) масив `test.coverage.exclude` із конфіга проєкту, через що тихо затирались власні винятки (напр. bun-native-тести, що можуть виконуватись лише під `bun test`) і колектор помилково бачив уже покриті файли як 0%, намагаючись згенерувати для них нові тести. У bundled/shim-режимі (без локального vitest) флаг лишається — там немає стороннього конфіга для затирання.
|
|
8
|
+
|
|
3
9
|
## [0.14.3] - 2026-07-11
|
|
4
10
|
|
|
5
11
|
### Changed
|
package/package.json
CHANGED
|
@@ -98,6 +98,22 @@ export async function measureCoveragePerFile(dir) {
|
|
|
98
98
|
const jsonResultsFile = join(lcovDir, 'test-results.json')
|
|
99
99
|
|
|
100
100
|
const { bin, configArgs } = resolveVitestRun(dir)
|
|
101
|
+
// `--coverage.exclude` на CLI ПОВНІСТЮ замінює (не мерджить) масив
|
|
102
|
+
// `test.coverage.exclude` із target-проєкту vitest.config.js — так влаштований
|
|
103
|
+
// vitest CLI-override для array-полів. Коли `configArgs` порожній, resolveVitestRun
|
|
104
|
+
// вже обрав ЛОКАЛЬНИЙ vitest target-проєкту (він сам підхопить свій vitest.config.js) —
|
|
105
|
+
// додавання CLI-флагу тут тихо затирає власні винятки проєкту (напр. тести, що
|
|
106
|
+
// структурно можуть виконуватись лише під `bun test`, а не vitest), через що колектор
|
|
107
|
+
// бачить їх як 0%-покриті й намагається згенерувати для них НОВІ тести, хоча вони вже
|
|
108
|
+
// покриті. У bundled/shim-режимі (`configArgs` непорожній) конфлікту немає — стороннього
|
|
109
|
+
// конфіга для затирання нема, а shim (`ensureVitestShim`) вже сам включає `**/*.d.ts`.
|
|
110
|
+
const coverageExcludeArgs =
|
|
111
|
+
configArgs.length === 0
|
|
112
|
+
? []
|
|
113
|
+
: [
|
|
114
|
+
// vitest 4 прибрав дефолтний exclude **/*.d.ts — без нього v8-remap падає на TS-синтаксисі декларацій
|
|
115
|
+
'--coverage.exclude=**/*.d.ts'
|
|
116
|
+
]
|
|
101
117
|
try {
|
|
102
118
|
spawnSync(
|
|
103
119
|
process.execPath,
|
|
@@ -112,8 +128,7 @@ export async function measureCoveragePerFile(dir) {
|
|
|
112
128
|
'--coverage.reporter=lcov',
|
|
113
129
|
// vitest 4 прибрав coverage.all — явний include, щоб файли без тестів лишались у lcov (0%)
|
|
114
130
|
'--coverage.include=**/*.{js,mjs,ts,vue}',
|
|
115
|
-
|
|
116
|
-
'--coverage.exclude=**/*.d.ts',
|
|
131
|
+
...coverageExcludeArgs,
|
|
117
132
|
`--coverage.reportsDirectory=${lcovDir}`,
|
|
118
133
|
'--reporter=verbose',
|
|
119
134
|
'--reporter=json',
|