{"_id":"@ai-testing-tool/forge-mocha","_rev":"5-0550ed271b7232fcf9d37b1a96f50fbc","name":"@ai-testing-tool/forge-mocha","dist-tags":{"latest":"2.2.1"},"versions":{"2.0.0":{"name":"@ai-testing-tool/forge-mocha","version":"2.0.0","keywords":["ai-testing-tool","mocha","reporter","testing","jira"],"license":"Apache-2.0","_id":"@ai-testing-tool/forge-mocha@2.0.0","maintainers":[{"name":"jvuvo2006","email":"vuvo.junior@gmail.com"},{"name":"jsoft_publisher","email":"jsoftconnector@gmail.com"}],"dist":{"shasum":"510fbdee9ba139d68af91af270ac714db4e7436a","tarball":"https://registry.npmjs.org/@ai-testing-tool/forge-mocha/-/forge-mocha-2.0.0.tgz","fileCount":11,"integrity":"sha512-Xuw9zVBTvsRQcFFsJimp165Wf54mx9CRzrng2tp2naI+afUYh3fYkLwGysriFEgx5iDeq4062ligdE4ETU+uXQ==","signatures":[{"sig":"MEYCIQC/2Vab/Bk+2O5zdjtmTz7sQjam8IoNwybCn2uf8JO7zgIhAP2SGZjm4CWkJKHGlAA4v3yU8r1EpVxtG+AkCJHwreBn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29816},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./mocha":{"types":"./dist/mocha.d.ts","default":"./dist/mocha.js"},"./package.json":"./package.json"},"gitHead":"fd15af83f1cde54acd20f41e55fc85e67cb7da35","scripts":{"test":"vitest run --config ../examples/single/vitest/vitest.config.ts --project qa-mocha","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 Mocha 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":{"mocha":"^11.3.0","@types/mocha":"^10.0.10"},"peerDependencies":{"mocha":">=10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/forge-mocha_2.0.0_1789001758009_0.27543037380056457","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@ai-testing-tool/forge-mocha","version":"2.1.0","keywords":["ai-testing-tool","mocha","reporter","testing","jira"],"license":"Apache-2.0","_id":"@ai-testing-tool/forge-mocha@2.1.0","maintainers":[{"name":"jsoft_publisher","email":"jsoftconnector@gmail.com"}],"dist":{"shasum":"f64696468242f557dfb84302f7a58b99db95be91","tarball":"https://registry.npmjs.org/@ai-testing-tool/forge-mocha/-/forge-mocha-2.1.0.tgz","fileCount":11,"integrity":"sha512-GMsnsR3mMgU4BkityoLnaeBABfs/53xuHe4skzt5IYJzGavrCr2qM5TuLzRZ9SMCK9u7L+7LoSadXZlv5w8eBQ==","signatures":[{"sig":"MEUCIFdHQZok5PxaPo97kJEsFigI6S/iTBPFDu8V8sS9XASeAiEA4F0W19KJbQOqRYUZYNPUJC3YqAKRzksr36KhyhhyxoM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDlAMVIsn0w4i18y2jnBOHfwxT4H94T3ZgjutBHn9/yHAIgHLHHi/Kpfed06NAvCtlVuA+HRjv4kVi9XQkTrC+F9Lw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30676},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./mocha":{"types":"./dist/mocha.d.ts","default":"./dist/mocha.js"},"./package.json":"./package.json"},"gitHead":"6a6bbfb270e7d4d34b9cc942861f53ccc572f130","scripts":{"test":"vitest run --config ../examples/single/vitest/vitest.config.ts --project qa-mocha","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 Mocha 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":{"mocha":"^11.3.0","@types/mocha":"^10.0.10"},"peerDependencies":{"mocha":">=10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/forge-mocha_2.1.0_1789133779533_0.47976467836835224","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@ai-testing-tool/forge-mocha","version":"2.2.0","keywords":["ai-testing-tool","mocha","reporter","testing","jira"],"license":"Apache-2.0","_id":"@ai-testing-tool/forge-mocha@2.2.0","maintainers":[{"name":"jsoft_publisher","email":"jsoftconnector@gmail.com"}],"dist":{"shasum":"b9044db9ad7b487575ce4663f7e76992a606b065","tarball":"https://registry.npmjs.org/@ai-testing-tool/forge-mocha/-/forge-mocha-2.2.0.tgz","fileCount":11,"integrity":"sha512-wwP34MC+3fxbXtSW9vO4RHWU8Kg9nKdTxblG5EL+IMjoWAY5++UxwitiEDYHYI80tes9guC94WJ3UwTzfN1usw==","signatures":[{"sig":"MEUCIQDt+JhgH8zGu2lWJ+LmEqu0uUk4t1Sw301kLu0uilAjsAIgAOuWxi3yMlMQfSXH3T9Cfjy51qTkzagaZYk+maVNGvo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAYl8+MzoPew1eZyFUlDK++iiiqu4r/c2m4mZmbQ2AHlAiBJTMnc5D+aNUY6czFfM9LhCEazT7/lFaFSWWSRyuSosQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30676},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./mocha":{"types":"./dist/mocha.d.ts","default":"./dist/mocha.js"},"./package.json":"./package.json"},"gitHead":"41f9e959765c56709746d085839a7a2c59bab48e","scripts":{"test":"vitest run --config ../examples/single/vitest/vitest.config.ts --project qa-mocha","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 Mocha 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":{"mocha":"^11.3.0","@types/mocha":"^10.0.10"},"peerDependencies":{"mocha":">=10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/forge-mocha_2.2.0_1789744320535_0.758607546166747","host":"s3://npm-registry-packages-npm-production"}},"2.2.1":{"_id":"@ai-testing-tool/forge-mocha@2.2.1","dist":{"shasum":"6698ddb99c628252c36e19e68c7a93f09b5ef10d","tarball":"https://registry.npmjs.org/@ai-testing-tool/forge-mocha/-/forge-mocha-2.2.1.tgz","fileCount":11,"integrity":"sha512-WBj4gCt+Sc7zhSr7etI74HJbkHuBVKP7P+aDezYEvtxdZGi/vrKMqH0blX/sFalPFHFsmiFgpmdkFnwUXfVKBQ==","signatures":[{"sig":"MEUCIQCP9EAUgrSnOI86uY12E3fG59eK0Yoabu8iWJuWk4TuKwIgcO5EhkCjVXFkG1XAbSj7ks7DE8xdFGBduoSzWQWXMK0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBupXKkquNJsLRtA1wVwGd/55PEbJWVtmud0g0mD8j7kAiEArdLxcx0Fyh/OTG6vzpLBxEsXSJ1V6aGNBRIuxcQxnqw="}],"unpackedSize":30676},"main":"./dist/index.js","name":"@ai-testing-tool/forge-mocha","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./mocha":{"types":"./dist/mocha.d.ts","default":"./dist/mocha.js"},"./package.json":"./package.json"},"gitHead":"3331e6bac1ab0d878687e6f9cfd1e7d4110ea625","license":"Apache-2.0","scripts":{"test":"vitest run --config ../examples/single/vitest/vitest.config.ts --project qa-mocha","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","mocha","reporter","testing","jira"],"_npmVersion":"10.9.2","description":"AI Testing Tool Mocha 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":{"mocha":"^11.3.0","@types/mocha":"^10.0.10"},"peerDependencies":{"mocha":">=10.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/forge-mocha_2.2.1_1790359174598_0.6460062091244361"}}},"time":{"created":"2026-09-10T00:55:57.720Z","modified":"2026-09-25T17:59:34.832Z","2.0.0":"2026-09-10T00:55:58.152Z","2.1.0":"2026-09-11T13:36:19.620Z","2.2.0":"2026-09-18T15:12:00.624Z","2.2.1":"2026-09-25T17:59:34.677Z"},"license":"Apache-2.0","keywords":["ai-testing-tool","mocha","reporter","testing","jira"],"description":"AI Testing Tool Mocha reporter — ingest or file modes via @ai-testing-tool/forge-commons","maintainers":[{"name":"jsoft_publisher","email":"jsoftconnector@gmail.com"}],"readme":"# @ai-testing-tool/forge-mocha\n\nMocha reporter for **AI Testing Tool** (Jira Forge quality hub).\n\n## Install\n\n```bash\nnpm install -D @ai-testing-tool/forge-mocha @ai-testing-tool/forge-commons mocha\n```\n\nPeer: `mocha` ≥10.\n\n## Configure\n\n```js\n// .mocharc.js\nmodule.exports = {\n  spec: ['test/**/*.spec.js'],\n  reporter: '@ai-testing-tool/forge-mocha',\n  reporterOptions: {\n    // Defaults to mode=off (no credentials required)\n    // mode: 'ingest' | 'file' | 'off',\n    // projectKey: 'DEMO',\n  },\n  timeout: 10000,\n};\n```\n\n### Modes\n\n| Mode | Behavior |\n| ---- | -------- |\n| `off` (default) | No network / file write |\n| `file` | Writes the 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-mocha/mocha');\nconst assert = require('assert');\n\ndescribe('JSONPlaceholder User CRUD', function () {\n  it('AUTH-101 GET all users', async function () {\n    qa.fields({ layer: 'api', severity: 'normal' });\n    await qa.step('Send GET /users', async () => {\n      const response = await fetch('https://jsonplaceholder.typicode.com/users');\n      assert.strictEqual(response.status, 200);\n    });\n    // Sync steps also supported:\n    qa.step('Validate title has issue key', () => {\n      assert.ok(true);\n    });\n  });\n});\n```\n\nPrefer **Jira issue keys in test titles** (no case-ID wrapper). Step hierarchy lands on `assertionResults[].meta.qa.steps`. Use `qa.attach({ contentType })` for attachment metadata (binary upload deferred).\n\n## Dual path\n\n**Path A — file + CLI:**\n\n```bash\nAI_TESTING_TOOL_MODE=file \\\nAI_TESTING_TOOL_PROJECT_KEY=DEMO \\\nnpx mocha\nnpx @ai-testing-tool/forge-api-client --project DEMO --report ai-testing-tool-results.json\n```\n\n**Path B — reporter ingest:**\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 mocha\n```\n","readmeFilename":"README.md"}