{"_id":"@ai-testing-tool/forge-jest","_rev":"5-59baf474096158955b4a9a06fd3a3f69","name":"@ai-testing-tool/forge-jest","dist-tags":{"latest":"2.2.1"},"versions":{"2.0.0":{"name":"@ai-testing-tool/forge-jest","version":"2.0.0","keywords":["ai-testing-tool","jest","jest-reporter","testing","jira"],"license":"Apache-2.0","_id":"@ai-testing-tool/forge-jest@2.0.0","maintainers":[{"name":"jvuvo2006","email":"vuvo.junior@gmail.com"},{"name":"jsoft_publisher","email":"jsoftconnector@gmail.com"}],"dist":{"shasum":"77957860c3c52f1f23fe619f807de76104b4c74b","tarball":"https://registry.npmjs.org/@ai-testing-tool/forge-jest/-/forge-jest-2.0.0.tgz","fileCount":9,"integrity":"sha512-lWBIpnjW8FxM1jFci8Pp3daiWj+8fioSbQcWl5G/+GM1hbfX1wZfl0AX/WB8H9cEfeXrfsVMP4c5kacVnjsOQA==","signatures":[{"sig":"MEUCIFUEyRZbYfO7H+0AhL9+uZo+hXEmBoxsdwiCRWJhactHAiEAi2AAG4kahjWjGEUQGhJNqzJeFrxbch6Bqvhbj/xv1wE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28020},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./jest":{"types":"./dist/jest.d.ts","default":"./dist/jest.js"},"./package.json":"./package.json"},"gitHead":"fd15af83f1cde54acd20f41e55fc85e67cb7da35","scripts":{"test":"vitest run --config ../examples/single/vitest/vitest.config.ts --project qa-jest","build":"npm run clean && npx tsc --project tsconfig.build.json","clean":"rm -rf dist","prepublishOnly":"npm test"},"_npmUser":{"name":"jsoft_publisher","email":"jsoftconnector@gmail.com"},"_npmVersion":"10.9.2","description":"AI Testing Tool Jest reporter — ingest or file modes via @ai-testing-tool/forge-commons","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@ai-testing-tool/forge-commons":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"peerDependencies":{"jest":">=29.0.0"},"_npmOperationalInternal":{"tmp":"tmp/forge-jest_2.0.0_1789001751766_0.028369349641401254","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@ai-testing-tool/forge-jest","version":"2.1.0","keywords":["ai-testing-tool","jest","jest-reporter","testing","jira"],"license":"Apache-2.0","_id":"@ai-testing-tool/forge-jest@2.1.0","maintainers":[{"name":"jsoft_publisher","email":"jsoftconnector@gmail.com"}],"dist":{"shasum":"8d4984290c19742cf429f4431baf9c207397b0a4","tarball":"https://registry.npmjs.org/@ai-testing-tool/forge-jest/-/forge-jest-2.1.0.tgz","fileCount":9,"integrity":"sha512-DfuhUOuClJKOiSdO0NuEciKG+9iSnozJzpQXW1TZzbOf3Y+XyFGV2ov7/alwIY/mSaD0bLlhEl6BkpQAHgIlpw==","signatures":[{"sig":"MEUCIHo+r7MpcyV4cI+R6OIK5QFzkIEhBjOSutaysweQ5jSOAiEAuhNbmjxVI+pumAkZKSdc8J0dwSQqY4gmzJminm3Xaeo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29168},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./jest":{"types":"./dist/jest.d.ts","default":"./dist/jest.js"},"./package.json":"./package.json"},"gitHead":"6a6bbfb270e7d4d34b9cc942861f53ccc572f130","scripts":{"test":"vitest run --config ../examples/single/vitest/vitest.config.ts --project qa-jest","build":"npm run clean && npx tsc --project tsconfig.build.json","clean":"rm -rf dist","prepublishOnly":"npm test"},"_npmUser":{"name":"jsoft_publisher","email":"jsoftconnector@gmail.com"},"_npmVersion":"10.9.2","description":"AI Testing Tool Jest reporter — ingest or file modes via @ai-testing-tool/forge-commons","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@ai-testing-tool/forge-commons":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"peerDependencies":{"jest":">=29.0.0"},"_npmOperationalInternal":{"tmp":"tmp/forge-jest_2.1.0_1789133715749_0.49204480679321283","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@ai-testing-tool/forge-jest","version":"2.2.0","keywords":["ai-testing-tool","jest","jest-reporter","testing","jira"],"license":"Apache-2.0","_id":"@ai-testing-tool/forge-jest@2.2.0","maintainers":[{"name":"jsoft_publisher","email":"jsoftconnector@gmail.com"}],"dist":{"shasum":"961994bccce91581fc08c8170f008f98804d7285","tarball":"https://registry.npmjs.org/@ai-testing-tool/forge-jest/-/forge-jest-2.2.0.tgz","fileCount":11,"integrity":"sha512-XubRuP9QMd3zg5Cerxce1jXViCGXbSx8064rvZc7sutRdTSkmR82j+mnBTyzQ/78SdEGsoZynIft2PIwCfO4pg==","signatures":[{"sig":"MEQCICgpg9lrBeZwoZjsdunu9FbmSw6w+W5+qsFAgvo4PKLmAiBnV7vIIe13ErspJisjfJCyvmB+ysG8Jrp80iiFt3u/0w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFyBBm9l3AMDcXB7MvdYir5nnrtxDM+Eu7Tr+jlrRHp5AiEA56uUXmz69r2oBrn+GgbuLVsjaZp2jFRYsdd2gyJ0oUY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31325},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./jest":{"types":"./dist/jest.d.ts","default":"./dist/jest.js"},"./package.json":"./package.json"},"gitHead":"41f9e959765c56709746d085839a7a2c59bab48e","scripts":{"test":"vitest run --config ../examples/single/vitest/vitest.config.ts --project qa-jest","build":"npm run clean && npx tsc --project tsconfig.build.json","clean":"rm -rf dist","prepublishOnly":"npm test"},"_npmUser":{"name":"jsoft_publisher","email":"jsoftconnector@gmail.com"},"_npmVersion":"10.9.2","description":"AI Testing Tool Jest reporter — ingest or file modes via @ai-testing-tool/forge-commons","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@ai-testing-tool/forge-commons":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"peerDependencies":{"jest":">=29.0.0"},"_npmOperationalInternal":{"tmp":"tmp/forge-jest_2.2.0_1789744312061_0.34108209499044095","host":"s3://npm-registry-packages-npm-production"}},"2.2.1":{"_id":"@ai-testing-tool/forge-jest@2.2.1","dist":{"shasum":"e4f172b05eb9877e6e2639a7ab762b838004e4eb","tarball":"https://registry.npmjs.org/@ai-testing-tool/forge-jest/-/forge-jest-2.2.1.tgz","fileCount":11,"integrity":"sha512-aCmLtHd7dnFXViYpB1DeFhhCBMrvAdOs2vy/+CCz8vJBKte9ZuNCXlXG1Ka6MUFNNUz4S8IrmHxRLHhbjBZxsA==","signatures":[{"sig":"MEYCIQDK0+FkZK6ahmgpuqXjJPIOjbENUE0b33AZNyv8xPS9aQIhANBxyY0YsEohw+qNy1o+sDfU2XhFOMwnwazLCWVySqjv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGjPRGMoQdzZrtqS8el8ikRhKYUG6fV3OLRb+yjqSqQFAiEAuuejQCJBlKK4ar1O5Z4dcrjjuNdPjZCtDRUf6o6/Cmw="}],"unpackedSize":31325},"main":"./dist/index.js","name":"@ai-testing-tool/forge-jest","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./jest":{"types":"./dist/jest.d.ts","default":"./dist/jest.js"},"./package.json":"./package.json"},"gitHead":"3331e6bac1ab0d878687e6f9cfd1e7d4110ea625","license":"Apache-2.0","scripts":{"test":"vitest run --config ../examples/single/vitest/vitest.config.ts --project qa-jest","build":"npm run clean && npx tsc --project tsconfig.build.json","clean":"rm -rf dist","prepublishOnly":"npm test"},"version":"2.2.1","_npmUser":{"name":"jsoft_publisher","email":"jsoftconnector@gmail.com"},"keywords":["ai-testing-tool","jest","jest-reporter","testing","jira"],"_npmVersion":"10.9.2","description":"AI Testing Tool Jest reporter — ingest or file modes via @ai-testing-tool/forge-commons","directories":{},"maintainers":[{"name":"jsoft_publisher","email":"jsoftconnector@gmail.com"}],"_nodeVersion":"22.14.0","dependencies":{"@ai-testing-tool/forge-commons":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"peerDependencies":{"jest":">=29.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/forge-jest_2.2.1_1790359146180_0.20437495648312765"}}},"time":{"created":"2026-09-10T00:55:51.505Z","modified":"2026-09-25T17:59:06.575Z","2.0.0":"2026-09-10T00:55:51.914Z","2.1.0":"2026-09-11T13:35:15.878Z","2.2.0":"2026-09-18T15:11:52.172Z","2.2.1":"2026-09-25T17:59:06.250Z"},"license":"Apache-2.0","keywords":["ai-testing-tool","jest","jest-reporter","testing","jira"],"description":"AI Testing Tool Jest reporter — ingest or file modes via @ai-testing-tool/forge-commons","maintainers":[{"name":"jsoft_publisher","email":"jsoftconnector@gmail.com"}],"readme":"# @ai-testing-tool/forge-jest\n\nJest reporter for **AI Testing Tool** (Jira Forge quality hub).\n\n## Install\n\n```bash\nnpm install -D @ai-testing-tool/forge-jest @ai-testing-tool/forge-commons\n```\n\n## Configure\n\n```js\n// jest.config.js\nmodule.exports = {\n  testEnvironment: 'node',\n  reporters: [\n    'default',\n    [\n      '@ai-testing-tool/forge-jest',\n      {\n        // Defaults to mode=off (no credentials required)\n        // mode: 'ingest' | 'file' | 'off',\n        // projectKey: 'DEMO',\n      },\n    ],\n  ],\n};\n```\n\n### Modes\n\n| Mode | Behavior |\n| ---- | -------- |\n| `off` (default) | No network / file write |\n| `file` | Writes ingest payload (default `./ai-testing-tool-results.json`) |\n| `ingest` | POSTs the payload with `format: jest-json` |\n\nEnv (same as CLI): `AI_TESTING_TOOL_MODE`, `AI_TESTING_TOOL_PROJECT_KEY`, `AI_TESTING_TOOL_INGEST_URL`, `AI_TESTING_TOOL_INGEST_TOKEN`, `AI_TESTING_TOOL_LAUNCH_NAME`.\n\n## Helpers\n\n```js\nconst { qa } = require('@ai-testing-tool/forge-jest/jest');\n\ntest('AUTH-101 login', async () => {\n  await qa.suite('Auth');\n  await qa.suiteId('suite-uuid');\n  await qa.planId('plan-uuid');\n  await qa.plan('Smoke');\n  await qa.fixVersion('2.4.0');\n  await qa.sprintName('Sprint 42');\n  await qa.labels('test-auto,flaky');\n  await qa.step('open form', async () => {\n    expect(true).toBe(true);\n  });\n});\n```\n\nPrefer **Jira issue keys in test titles**.\n\nWith the `@ai-testing-tool/forge-jest` reporter loaded (use `--runInBand` so helpers share the reporter bridge), `qa.*` metadata is attached as `assertionResults[].meta.qa` on Path B ingest/file. The bridge is stored on Node `process` so it also works under **jsdom** (UI `*.test.tsx`) environments. Forge reads **plan / fix version / sprint from `meta.qa` only** (not top-level ingest payload fields).\n\n## Dual path\n\n**Path A — native JSON + CLI** (upload path; raw Jest JSON file):\n\n```bash\nnpx jest --json --outputFile=ai-testing-tool-results.json\nnpx @ai-testing-tool/forge-api-client --project DEMO --report ai-testing-tool-results.json\n```\n\n**Path B — @ai-testing-tool/forge-jest reporter** (`mode=ingest` or `mode=file`):\n\n```bash\nAI_TESTING_TOOL_MODE=ingest \\\nAI_TESTING_TOOL_PROJECT_KEY=DEMO \\\nAI_TESTING_TOOL_INGEST_URL=... \\\nAI_TESTING_TOOL_INGEST_TOKEN=... \\\nnpx jest\n```\n\n`mode=file` writes an **ingest payload** (not raw Jest JSON). Path A and Path B produce schema-equivalent ingest payloads for the same run (`format: jest-json`, same assertion titles/statuses).\n","readmeFilename":"README.md"}