diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml index d40bfeb..fe858ac 100644 --- a/.github/workflows/node.js.yml +++ b/.github/workflows/node.js.yml @@ -27,4 +27,31 @@ jobs: node-version: ${{ matrix.node-version }} - run: npm install - run: npm run lint - - run: npm test + - name: Test + run: npm test -- --reporters=default --reporters=jest-junit + env: + JEST_JUNIT_OUTPUT_DIR: junit-report + JEST_JUNIT_OUTPUT_NAME: results.xml + + - name: Upload test report + if: ${{ always() }} + uses: actions/upload-artifact@v7 + with: + name: junit-xml-${{ matrix.node-version }} + path: junit-report/*.xml + retention-days: 1 + if-no-files-found: warn + + push-test-results: + name: Push test results + if: ${{ always() }} + needs: [build] + uses: Staffbase/test-monitoring-connector-junit/.github/workflows/connector-junit.yml@a695b35c6b678742bc696a378dc9a307e96cebcd # includes module-fetch retry fix (test-monitoring-connector-junit#12) + with: + artifact-pattern: junit-xml-* + glob: 'junit-report/*.xml' + connector-version: a695b35c6b678742bc696a378dc9a307e96cebcd # v2026.28.2 (per-test started_at fix) + app-id: ${{ vars.STAFFBASE_ACTIONS_CLIENT_ID }} + secrets: + service-secret: ${{ secrets.TEST_MONITORING_SERVICE_SECRET }} + app-private-key: ${{ secrets.STAFFBASE_ACTIONS_PRIVATE_KEY }} diff --git a/package-lock.json b/package-lock.json index 4453846..8b56c42 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,6 +23,7 @@ "eslint-plugin-n": "^17.24.0", "handlebars": "^4.7.9", "jest": "^30.2.0", + "jest-junit": "^17.0.0", "jsdoc-to-markdown": "^9.1.3", "pre-commit": "^2.0.0" }, @@ -5625,6 +5626,22 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/jest-junit": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/jest-junit/-/jest-junit-17.0.0.tgz", + "integrity": "sha512-RYWCkq4j59gUXj5DsgbIE7xFBZzu1gtibPhyjSjMmGaOTLnqlXhg7x9zuGCwgbCuMAyoyvk0Mi8wSrRR5uOeLA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "mkdirp": "^1.0.4", + "strip-ansi": "^6.0.1", + "uuid": "^14.0.0", + "xml": "^1.0.1" + }, + "engines": { + "node": ">=20.0.0" + } + }, "node_modules/jest-leak-detector": { "version": "30.3.0", "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-30.3.0.tgz", @@ -7925,6 +7942,20 @@ "punycode": "^2.1.0" } }, + "node_modules/uuid": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-14.0.1.tgz", + "integrity": "sha512-6ZxzVpzDXDa3bJWaHilVayA+BH/1zmxCJoVgvmqJnid/gPoKHxUrS/aC/T6LGQtNHT+XHG9fXPJB4d+IrU30Ew==", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist-node/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", @@ -8082,6 +8113,13 @@ "url": "https://github.com/sponsors/isaacs" } }, + "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/xmlcreate": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz", diff --git a/package.json b/package.json index 8d62e12..b857c44 100644 --- a/package.json +++ b/package.json @@ -44,6 +44,7 @@ "eslint-plugin-n": "^17.24.0", "handlebars": "^4.7.9", "jest": "^30.2.0", + "jest-junit": "^17.0.0", "jsdoc-to-markdown": "^9.1.3", "pre-commit": "^2.0.0" },