{"_id":"@ai-testing-tool/forge-cypress","_rev":"5-bef4de633687c4371729f29737c79b83","name":"@ai-testing-tool/forge-cypress","dist-tags":{"latest":"2.2.1"},"versions":{"2.0.0":{"name":"@ai-testing-tool/forge-cypress","version":"2.0.0","keywords":["ai-testing-tool","cypress","reporter","testing","jira"],"license":"Apache-2.0","_id":"@ai-testing-tool/forge-cypress@2.0.0","maintainers":[{"name":"jvuvo2006","email":"vuvo.junior@gmail.com"},{"name":"jsoft_publisher","email":"jsoftconnector@gmail.com"}],"dist":{"shasum":"9ab8ec744583488322f84b19f0439be6a886bd40","tarball":"https://registry.npmjs.org/@ai-testing-tool/forge-cypress/-/forge-cypress-2.0.0.tgz","fileCount":25,"integrity":"sha512-3ZAX82O2KclvfKX/CqeDB+JotRj+EEEMyGh99nnza8qdldqirFlmr3BRw9vgBB9nhBM7BtNQnQyKklV44fhxXg==","signatures":[{"sig":"MEUCIQDdt8Y8Bwzdj1POMc2eHkXwiBqNbAR4SlBozI96rp262QIgJgpCJFHhTCn/QewTvHRk0qmCfoWKb3GEM5NvB1gPHM8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":48955},"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"},"./plugin":{"types":"./dist/plugin.d.ts","default":"./dist/plugin.js"},"./metadata":{"types":"./dist/metadata.d.ts","default":"./dist/metadata.js"},"./package.json":"./package.json"},"gitHead":"fd15af83f1cde54acd20f41e55fc85e67cb7da35","scripts":{"test":"vitest run --config ../examples/single/vitest/vitest.config.ts --project qa-cypress","build":"npm run clean && npx tsc --project tsconfig.build.json && cp -R src/__fixtures__ dist/__fixtures__","clean":"rm -rf dist","prepublishOnly":"npm test"},"_npmUser":{"name":"jsoft_publisher","email":"jsoftconnector@gmail.com"},"_npmVersion":"10.9.2","description":"AI Testing Tool Cypress reporter + plugin — 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","cypress":">=12.0.0"},"peerDependenciesMeta":{"mocha":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/forge-cypress_2.0.0_1789001731724_0.43840419925970675","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@ai-testing-tool/forge-cypress","version":"2.1.0","keywords":["ai-testing-tool","cypress","reporter","testing","jira"],"license":"Apache-2.0","_id":"@ai-testing-tool/forge-cypress@2.1.0","maintainers":[{"name":"jsoft_publisher","email":"jsoftconnector@gmail.com"}],"dist":{"shasum":"6a0d834c2cafea92c3b96ed32abe1b27997209ae","tarball":"https://registry.npmjs.org/@ai-testing-tool/forge-cypress/-/forge-cypress-2.1.0.tgz","fileCount":26,"integrity":"sha512-kgdn/rZ+xdByTi4KXySFF788f3h/ir8K7LgBxpNl1XdBlmBCsiNSI1COcnoxlPw4qa4AjwhKP7rFCfWfmGLA7Q==","signatures":[{"sig":"MEUCIAjSfRS9MCYStQacdDcHFkSZK3rLd7V4qCoXWAvDecNOAiEAwPORh2FHLU+M7yADpSzNSdfWu7buq3YJI69IVe4vPcs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55587},"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"},"./plugin":{"types":"./dist/plugin.d.ts","default":"./dist/plugin.js"},"./metadata":{"types":"./dist/metadata.d.ts","default":"./dist/metadata.js"},"./package.json":"./package.json"},"gitHead":"6a6bbfb270e7d4d34b9cc942861f53ccc572f130","scripts":{"test":"vitest run --config ../examples/single/vitest/vitest.config.ts --project qa-cypress","build":"npm run clean && npx tsc --project tsconfig.build.json && cp -R src/__fixtures__ dist/__fixtures__","clean":"rm -rf dist","prepublishOnly":"npm test"},"_npmUser":{"name":"jsoft_publisher","email":"jsoftconnector@gmail.com"},"_npmVersion":"10.9.2","description":"AI Testing Tool Cypress reporter + plugin — 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","cypress":">=12.0.0"},"peerDependenciesMeta":{"mocha":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/forge-cypress_2.1.0_1789133690671_0.8520868455548853","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@ai-testing-tool/forge-cypress","version":"2.2.0","keywords":["ai-testing-tool","cypress","reporter","testing","jira"],"license":"Apache-2.0","_id":"@ai-testing-tool/forge-cypress@2.2.0","maintainers":[{"name":"jsoft_publisher","email":"jsoftconnector@gmail.com"}],"dist":{"shasum":"04a5e4b80e4fa6a67550d6c9d26930f3f8ee897d","tarball":"https://registry.npmjs.org/@ai-testing-tool/forge-cypress/-/forge-cypress-2.2.0.tgz","fileCount":26,"integrity":"sha512-kntB7tHxGdUgu6oy56STDWzBC3uXUUtUc3aO1OsWD/oRaM68HdI4mxUhBqZAwi1J03WE1QrB5qS3PI1HVLV23Q==","signatures":[{"sig":"MEUCIQC+NBbY/eh/89Tbpjp3QKvr0CroKh1ap0h1HT+I37oVNAIgV2EpSRCFEAixXeP+6y/zzkcRPqJQxDauyJFFzidb2W4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDrjmUpu0vsGFikL4rgEpOguOOqqNAMzJyYoxjv6smMtwIgM1blY84BMad/t6Rx4zyCe3oPZraTkouF2kOh+oUMSFU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55587},"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"},"./plugin":{"types":"./dist/plugin.d.ts","default":"./dist/plugin.js"},"./metadata":{"types":"./dist/metadata.d.ts","default":"./dist/metadata.js"},"./package.json":"./package.json"},"gitHead":"41f9e959765c56709746d085839a7a2c59bab48e","scripts":{"test":"vitest run --config ../examples/single/vitest/vitest.config.ts --project qa-cypress","build":"npm run clean && npx tsc --project tsconfig.build.json && cp -R src/__fixtures__ dist/__fixtures__","clean":"rm -rf dist","prepublishOnly":"npm test"},"_npmUser":{"name":"jsoft_publisher","email":"jsoftconnector@gmail.com"},"_npmVersion":"10.9.2","description":"AI Testing Tool Cypress reporter + plugin — 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","cypress":">=12.0.0"},"peerDependenciesMeta":{"mocha":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/forge-cypress_2.2.0_1789744287425_0.8614244405954659","host":"s3://npm-registry-packages-npm-production"}},"2.2.1":{"_id":"@ai-testing-tool/forge-cypress@2.2.1","dist":{"shasum":"205aede2c5a93fcee9bffb0f3310be1dd7a5ecae","tarball":"https://registry.npmjs.org/@ai-testing-tool/forge-cypress/-/forge-cypress-2.2.1.tgz","fileCount":26,"integrity":"sha512-XohvqBg7wo2opq97FimyXw0Sik6eb4rPkoVubKGFA+svo1M43Zz2/OCi1txuXeJR5ZvQAm/0s08SxhQwLNa1bA==","signatures":[{"sig":"MEUCIGDyig9IyNJ74ztJHEh7wc8NhmOkJFwHUi0JL+IL9V3FAiEAps0xlBY2D9Ek3xRexl8na0MTtBQGswsjqbILl6u93IU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDcEP1bCoJWiea6xQkOrM6ADA/4CsNr9BPrpGB05GEBsAiEAyH/QcqQERdjvz+QK4/q5OxKHrABEeglU6p8iA8F/pc8="}],"unpackedSize":55587},"main":"./dist/index.js","name":"@ai-testing-tool/forge-cypress","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"},"./plugin":{"types":"./dist/plugin.d.ts","default":"./dist/plugin.js"},"./metadata":{"types":"./dist/metadata.d.ts","default":"./dist/metadata.js"},"./package.json":"./package.json"},"gitHead":"3331e6bac1ab0d878687e6f9cfd1e7d4110ea625","license":"Apache-2.0","scripts":{"test":"vitest run --config ../examples/single/vitest/vitest.config.ts --project qa-cypress","build":"npm run clean && npx tsc --project tsconfig.build.json && cp -R src/__fixtures__ dist/__fixtures__","clean":"rm -rf dist","prepublishOnly":"npm test"},"version":"2.2.1","_npmUser":{"name":"jsoft_publisher","email":"jsoftconnector@gmail.com"},"keywords":["ai-testing-tool","cypress","reporter","testing","jira"],"_npmVersion":"10.9.2","description":"AI Testing Tool Cypress reporter + plugin — 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","cypress":">=12.0.0"},"peerDependenciesMeta":{"mocha":{"optional":false}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/forge-cypress_2.2.1_1790359439236_0.6491472669630323"}}},"time":{"created":"2026-09-10T00:55:31.529Z","modified":"2026-09-25T18:04:00.080Z","2.0.0":"2026-09-10T00:55:31.887Z","2.1.0":"2026-09-11T13:34:50.805Z","2.2.0":"2026-09-18T15:11:27.506Z","2.2.1":"2026-09-25T18:03:59.320Z"},"license":"Apache-2.0","keywords":["ai-testing-tool","cypress","reporter","testing","jira"],"description":"AI Testing Tool Cypress reporter + plugin — ingest or file modes via @ai-testing-tool/forge-commons","maintainers":[{"name":"jsoft_publisher","email":"jsoftconnector@gmail.com"}],"readme":"# @ai-testing-tool/forge-cypress\n\nCypress reporter + plugin for **AI Testing Tool** (Jira Forge quality hub).\n\n## Install\n\n```bash\nnpm install -D @ai-testing-tool/forge-cypress@2.2.1 @ai-testing-tool/forge-commons@2.2.1 cypress-multi-reporters\n```\n\nThe pinned versions above track the latest release; `npm run release:bump` keeps them in sync.\n\nPeer: `cypress` ≥12, `mocha` ≥10 (Cypress ships Mocha).\n\n## Configure\n\n```js\n// cypress.config.js\nconst { defineConfig } = require('cypress');\n\nmodule.exports = defineConfig({\n  reporter: 'cypress-multi-reporters',\n  reporterOptions: {\n    reporterEnabled: '@ai-testing-tool/forge-cypress',\n    qaCypressReporterOptions: {\n      // Defaults to mode=off (no credentials required)\n      // mode: 'ingest' | 'file' | 'off',\n      // projectKey: 'DEMO',\n      // resultsPath: './.qa-cypress-results.json',\n    },\n  },\n  e2e: {\n    setupNodeEvents(on, config) {\n      require('@ai-testing-tool/forge-cypress/plugin')(on, config);\n      require('@ai-testing-tool/forge-cypress/metadata')(on);\n      return config;\n    },\n  },\n});\n```\n\nDirect reporter (no multi-reporters):\n\n```js\nreporter: '@ai-testing-tool/forge-cypress',\n```\n\n**Required:** register `@ai-testing-tool/forge-cypress/plugin` so `after:run` publishes one launch for the whole `cypress run` (results are buffered across specs).\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\nResults bridge path: `resultsPath` reporter option or `AI_TESTING_TOOL_CYPRESS_RESULTS_PATH` env var (default: `<projectRoot>/.qa-cypress-results.json`).\n\n## Helpers\n\n```js\nconst { qa } = require('@ai-testing-tool/forge-cypress/mocha');\n\nit('AUTH-101 login', () => {\n  qa.suite('Auth');\n  qa.step('open form', () => {\n    // synchronous callback only — no async/await\n    cy.visit('/login');\n  });\n});\n```\n\nAll helpers: `qa.title(value)`, `qa.comment(value)`, `qa.suite(value)`, `qa.suiteId(value)`, `qa.planId(value)`, `qa.plan(value)`, `qa.fixVersion(value)`, `qa.sprintName(value)`, `qa.labels(value)`, `qa.parameters({ key: value })`, `qa.ignore()`, `qa.step(name, syncFn)`. `qa.step()` throws if the callback returns a Promise — keep it synchronous and let Cypress commands queue as usual.\n\nPrefer **Jira issue keys in test titles**. Requires `@ai-testing-tool/forge-cypress/metadata` so `cy.task` bridges metadata to the Node reporter. Step hierarchy lands on `assertionResults[].meta.qa.steps`.\n\n## Failure screenshots\n\nWith `@ai-testing-tool/forge-cypress/plugin` registered, the `after:screenshot` hook records Cypress failure screenshots automatically. On publish (`mode=ingest` or `file`), each failed assertion gets a matching still image (png/jpeg/webp — videos are skipped) uploaded to Forge and attached as `meta.qa.attachments`. Screenshots are matched to assertions by test title, falling back to spec order; each screenshot is used at most once. Upload errors never fail the Cypress run.\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 cypress run\nnpx @ai-testing-tool/forge-api-client --project DEMO --report ai-testing-tool-results.json\n```\n\n(`mode=file` already writes a ready-to-ingest payload; CLI re-upload is optional if you prefer the upload workflow.)\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 cypress run\n```\n","readmeFilename":"README.md"}