{"_id":"@alwaysonlabs/jest-html-test-report","_rev":"6-f3ee8bebba8ef6ea18a1db4730d61bb2","name":"@alwaysonlabs/jest-html-test-report","dist-tags":{"latest":"1.0.5"},"versions":{"1.0.0":{"name":"@alwaysonlabs/jest-html-test-report","version":"1.0.0","keywords":["jest","reporter","html","test","report","reporter","glow","dark-theme","jest-reporter","jest-test-report","jest-html-test-report"],"author":{"name":"John Ringler"},"license":"MIT","_id":"@alwaysonlabs/jest-html-test-report@1.0.0","maintainers":[{"name":"alwaysonlabs","email":"johnringler@icloud.com"}],"homepage":"https://github.com/alwaysonlabs/jest-html-test-report#readme","bugs":{"url":"https://github.com/alwaysonlabs/jest-html-test-report/issues"},"bin":{"jest-test-report":"bin/jest-test-report.js"},"dist":{"shasum":"517756d4af277c25781c0e50bd65024c4e8c9ed5","tarball":"https://registry.npmjs.org/@alwaysonlabs/jest-html-test-report/-/jest-html-test-report-1.0.0.tgz","fileCount":10,"integrity":"sha512-Oul+T9O5OelYpmUer6ayxapgJlZwLNk+SjERN8OGHojvcakNVOYyYVNFPcjGWHY8jz4Zo5yjTeuhvDjz4F1FRA==","signatures":[{"sig":"MEUCICCF8HXYIFKgmy8Lz4sa6VJ92lJoA6u56dhHWwFXoEF3AiEA7tXOSLNN6QH6gTP9SzvuWREk8KsHnsjBjGGl8PveXN8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":88819},"main":"index.js","engines":{"node":">=14.0.0"},"_npmUser":{"name":"alwaysonlabs","email":"johnringler@icloud.com"},"repository":{"url":"git+https://github.com/alwaysonlabs/jest-html-test-report.git","type":"git"},"_npmVersion":"10.7.0","description":"A sleek, modern HTML test reporter for Jest with a dark glow theme","directories":{},"_nodeVersion":"20.15.1","_hasShrinkwrap":false,"peerDependencies":{"jest":">=27.0.0"},"peerDependenciesMeta":{"jest":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/jest-html-test-report_1.0.0_1776122772176_0.17780428191461728","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@alwaysonlabs/jest-html-test-report","version":"1.0.1","keywords":["jest","reporter","html","test","report","reporter","glow","dark-theme","jest-reporter","jest-test-report","jest-html-test-report"],"author":{"name":"John Ringler"},"license":"MIT","_id":"@alwaysonlabs/jest-html-test-report@1.0.1","maintainers":[{"name":"alwaysonlabs","email":"johnringler@icloud.com"}],"homepage":"https://github.com/alwaysonlabs/jest-html-test-report#readme","bugs":{"url":"https://github.com/alwaysonlabs/jest-html-test-report/issues"},"bin":{"jest-test-report":"bin/jest-test-report.js"},"dist":{"shasum":"bec1544e60b50393da285bf3ecd5b454d29cffcb","tarball":"https://registry.npmjs.org/@alwaysonlabs/jest-html-test-report/-/jest-html-test-report-1.0.1.tgz","fileCount":10,"integrity":"sha512-YNBVxPKzQfEbT+zAxpzFC73WKXYEFIHx7dd9/AkDCbxAOtmpVPe8J5AQp8QXi4qzW5EouzXMn/V08uq6bLOLBQ==","signatures":[{"sig":"MEQCIChlAtLBjEvqNZs/ekau1Dp9imLDnW3coNmE6AF13gqhAiAPQiwXu7kJJ2yZkDCxLkAtYwWiMRqKbpJoNrZVl3wWrA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":89728},"main":"index.js","engines":{"node":">=14.0.0"},"_npmUser":{"name":"alwaysonlabs","email":"johnringler@icloud.com"},"repository":{"url":"git+https://github.com/alwaysonlabs/jest-html-test-report.git","type":"git"},"_npmVersion":"10.7.0","description":"A sleek, modern HTML test reporter for Jest with a dark glow theme","directories":{},"_nodeVersion":"20.15.1","_hasShrinkwrap":false,"peerDependencies":{"jest":">=27.0.0"},"peerDependenciesMeta":{"jest":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/jest-html-test-report_1.0.1_1776124923146_0.9301968107305087","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@alwaysonlabs/jest-html-test-report","version":"1.0.2","keywords":["jest","reporter","html","test","test-report","report","reporter","glow","dark-theme","jest-reporter","jest-test-report","jest-html-test-report"],"author":{"name":"John Ringler"},"license":"MIT","_id":"@alwaysonlabs/jest-html-test-report@1.0.2","maintainers":[{"name":"alwaysonlabs","email":"johnringler@icloud.com"}],"homepage":"https://github.com/alwaysonlabs/jest-html-test-report#readme","bugs":{"url":"https://github.com/alwaysonlabs/jest-html-test-report/issues"},"bin":{"jest-test-report":"bin/jest-test-report.js"},"dist":{"shasum":"8f56721e11763aa04213bf9e10d46c7684989fab","tarball":"https://registry.npmjs.org/@alwaysonlabs/jest-html-test-report/-/jest-html-test-report-1.0.2.tgz","fileCount":10,"integrity":"sha512-iD0WI1Y6dy0s6TgnXmphFm5ZLKktcDYhmA+86fbdlHeKEZM+slDHa/81XlievL2QHEboRlYrcGIJ0m+icmE+7g==","signatures":[{"sig":"MEYCIQCpkFP7FfWsQOJWDIVmNppkhrKZkNfe+9vwSBV2D9BOAgIhAN6JUWvnudWX54mglTVEjSD1VCAjGpLDNE7STrrirVNS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":89858},"main":"index.js","engines":{"node":">=14.0.0"},"gitHead":"6a6c408f0e3e2cd789a461d1513525ec5ff995ef","_npmUser":{"name":"alwaysonlabs","email":"johnringler@icloud.com"},"repository":{"url":"git+https://github.com/alwaysonlabs/jest-html-test-report.git","type":"git"},"_npmVersion":"11.6.2","description":"A sleek, modern HTML test reporter for Jest with a dark glow theme","directories":{},"_nodeVersion":"24.12.0","_hasShrinkwrap":false,"peerDependencies":{"jest":">=27.0.0"},"peerDependenciesMeta":{"jest":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/jest-html-test-report_1.0.2_1776179487797_0.23083333095628267","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@alwaysonlabs/jest-html-test-report","version":"1.0.3","keywords":["jest","reporter","html","test","test-report","report","reporter","glow","dark-theme","jest-reporter","jest-test-report","jest-html-test-report"],"author":{"name":"John Ringler"},"license":"MIT","_id":"@alwaysonlabs/jest-html-test-report@1.0.3","maintainers":[{"name":"alwaysonlabs","email":"johnringler@icloud.com"}],"homepage":"https://github.com/alwaysonlabs/jest-html-test-report#readme","bugs":{"url":"https://github.com/alwaysonlabs/jest-html-test-report/issues"},"bin":{"jest-test-report":"bin/jest-test-report.js"},"dist":{"shasum":"3331c70bc41f0caacda8ab4565861e64adcc138f","tarball":"https://registry.npmjs.org/@alwaysonlabs/jest-html-test-report/-/jest-html-test-report-1.0.3.tgz","fileCount":10,"integrity":"sha512-zH5Op2xF0XK/e5hNblSo1asBRzxQrUcewRNPDBNKff1MNNcKCrHMJOzzAAJc1ubat8aCg0G4NAOvnbDf30LF8A==","signatures":[{"sig":"MEYCIQCvRFzuQ35wmZsChlI+pqR39VpAPM7r3M4ZZaFiQo/YoQIhAJO23LpEtffPLb5cRbollLR0/sa8rTEfpurl11KDTGMZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":89858},"main":"index.js","engines":{"node":">=14.0.0"},"gitHead":"6a6c408f0e3e2cd789a461d1513525ec5ff995ef","_npmUser":{"name":"alwaysonlabs","email":"johnringler@icloud.com"},"repository":{"url":"git+https://github.com/alwaysonlabs/jest-html-test-report.git","type":"git"},"_npmVersion":"11.6.2","description":"A sleek, modern HTML test reporter for Jest with a dark glow theme","directories":{},"_nodeVersion":"24.12.0","_hasShrinkwrap":false,"peerDependencies":{"jest":">=27.0.0"},"peerDependenciesMeta":{"jest":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/jest-html-test-report_1.0.3_1776179552280_0.5319049465007164","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@alwaysonlabs/jest-html-test-report","version":"1.0.4","keywords":["jest","reporter","html","test","test-report","report","reporter","glow","dark-theme","jest-reporter","jest-test-report","jest-html-test-report"],"author":{"name":"John Ringler"},"license":"MIT","_id":"@alwaysonlabs/jest-html-test-report@1.0.4","maintainers":[{"name":"alwaysonlabs","email":"johnringler@icloud.com"}],"homepage":"https://github.com/alwaysonlabs/jest-html-test-report#readme","bugs":{"url":"https://github.com/alwaysonlabs/jest-html-test-report/issues"},"bin":{"jest-test-report":"bin/jest-test-report.js"},"dist":{"shasum":"275e6cd35f87df12cd3de05fde38340856da0213","tarball":"https://registry.npmjs.org/@alwaysonlabs/jest-html-test-report/-/jest-html-test-report-1.0.4.tgz","fileCount":10,"integrity":"sha512-5zRLgxDKvPjjnwmY47T1wXp9iCVaRsFXHM6yUlSQmKJDwmdbiaMRJfFG9ypZRUa3ocQmmUni0iHZX9gr1ZcT5A==","signatures":[{"sig":"MEQCIFmQktwycqLy93KUF9vYTM71IVuzyeptbHXLzON/ne/+AiAJBqx6Odfcs2lp3oLbthFebCnwdcfBg1RtyYr2RCfCvw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":89962},"main":"index.js","engines":{"node":">=14.0.0"},"gitHead":"a7177b66f7f216e61f960b0134e3954a0274cf06","_npmUser":{"name":"alwaysonlabs","email":"johnringler@icloud.com"},"repository":{"url":"git+https://github.com/alwaysonlabs/jest-html-test-report.git","type":"git"},"_npmVersion":"11.6.2","description":"A sleek, modern HTML test reporter for Jest with a dark glow theme","directories":{},"_nodeVersion":"24.12.0","_hasShrinkwrap":false,"peerDependencies":{"jest":">=27.0.0"},"peerDependenciesMeta":{"jest":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/jest-html-test-report_1.0.4_1776462679570_0.5728332007074781","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@alwaysonlabs/jest-html-test-report","version":"1.0.5","description":"A sleek, modern HTML test reporter for Jest with a dark glow theme","author":{"name":"John Ringler"},"main":"index.js","bin":{"jest-test-report":"bin/jest-test-report.js"},"keywords":["jest","reporter","html","test","test-report","report","reporter","glow","dark-theme","jest-reporter","jest-test-report","jest-html-test-report"],"license":"MIT","peerDependencies":{"jest":">=27.0.0"},"peerDependenciesMeta":{"jest":{"optional":false}},"engines":{"node":">=14.0.0"},"repository":{"type":"git","url":"git+https://github.com/alwaysonlabs/jest-html-test-report.git"},"bugs":{"url":"https://github.com/alwaysonlabs/jest-html-test-report/issues"},"homepage":"https://github.com/alwaysonlabs/jest-html-test-report#readme","gitHead":"3474866b8c08ae98ec7eba6e51054100f93f1d1a","_id":"@alwaysonlabs/jest-html-test-report@1.0.5","_nodeVersion":"24.12.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-O8pcspQL/jlIri/0HIPMsUpNQMW+do7pf7ucJweoUXW0UaZ3+91OIetzLZ9DrqtnVfMi1Nm6LGGqdl1i5ztbOg==","shasum":"e1bb1480e10be6eb1028dce906ce5b1996543358","tarball":"https://registry.npmjs.org/@alwaysonlabs/jest-html-test-report/-/jest-html-test-report-1.0.5.tgz","fileCount":10,"unpackedSize":90068,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBZdvYXM3MJIj5ODX8XW2AApf7FYSHJ47sINulp9p5rEAiBfYlO/Xhjp4I0RoRSfbgdxU8NETZovguwnNVj9g8g2jw=="}]},"_npmUser":{"name":"alwaysonlabs","email":"johnringler@icloud.com"},"directories":{},"maintainers":[{"name":"alwaysonlabs","email":"johnringler@icloud.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/jest-html-test-report_1.0.5_1776466414789_0.9235541077021239"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-13T23:26:12.040Z","modified":"2026-04-17T22:53:35.066Z","1.0.0":"2026-04-13T23:26:12.340Z","1.0.1":"2026-04-14T00:02:03.298Z","1.0.2":"2026-04-14T15:11:27.949Z","1.0.3":"2026-04-14T15:12:32.437Z","1.0.4":"2026-04-17T21:51:19.708Z","1.0.5":"2026-04-17T22:53:34.967Z"},"bugs":{"url":"https://github.com/alwaysonlabs/jest-html-test-report/issues"},"author":{"name":"John Ringler"},"license":"MIT","homepage":"https://github.com/alwaysonlabs/jest-html-test-report#readme","keywords":["jest","reporter","html","test","test-report","report","reporter","glow","dark-theme","jest-reporter","jest-test-report","jest-html-test-report"],"repository":{"type":"git","url":"git+https://github.com/alwaysonlabs/jest-html-test-report.git"},"description":"A sleek, modern HTML test reporter for Jest with a dark glow theme","maintainers":[{"name":"alwaysonlabs","email":"johnringler@icloud.com"}],"readme":"# jest-html-test-report\n\nA sleek, modern HTML test reporter for [Jest](https://jestjs.io/) with a dark glow theme.\n\n- Self-contained HTML output — no external CDN dependencies\n- Responsive layout that works on any screen size\n- Execution summary with risk level indicator\n- Expandable / collapsable test suites\n- Filter by All / Passed / Failed / Skipped\n- Full-text search across test names and suite paths\n- \"Copy Summary to Clipboard\" button generates a plain-text digest, ready to paste into an email or message\n- Dark theme by default; toggleable light theme\n- Logo support (PNG, JPG, SVG) — embedded as base64\n\n---\n\n## Preview\n\nSample report available [here](https://alwaysonlabs.github.io/jest-html-test-report/sample-report.html).\n\n![Preview](assets/preview.gif)\n\n---\n\n## Installation\n\n```bash\nnpm install --save-dev @alwaysonlabs/jest-html-test-report\n# or\nyarn add -D @alwaysonlabs/jest-html-test-report\n```\n\n> **Peer dependency:** Jest 27 or later is required.\n\n---\n\n## Two ways to generate a report\n\n### Option A — Reporter (automatic, runs during `jest`)\n\nConfigure once in `jest.config.js` and the report is written every time `jest` runs.\nSee [Quick start](#quick-start) below.\n\n### Option B — CLI (from an existing JSON file)\n\nIf you already have a Jest JSON output file (e.g. from CI), you can generate the report without touching your Jest config:\n\n```bash\n# 1. Run Jest with JSON output (one-time flag, or add to your npm script)\njest --json --outputFile=jest-results.json\n\n# 2. Generate the HTML report\nnpx jest-test-report jest-results.json\n# → writes jest-test-report.html in the current directory\n```\n\n**CLI options:**\n\n```text\njest-test-report <results.json> [options]\n\n  -o, --output  <path>      Output HTML path         [default: ./jest-test-report.html]\n  -t, --title   <text>      Report page title         [default: \"Test Report\"]\n  -l, --logo    <path>      Path to a logo image (PNG/JPG/SVG)\n      --theme   dark|light  Color theme            [default: dark]\n      --open                Open report in browser after generation\n      --no-env              Omit the Environment section\n      --sort    default|status|duration|alphabetical\n  -h, --help                Show help\n```\n\n**npm script example:**\n\n```json\n{\n  \"scripts\": {\n    \"test\":        \"jest --json --outputFile=jest-results.json\",\n    \"test:report\": \"jest-test-report jest-results.json -o reports/test-report.html -t \\\"My App\\\"\"\n  }\n}\n```\n\n---\n\n## Quick start\n\nAdd the reporter to your Jest configuration.  \nYou can use `jest.config.js`, `jest.config.ts`, or the `\"jest\"` key in `package.json`.\n\n### jest.config.js\n\n```js\nmodule.exports = {\n  reporters: [\n    'default',                            // keeps the normal terminal output\n    '@alwaysonlabs/jest-html-test-report', // adds the HTML report with defaults\n  ],\n};\n```\n\n### With options\n\n```js\nmodule.exports = {\n  reporters: [\n    'default',\n    [\n      '@alwaysonlabs/jest-html-test-report',\n      {\n        outputPath: './reports/test-report.html',\n        pageTitle:  'My App — Test Report',\n        logo:       './assets/logo.png',\n        openReport: true,\n      },\n    ],\n  ],\n};\n```\n\n### package.json\n\n```json\n{\n  \"jest\": {\n    \"reporters\": [\n      \"default\",\n      [\"@alwaysonlabs/jest-html-test-report\", { \"outputPath\": \"./test-report.html\" }]\n    ]\n  }\n}\n```\n\nAfter running `jest` (or `npx jest`) the HTML file is written to `outputPath` and a message is printed:\n\n```text\n[jest-html-test-report] Report saved → test-report.html\n```\n\n---\n\n## Configuration options\n\nAll options are optional. Pass them as the second element of the reporter tuple.\n\n| Option | Type | Default | Description |\n| ------ | ---- | ------- | ----------- |\n| `outputPath` | `string` | `\"./jest-test-report.html\"` | File path (relative to the project root) where the HTML report is written. Intermediate directories are created automatically. |\n| `pageTitle` | `string` | `\"Test Report\"` | Title shown in the browser tab and at the top of the report. |\n| `logo` | `string \\| null` | `null` | Path to a logo image (PNG, JPG, GIF, SVG). The image is base64-encoded and embedded into the HTML so the report is fully portable. |\n| `theme` | `\"dark\" \\| \"light\"` | `\"dark\"` | Initial color theme. The user can also toggle the theme at runtime with the sun icon in the header. |\n| `includeFailureMsg` | `boolean` | `true` | When `true`, the full failure message / stack trace is shown below each failing test. |\n| `includeConsoleLog` | `boolean` | `false` | When `true`, console output captured during each test file is included in the report. |\n| `sort` | `\"default\" \\| \"status\" \\| \"duration\" \\| \"alphabetical\"` | `\"default\"` | Sort order for test suites. `\"status\"` puts failed suites first; `\"duration\"` puts the slowest suites first. |\n| `executionTimeWarningThreshold` | `number` | `5` | Threshold in **seconds**. Tests that exceed this duration are flagged with a ⚠ in the report. |\n| `openReport` | `boolean` | `false` | Automatically open the report in the default browser after it is generated. |\n| `showEnvironment` | `boolean` | `true` | Render the Environment section (Node version, platform, Jest version, timestamp) at the bottom of the report. |\n| `customStylePath` | `string \\| null` | `null` | Path to a `.css` file whose contents are appended **after** the built-in styles, letting you override any style without forking the package. |\n| `showSupportButton` | `boolean` | `true` | Show the support button in the report header. Set to `false` to hide it. |\n| `executionSummarySubtitle` | `string` | `\"Quality metrics at a glance for stakeholders\"` | Subtitle text displayed beneath the \"Execution Summary\" heading. |\n| `riskThresholds` | `object` | `{ low: 90, medium: 70 }` | Pass-rate percentages that determine the **Risk Level** label and donut-chart color. See below. |\n| `durationThresholds` | `number[]` | `[300, 1000, 2000]` | Millisecond breakpoints used to bucket tests in the **Duration Distribution** card. N values produce N+1 buckets. See below. |\n\n### `riskThresholds`\n\n```js\nriskThresholds: {\n  low:    90,   // pass rate >= 90 % → \"Low\"   (green)\n  medium: 70,   // pass rate >= 70 % → \"Medium\" (amber)\n                // pass rate  < 70 % → \"High\"   (red)\n}\n```\n\n### `durationThresholds`\n\nAn array of millisecond values that define the boundaries of the **Duration Distribution** chart shown in the report. N thresholds produce N+1 buckets: everything below the first value, each intermediate range, and everything above the last value. The array is sorted automatically, so order does not matter.\n\n```js\n// Default — creates four buckets:\n//   < 300 ms | 300–1000 ms | 1000–2000 ms | > 2000 ms\ndurationThresholds: [300, 1000, 2000]\n```\n\nCustom example for a faster suite:\n\n```js\n// Creates three buckets:\n//   < 50 ms | 50–200 ms | > 200 ms\ndurationThresholds: [50, 200]\n```\n\n### Full example\n\n```js\n// jest.config.js\nmodule.exports = {\n  reporters: [\n    'default',\n    [\n      '@alwaysonlabs/jest-html-test-report',\n      {\n        outputPath:   './reports/index.html',\n        pageTitle:    'Acme Corp — CI Test Report',\n        logo:         './assets/logo.svg',\n        theme:        'dark',\n        sort:         'status',\n        includeFailureMsg:  true,\n        includeConsoleLog:  false,\n        executionTimeWarningThreshold: 3,\n        openReport:   false,\n        showEnvironment: true,\n        customStylePath: './jest-report-overrides.css',\n        riskThresholds: {\n          low:    95,\n          medium: 80,\n        },\n        durationThresholds: [100, 500, 1500],\n      },\n    ],\n  ],\n};\n```\n\n---\n\n## Custom styles\n\nCreate a plain CSS file and point `customStylePath` at it.  \nYour rules are appended last, so they take precedence over the defaults.\n\n```css\n/* jest-report-overrides.css */\n\n:root {\n  /* swap accent color from teal to purple */\n  --accent:        #a855f7;\n  --accent-bright: #c084fc;\n  --accent-glow:   rgba(168, 85, 247, 0.18);\n  --accent-border: rgba(168, 85, 247, 0.22);\n}\n\n.header-title h1 {\n  font-size: 1.3rem;\n}\n```\n\n---\n\n## Integrating with CI\n\nBecause the report is a single, self-contained HTML file you can:\n\n- **Archive it** as a CI artifact (GitHub Actions, GitLab CI, CircleCI, etc.)\n- **Serve it** with any static-file server for team review\n- **Email it** — use the built-in \"Copy Summary to Clipboard\" button to grab a plain-text digest\n\n### GitHub Actions example\n\n```yaml\n- name: Run tests\n  run: npx jest\n\n- name: Upload test report\n  if: always()\n  uses: actions/upload-artifact@v4\n  with:\n    name: jest-test-report\n    path: jest-test-report.html\n```\n\n---\n\n## License\n\nMIT\n","readmeFilename":"README.md"}