From 41275832248bbedfe6b62dabf47bb32f48afa635 Mon Sep 17 00:00:00 2001 From: PeterYinusa <53189696+PeterYinusa@users.noreply.github.com> Date: Wed, 4 May 2022 17:02:42 +0100 Subject: [PATCH] Jest tests - incremental coverage (#14612) * add jest-it-up dependancy * add reporter * post test run jest-it-up * Add CI check * update coverage * deduplicate dependancies --- .circleci/config.yml | 7 ++++ development/jest.config.js | 2 +- jest.config.js | 10 ++--- package.json | 3 +- yarn.lock | 81 ++++++++++++++++++++++++++++++++------ 5 files changed, 85 insertions(+), 18 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index bf6513533..749402c7f 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -670,6 +670,13 @@ jobs: - run: name: test:coverage:jest command: yarn test:coverage:jest + - run: + name: Validate coverage thresholds + command: | + if ! git diff --exit-code jest.config.js development/jest.config.js; then + echo "Detected changes in coverage thresholds" + exit 1 + fi - persist_to_workspace: root: . paths: diff --git a/development/jest.config.js b/development/jest.config.js index e4218c21f..fe594713e 100644 --- a/development/jest.config.js +++ b/development/jest.config.js @@ -2,7 +2,7 @@ module.exports = { displayName: '/development', collectCoverageFrom: ['/**/*.js'], coverageDirectory: '../jest-coverage/development/', - coverageReporters: ['html', 'text-summary'], + coverageReporters: ['html', 'text-summary', 'json-summary'], coverageThreshold: { './development/build/transforms/**/*.js': { branches: 100, diff --git a/jest.config.js b/jest.config.js index e366a29fd..d64ca0864 100644 --- a/jest.config.js +++ b/jest.config.js @@ -6,13 +6,13 @@ module.exports = { ], coverageDirectory: './jest-coverage/main', coveragePathIgnorePatterns: ['.stories.js', '.snap'], - coverageReporters: ['html', 'text-summary'], + coverageReporters: ['html', 'text-summary', 'json-summary'], coverageThreshold: { global: { - branches: 35, - functions: 37, - lines: 43, - statements: 43, + branches: 44, + functions: 42, + lines: 48, + statements: 48, }, './app/scripts/controllers/permissions/**/*.js': { branches: 100, diff --git a/package.json b/package.json index 3481d5310..bdce0f3cb 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "test:e2e:firefox:snaps": "SELENIUM_BROWSER=firefox node test/e2e/run-all.js --snaps", "test:e2e:single": "node test/e2e/run-e2e-test.js", "test:coverage:mocha": "nyc --reporter=text --reporter=html yarn test:unit:mocha", - "test:coverage:jest": "yarn test:unit:jest --coverage --maxWorkers=2", + "test:coverage:jest": "yarn test:unit:jest --coverage --maxWorkers=2 && yarn jest-it-up -m 5", "ganache:start": "./development/run-ganache.sh", "sentry:publish": "node ./development/sentry-publish.js", "lint": "yarn lint:prettier && yarn lint:eslint && yarn lint:tsc && yarn lint:styles", @@ -325,6 +325,7 @@ "improved-yarn-audit": "^3.0.0", "jest": "^26.6.3", "jest-canvas-mock": "^2.3.1", + "jest-it-up": "^2.0.2", "jsdom": "^11.2.0", "koa": "^2.7.0", "lavamoat": "^6.1.2", diff --git a/yarn.lock b/yarn.lock index 72003be25..15080a0bf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2197,6 +2197,38 @@ ws "*" xtend "^4.0.0" +"@inquirer/confirm@^0.0.14-alpha.0": + version "0.0.14-alpha.0" + resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-0.0.14-alpha.0.tgz#4a759c6def5ecd73bc239e090ee6197f74f52dbd" + integrity sha512-MTMCp/jUHJUB0IVkV5utQ1NUE3tqH2W0OtYXByW+ykoRXLiaYrv8vYtx6j0/rOiDHhNjNqTEIWomQx16w1x0uQ== + dependencies: + "@inquirer/core" "^0.0.15-alpha.0" + "@inquirer/input" "^0.0.15-alpha.0" + chalk "^4.1.1" + +"@inquirer/core@^0.0.15-alpha.0": + version "0.0.15-alpha.0" + resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-0.0.15-alpha.0.tgz#08b6439f3998669d1ba0165c0c5f91736b0c7848" + integrity sha512-aytWU6/yM9HkZ09BrgfTJlVsZjmxoiO1cBL5tlkO/jYe4ZuU84rHWnFFxorRzkmT6gkTs1L9TUKaeK3tbyJmJw== + dependencies: + ansi-escapes "^4.2.1" + chalk "^4.1.1" + cli-spinners "^2.6.0" + cli-width "^3.0.0" + lodash "^4.17.21" + mute-stream "^0.0.8" + run-async "^2.3.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +"@inquirer/input@^0.0.15-alpha.0": + version "0.0.15-alpha.0" + resolved "https://registry.yarnpkg.com/@inquirer/input/-/input-0.0.15-alpha.0.tgz#60556547845775ac332d7b3406717f361b3ef721" + integrity sha512-h3mxEK9xTtdAX6a+S/pYRVRTxpnjOPQgQADpgFar/yQqklyBRM5+uX1YRRQG+uwU0IzpI18viPnEdibxrY7Kyw== + dependencies: + "@inquirer/core" "^0.0.15-alpha.0" + chalk "^4.1.1" + "@istanbuljs/load-nyc-config@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.0.0.tgz#10602de5570baea82f8afbfa2630b24e7a8cfe5b" @@ -5609,7 +5641,7 @@ ansi-colors@^3.0.0: resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== -ansi-colors@^4.1.1: +ansi-colors@^4.1.0, ansi-colors@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== @@ -7840,10 +7872,10 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^4.0.0, chalk@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" - integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: ansi-styles "^4.1.0" supports-color "^7.1.0" @@ -8144,6 +8176,11 @@ cli-cursor@^2.1.0: dependencies: restore-cursor "^2.0.0" +cli-spinners@^2.6.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.1.tgz#adc954ebe281c37a6319bfa401e6dd2488ffb70d" + integrity sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g== + cli-table3@0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.0.tgz#b7b1bc65ca8e7b5cef9124e13dc2b21e2ce4faee" @@ -8159,6 +8196,11 @@ cli-width@^2.0.0: resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= +cli-width@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" + integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== + clipboard@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.4.tgz#836dafd66cf0fea5d71ce5d5b0bf6e958009112d" @@ -8433,6 +8475,11 @@ commander@^6.1.0, commander@^6.2.1: resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== +commander@^9.0.0: + version "9.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-9.2.0.tgz#6e21014b2ed90d8b7c9647230d8b7a94a4a419a9" + integrity sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w== + comment-parser@1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-1.2.4.tgz#489f3ee55dfd184a6e4bffb31baba284453cb760" @@ -16287,6 +16334,15 @@ jest-haste-map@^26.6.2: optionalDependencies: fsevents "^2.1.2" +jest-it-up@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/jest-it-up/-/jest-it-up-2.0.2.tgz#c8c38d14fd4a9131c12f6947baa2063554c0738d" + integrity sha512-xup3Lv1uc+ihGwyFLjZOqY2L7m91TyBp/TRJxS7PYAVQc/vd3NbkPyypUlT59sQDfW9uULF9jLCedr7jABDNnA== + dependencies: + "@inquirer/confirm" "^0.0.14-alpha.0" + ansi-colors "^4.1.0" + commander "^9.0.0" + jest-jasmine2@^26.6.3: version "26.6.3" resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz#adc3cf915deacb5212c93b9f3547cd12958f2edd" @@ -19573,6 +19629,11 @@ mute-stream@0.0.7: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= +mute-stream@^0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== + nan@^2.11.1, nan@^2.12.1, nan@^2.13.2, nan@^2.14.0: version "2.15.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" @@ -24201,12 +24262,10 @@ run-async@^0.1.0: dependencies: once "^1.3.0" -run-async@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" - integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA= - dependencies: - is-promise "^2.1.0" +run-async@^2.2.0, run-async@^2.3.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" + integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== run-parallel@^1.1.9: version "1.1.9"