Skip to content

Commit a24a3d0

Browse files
Mrtenzmetamaskbot
andauthored
chore(devex): Add thresholds to coverage script and log coverage for merged report (#3460)
This has several small improvements for local developer experience: - The coverage script used by `snaps-controllers`, `snaps-execution-environments`, and `snaps-utils` now has two thresholds: one for increases (e.g., only increase the coverage if the increase in coverage is more the threshold), and one for decreases (e.g., only fail if the decrease in coverage is less than the threshold). - The coverage script is now reused rather than duplicated. - There's some additional messaging to make it clear that the coverage percentages didn't change. - The coverage script now prints the merged coverage report, instead of Jest and Vitest printing their individual reports. - The NPM package used for some `snaps-controllers` tests is now included in the repo, since it never changes anyway. --------- Co-authored-by: MetaMask Bot <[email protected]>
1 parent 854bb3f commit a24a3d0

File tree

20 files changed

+89
-384
lines changed

20 files changed

+89
-384
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ typings/
6262

6363
# Output of 'npm pack'
6464
*.tgz
65+
!**/test/fixtures/*.tgz
6566

6667
# Yarn Integrity file
6768
.yarn-integrity

package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,9 @@
100100
"eslint-plugin-promise": "^7.1.0",
101101
"execa": "^5.1.1",
102102
"favicons": "^7.1.2",
103+
"istanbul-lib-coverage": "^3.2.2",
104+
"istanbul-lib-report": "^3.0.1",
105+
"istanbul-reports": "^3.1.7",
103106
"jest": "^29.0.2",
104107
"jest-silent-reporter": "^0.6.0",
105108
"lint-staged": "^12.4.1",

packages/snaps-controllers/jest.config.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,12 @@ const deepmerge = require('deepmerge');
33
const baseConfig = require('../../jest.config.base');
44

55
delete baseConfig.coverageThreshold;
6+
delete baseConfig.coverageReporters;
67

78
module.exports = deepmerge(baseConfig, {
89
coverageDirectory: './coverage/jest',
10+
coverageReporters: ['html', 'json-summary', 'json'],
11+
912
testTimeout: 10000,
1013

1114
// This is required for `jest-fetch-mock` to work.

packages/snaps-controllers/package.json

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,7 @@
7474
"test:browser": "vitest",
7575
"test:browser:firefox": "vitest --config ./vitest.config.firefox.mts",
7676
"test:clean": "jest --clearCache",
77-
"test:post": "ts-node scripts/coverage.ts && rimraf coverage/jest coverage/vite",
78-
"test:pre": "yarn mkdirp test/fixtures && ./scripts/generate-fixtures.sh",
77+
"test:post": "tsx ../../scripts/update-coverage.mts && rimraf coverage/jest coverage/vite",
7978
"test:verbose": "jest --verbose",
8079
"test:watch": "jest --watch"
8180
},
@@ -132,16 +131,13 @@
132131
"deepmerge": "^4.2.2",
133132
"depcheck": "^1.4.7",
134133
"eslint": "^9.11.0",
135-
"istanbul-lib-coverage": "^3.2.0",
136-
"istanbul-lib-report": "^3.0.0",
137-
"istanbul-reports": "^3.1.5",
138134
"jest": "^29.0.2",
139135
"jest-fetch-mock": "^3.0.3",
140136
"jest-silent-reporter": "^0.6.0",
141-
"mkdirp": "^1.0.4",
142137
"prettier": "^3.3.3",
143138
"rimraf": "^4.1.2",
144139
"ts-node": "^10.9.1",
140+
"tsx": "^4.19.1",
145141
"typescript": "~5.3.3",
146142
"vite": "^6.2.7",
147143
"vite-plugin-node-polyfills": "^0.23.0",

packages/snaps-controllers/scripts/generate-fixtures.sh

Lines changed: 0 additions & 15 deletions
This file was deleted.
Binary file not shown.

packages/snaps-controllers/vitest.config.mts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ export default defineConfig({
6060
enabled: true,
6161

6262
reportsDirectory: 'coverage/vite',
63+
reporter: ['json', 'json-summary', 'html'],
6364

6465
// Configure the coverage provider. We use `istanbul` instead of `v8`
6566
// because it seems to be more reliable.

packages/snaps-execution-environments/jest.config.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,11 @@ const deepmerge = require('deepmerge');
33
const baseConfig = require('../../jest.config.base');
44

55
delete baseConfig.coverageThreshold;
6+
delete baseConfig.coverageReporters;
67

78
module.exports = deepmerge(baseConfig, {
9+
coverageDirectory: './coverage/jest',
10+
coverageReporters: ['html', 'json-summary', 'json'],
811
coveragePathIgnorePatterns: [
912
'./src/index.ts',
1013
'./src/iframe/index.ts',
@@ -13,7 +16,7 @@ module.exports = deepmerge(baseConfig, {
1316
'./src/webworker/pool/index.ts',
1417
'./src/common/test-utils',
1518
],
16-
coverageDirectory: './coverage/jest',
19+
1720
testTimeout: 10000,
1821
testEnvironment: '<rootDir>/jest.environment.js',
1922
testEnvironmentOptions: {

packages/snaps-execution-environments/lavamoat/build-system/policy.json

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,7 @@
330330
"eslint>chalk": {
331331
"packages": {
332332
"eslint>chalk>ansi-styles": true,
333-
"istanbul-lib-report>supports-color": true
333+
"eslint>chalk>supports-color": true
334334
}
335335
},
336336
"webpack>chrome-trace-event": {
@@ -416,7 +416,7 @@
416416
},
417417
"packages": {
418418
"eslint>debug>ms": true,
419-
"istanbul-lib-report>supports-color": true
419+
"eslint>chalk>supports-color": true
420420
}
421421
},
422422
"@lavamoat/webpack>json-stable-stringify>call-bind>set-function-length>define-data-property": {
@@ -488,7 +488,7 @@
488488
"atob": true
489489
}
490490
},
491-
"@esbuild-plugins/node-globals-polyfill>esbuild": {
491+
"tsx>esbuild": {
492492
"builtin": {
493493
"child_process.execFileSync": true,
494494
"child_process.spawn": true,
@@ -600,7 +600,7 @@
600600
"setTimeout": true
601601
}
602602
},
603-
"istanbul-lib-report>supports-color>has-flag": {
603+
"eslint>chalk>supports-color>has-flag": {
604604
"globals": {
605605
"process.argv": true
606606
}
@@ -1032,7 +1032,7 @@
10321032
"@types/jest>pretty-format>ansi-regex": true
10331033
}
10341034
},
1035-
"istanbul-lib-report>supports-color": {
1035+
"eslint>chalk>supports-color": {
10361036
"builtin": {
10371037
"os.release": true,
10381038
"tty.isatty": true
@@ -1042,7 +1042,7 @@
10421042
"process.platform": true
10431043
},
10441044
"packages": {
1045-
"istanbul-lib-report>supports-color>has-flag": true
1045+
"eslint>chalk>supports-color>has-flag": true
10461046
}
10471047
},
10481048
"webpack>terser-webpack-plugin>jest-worker>supports-color": {
@@ -1055,7 +1055,7 @@
10551055
"process.platform": true
10561056
},
10571057
"packages": {
1058-
"istanbul-lib-report>supports-color>has-flag": true
1058+
"eslint>chalk>supports-color>has-flag": true
10591059
}
10601060
},
10611061
"webpack>tapable": {
@@ -1095,7 +1095,7 @@
10951095
"packages": {
10961096
"terser>@jridgewell/source-map>@jridgewell/trace-mapping": true,
10971097
"@swc/core": true,
1098-
"@esbuild-plugins/node-globals-polyfill>esbuild": true,
1098+
"tsx>esbuild": true,
10991099
"webpack>terser-webpack-plugin>jest-worker": true,
11001100
"webpack>schema-utils": true,
11011101
"webpack>terser-webpack-plugin>serialize-javascript": true,

packages/snaps-execution-environments/lavamoat/webpack/node-process/policy.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -126,10 +126,10 @@
126126
"packages": {
127127
"eslint>debug>ms": true,
128128
"@metamask/providers>extension-port-stream>readable-stream>process": true,
129-
"istanbul-lib-report>supports-color": true
129+
"eslint>chalk>supports-color": true
130130
}
131131
},
132-
"istanbul-lib-report>supports-color>has-flag": {
132+
"eslint>chalk>supports-color>has-flag": {
133133
"globals": {
134134
"process.argv": true
135135
},
@@ -192,7 +192,7 @@
192192
"readable-stream>string_decoder>safe-buffer": true
193193
}
194194
},
195-
"istanbul-lib-report>supports-color": {
195+
"eslint>chalk>supports-color": {
196196
"builtin": {
197197
"os.release": true,
198198
"tty.isatty": true
@@ -202,7 +202,7 @@
202202
"process.platform": true
203203
},
204204
"packages": {
205-
"istanbul-lib-report>supports-color>has-flag": true,
205+
"eslint>chalk>supports-color>has-flag": true,
206206
"@metamask/providers>extension-port-stream>readable-stream>process": true
207207
}
208208
},

0 commit comments

Comments
 (0)