diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 84540ac..12b751b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -63,3 +63,10 @@ jobs: - name: Run Jest run: npm run test + + - name: Generate coverage report + if: always() + uses: mridang/action-test-reporter@v3 + with: + results-path: '.out/junit.xml' + coverage-path: '.out/lcov.info' diff --git a/jest.config.mjs b/jest.config.mjs index c8a09b1..0ed52a4 100644 --- a/jest.config.mjs +++ b/jest.config.mjs @@ -33,4 +33,14 @@ export default { moduleNameMapper: { '^(\\.{1,2}/.*)\\.js$': '$1', }, + reporters: [ + 'default', + [ + 'jest-junit', + { + outputDirectory: './.out', + outputName: 'junit.xml', + }, + ], + ], }; diff --git a/package-lock.json b/package-lock.json index ca697cc..51da40e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -41,6 +41,7 @@ "axios": "^1.9.0", "eslint": "^9.0.0", "jest": "^30.0.3", + "jest-junit": "^16.0.0", "jsonwebtoken": "^9.0.2", "knip": "^5.43.6", "nock": "^14.0.5", @@ -11672,6 +11673,22 @@ "fsevents": "^2.3.2" } }, + "node_modules/jest-junit": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/jest-junit/-/jest-junit-16.0.0.tgz", + "integrity": "sha512-A94mmw6NfJab4Fg/BlvVOUXzXgF0XIH6EmTgJ5NDPp4xoKq0Kr7sErb+4Xs9nZvu58pJojz5RFGpqnZYJTrRfQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "mkdirp": "^1.0.4", + "strip-ansi": "^6.0.1", + "uuid": "^8.3.2", + "xml": "^1.0.1" + }, + "engines": { + "node": ">=10.12.0" + } + }, "node_modules/jest-leak-detector": { "version": "30.0.2", "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-30.0.2.tgz", @@ -14504,6 +14521,19 @@ "node": ">=16 || 14 >=14.17" } }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -20811,6 +20841,16 @@ "dev": true, "license": "MIT" }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/v8-to-istanbul": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", @@ -21082,6 +21122,13 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/xml": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", + "integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==", + "dev": true, + "license": "MIT" + }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", diff --git a/package.json b/package.json index 7088565..f5f515e 100644 --- a/package.json +++ b/package.json @@ -73,6 +73,7 @@ "axios": "^1.9.0", "eslint": "^9.0.0", "jest": "^30.0.3", + "jest-junit": "^16.0.0", "jsonwebtoken": "^9.0.2", "knip": "^5.43.6", "nock": "^14.0.5",