{"_id":"@ai-testing-tool/forge-wdio","_rev":"5-770c60ea7c0a4d336465adc9e8bc4652","name":"@ai-testing-tool/forge-wdio","dist-tags":{"latest":"2.2.1"},"versions":{"2.0.0":{"name":"@ai-testing-tool/forge-wdio","version":"2.0.0","keywords":["ai-testing-tool","webdriverio","wdio","reporter","testing","jira"],"license":"Apache-2.0","_id":"@ai-testing-tool/forge-wdio@2.0.0","maintainers":[{"name":"jvuvo2006","email":"vuvo.junior@gmail.com"},{"name":"jsoft_publisher","email":"jsoftconnector@gmail.com"}],"dist":{"shasum":"37074991ee14ea3ad838afad1b8ec30e1f143554","tarball":"https://registry.npmjs.org/@ai-testing-tool/forge-wdio/-/forge-wdio-2.0.0.tgz","fileCount":28,"integrity":"sha512-z/fNuaibHBCwif8KExhEOwYHtf1m3wY8CyC5+T0DxRsi1fyi1/pFmWnpIlIZHYhBqXhX3o36lpOtck6t6MDUpw==","signatures":[{"sig":"MEQCICEsjZAoOcoObFT4Ueih8fn81I0SKJU4i10Y/OkB5KpnAiAycE86T0sjwJWtzL3501VHaCZ7AvfGVXBI0i1CHzVnJA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65238},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./helpers":{"types":"./dist/helpers.d.ts","default":"./dist/helpers.js"},"./package.json":"./package.json"},"gitHead":"fd15af83f1cde54acd20f41e55fc85e67cb7da35","scripts":{"test":"vitest run --config ../examples/single/vitest/vitest.config.ts --project qa-wdio","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 WebdriverIO reporter + service — ingest or file modes via @ai-testing-tool/forge-commons","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@wdio/reporter":"^9.29.1","@cucumber/messages":"34.1.0","@ai-testing-tool/forge-commons":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.13.10"},"peerDependencies":{"@wdio/mocha-framework":">=8.0.0","@wdio/cucumber-framework":">=8.0.0"},"peerDependenciesMeta":{"@wdio/mocha-framework":{"optional":true},"@wdio/cucumber-framework":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/forge-wdio_2.0.0_1789001776049_0.8006087040483538","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@ai-testing-tool/forge-wdio","version":"2.1.0","keywords":["ai-testing-tool","webdriverio","wdio","reporter","testing","jira"],"license":"Apache-2.0","_id":"@ai-testing-tool/forge-wdio@2.1.0","maintainers":[{"name":"jsoft_publisher","email":"jsoftconnector@gmail.com"}],"dist":{"shasum":"7534c1bc5c0e89e99646ab12064a9d901e730175","tarball":"https://registry.npmjs.org/@ai-testing-tool/forge-wdio/-/forge-wdio-2.1.0.tgz","fileCount":28,"integrity":"sha512-7EjRzuqIJXRk68YCJxHwgCLjMqLiIsfXnneU7kRcHnwN5Xl8+kvcfwZqftulI14bdK7CnBxYgZeMRUC1baTUPA==","signatures":[{"sig":"MEYCIQDbOU7MSM5MmXJA7Rp8fMhCX18kLBsG16cpb8fAV7kHKQIhAPshK+5gHwE44DHiViMl/BREh9RJItPcmV+49GGW5bnd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67230},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./helpers":{"types":"./dist/helpers.d.ts","default":"./dist/helpers.js"},"./package.json":"./package.json"},"gitHead":"6a6bbfb270e7d4d34b9cc942861f53ccc572f130","scripts":{"test":"vitest run --config ../examples/single/vitest/vitest.config.ts --project qa-wdio","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 WebdriverIO reporter + service — ingest or file modes via @ai-testing-tool/forge-commons","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@wdio/reporter":"^9.29.1","@cucumber/messages":"34.1.0","@ai-testing-tool/forge-commons":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.13.10"},"peerDependencies":{"@wdio/mocha-framework":">=8.0.0","@wdio/cucumber-framework":">=8.0.0"},"peerDependenciesMeta":{"@wdio/mocha-framework":{"optional":true},"@wdio/cucumber-framework":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/forge-wdio_2.1.0_1789133746623_0.9849580714507127","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@ai-testing-tool/forge-wdio","version":"2.2.0","keywords":["ai-testing-tool","webdriverio","wdio","reporter","testing","jira"],"license":"Apache-2.0","_id":"@ai-testing-tool/forge-wdio@2.2.0","maintainers":[{"name":"jsoft_publisher","email":"jsoftconnector@gmail.com"}],"dist":{"shasum":"4bd81d98f383e79372e2a2970af7d65e92380f1c","tarball":"https://registry.npmjs.org/@ai-testing-tool/forge-wdio/-/forge-wdio-2.2.0.tgz","fileCount":28,"integrity":"sha512-GMIWttCCmEbJ2KOwRvwf2ZVsaevNK+fwTrYDRxLGD57Yh596WqzmqnfvjBBBaDQnpTe2Md0mSWcHiUC+8NvcrA==","signatures":[{"sig":"MEUCIQDIWbgDifQk9E0pRtYJGMjyxoi0HAkr/+74D9Fc5a/TGQIgMhH5U9CY/awJw3Prwm8qQyKT2t4XYdTT3u0BIwP5cIk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAGH5pOQ+wIVntrwLZ3Xg2hYfksKIoWAe/KwS66wgZXiAiAGzdhJD5LodjpftN248Xw3UHY4eyLqCnPnLSgVUi3g5g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67230},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./helpers":{"types":"./dist/helpers.d.ts","default":"./dist/helpers.js"},"./package.json":"./package.json"},"gitHead":"41f9e959765c56709746d085839a7a2c59bab48e","scripts":{"test":"vitest run --config ../examples/single/vitest/vitest.config.ts --project qa-wdio","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 WebdriverIO reporter + service — ingest or file modes via @ai-testing-tool/forge-commons","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@wdio/reporter":"^9.29.1","@cucumber/messages":"34.1.0","@ai-testing-tool/forge-commons":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.13.10"},"peerDependencies":{"@wdio/mocha-framework":">=8.0.0","@wdio/cucumber-framework":">=8.0.0"},"peerDependenciesMeta":{"@wdio/mocha-framework":{"optional":true},"@wdio/cucumber-framework":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/forge-wdio_2.2.0_1789744344370_0.7241983017661684","host":"s3://npm-registry-packages-npm-production"}},"2.2.1":{"_id":"@ai-testing-tool/forge-wdio@2.2.1","dist":{"shasum":"4fbfe33619df39e7913106bbc5fe669f9ea14897","tarball":"https://registry.npmjs.org/@ai-testing-tool/forge-wdio/-/forge-wdio-2.2.1.tgz","fileCount":28,"integrity":"sha512-xxjH7P0kw8O6pbQP0MNUnLeDeu3LGlji390u9i31ZiFr/DBId53V5d1TG4XLriTvvCS2womJcC4yIoPVQfzQcg==","signatures":[{"sig":"MEUCIQDQhtQr/Khv5gS3N/VaH0oIPzVb6ZcIkJIO6oPoTCu6fAIgFT/DRzARd6+b4WoPaggB2q3JnHuQwhhbxQs6rFJKbfs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDxnFimqeRcWri72AI3zF6QQCiT9Gz2qsBLsBJUkXn6OAIgezZ+n0bBLNcDTRj++FINjsVNAwCitTDlwUQQ1g8Hj8A="}],"unpackedSize":67230},"main":"./dist/index.js","name":"@ai-testing-tool/forge-wdio","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./helpers":{"types":"./dist/helpers.d.ts","default":"./dist/helpers.js"},"./package.json":"./package.json"},"gitHead":"3331e6bac1ab0d878687e6f9cfd1e7d4110ea625","license":"Apache-2.0","scripts":{"test":"vitest run --config ../examples/single/vitest/vitest.config.ts --project qa-wdio","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","webdriverio","wdio","reporter","testing","jira"],"_npmVersion":"10.9.2","description":"AI Testing Tool WebdriverIO reporter + service — ingest or file modes via @ai-testing-tool/forge-commons","directories":{},"maintainers":[{"name":"jsoft_publisher","email":"jsoftconnector@gmail.com"}],"_nodeVersion":"22.14.0","dependencies":{"@wdio/reporter":"^9.29.1","@cucumber/messages":"34.1.0","@ai-testing-tool/forge-commons":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.13.10"},"peerDependencies":{"@wdio/mocha-framework":">=8.0.0","@wdio/cucumber-framework":">=8.0.0"},"peerDependenciesMeta":{"@wdio/mocha-framework":{"optional":true},"@wdio/cucumber-framework":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/forge-wdio_2.2.1_1790359248925_0.9172515113323809"}}},"time":{"created":"2026-09-10T00:56:15.837Z","modified":"2026-09-25T18:00:49.242Z","2.0.0":"2026-09-10T00:56:16.187Z","2.1.0":"2026-09-11T13:35:46.745Z","2.2.0":"2026-09-18T15:12:24.473Z","2.2.1":"2026-09-25T18:00:49.010Z"},"license":"Apache-2.0","keywords":["ai-testing-tool","webdriverio","wdio","reporter","testing","jira"],"description":"AI Testing Tool WebdriverIO reporter + service — ingest or file modes via @ai-testing-tool/forge-commons","maintainers":[{"name":"jsoft_publisher","email":"jsoftconnector@gmail.com"}],"readme":"# @ai-testing-tool/forge-wdio\n\nWebdriverIO reporter + service for **AI Testing Tool** (Jira Forge quality hub).\n\nSupports **WebdriverIO 8+** with **Mocha** (`@wdio/mocha-framework`) or **Cucumber** (`@wdio/cucumber-framework`).\n\n## Install\n\n```bash\n# Mocha (default)\nnpm install -D @ai-testing-tool/forge-wdio @ai-testing-tool/forge-commons @wdio/mocha-framework\n\n# Cucumber\nnpm install -D @ai-testing-tool/forge-wdio @ai-testing-tool/forge-commons @wdio/cucumber-framework\n```\n\n## Configure — Mocha\n\n```js\n// wdio.conf.js\nconst QaWdioReporter = require('@ai-testing-tool/forge-wdio').default;\nconst { beforeRunHook, afterRunHook, QaWdioService } = require('@ai-testing-tool/forge-wdio');\n\nexports.config = {\n  specs: ['./test/specs/**/*.spec.js'],\n  baseUrl: 'https://www.saucedemo.com',\n  framework: 'mocha',\n  reporters: [\n    [\n      QaWdioReporter,\n      {\n        // Defaults to mode=off (no credentials required)\n        // mode: 'ingest' | 'file' | 'off',\n        // projectKey: 'DEMO',\n        disableWebdriverStepsReporting: true, // default\n      },\n    ],\n  ],\n  services: [[QaWdioService, {}]],\n  capabilities: [\n    {\n      browserName: 'chrome',\n      'goog:chromeOptions': { args: ['--headless', '--disable-gpu'] },\n    },\n  ],\n  onPrepare: async function () {\n    await beforeRunHook();\n  },\n  onComplete: async function () {\n    await afterRunHook();\n  },\n};\n```\n\n## Configure — Cucumber\n\n```js\n// wdio.cucumber.conf.js\nconst QaWdioReporter = require('@ai-testing-tool/forge-wdio').default;\nconst { beforeRunHook, afterRunHook, QaWdioService } = require('@ai-testing-tool/forge-wdio');\n\nexports.config = {\n  specs: ['./test/features/**/*.feature'],\n  framework: 'cucumber',\n  cucumberOpts: {\n    require: ['./test/step-definitions/**/*.js'],\n  },\n  reporters: [\n    [\n      QaWdioReporter,\n      {\n        useCucumber: true, // scenario → one result; Gherkin steps → meta.qa.steps\n        disableWebdriverStepsReporting: true,\n      },\n    ],\n  ],\n  services: [[QaWdioService, {}]],\n  onPrepare: async () => { await beforeRunHook(); },\n  onComplete: async () => { await afterRunHook(); },\n};\n```\n\nTag conventions:\n\n- Prefer **Jira keys in the scenario title** or bare tags: `@AUTH-101`\n- Optional metadata: `@QaSuite=Checkout`, `@QaTitle=…`, `@QaFields={\"layer\":\"e2e\"}`\n\nSee `examples/single/wdio/wdio.cucumber.conf.js`.\n\n**Required for ingest/file:** `onPrepare` → `beforeRunHook` and `onComplete` → `afterRunHook`.\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: `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 (Mocha)\n\n```js\nconst { qa } = require('@ai-testing-tool/forge-wdio');\nconst LoginPage = require('../pageobjects/LoginPage');\n\ndescribe('Login', () => {\n  it('AUTH-101 User can login with valid credentials', async () => {\n    qa.fields({ severity: 'critical', layer: 'e2e' });\n    qa.suite('E-commerce\\\\tAuthentication\\\\tLogin');\n\n    await qa.step('Open login page', async () => {\n      await LoginPage.open();\n      await expect(LoginPage.usernameInput).toBeDisplayed();\n    });\n\n    await qa.step('Login', async (step) => {\n      await step.step('Fill credentials', async () => {\n        await LoginPage.login('standard_user', 'secret_sauce');\n      });\n    });\n  });\n});\n```\n\nPrefer **Jira issue keys in test titles**. Use **`await qa.step()`** for step timelines (including nested `step.step()`).\n\n`qa.attach({ type: 'text/plain', ... })` uploads via Forge when content/path is set (still-image / small files). Use **`type`**, not `contentType`.\n\n## Run\n\n```bash\nAI_TESTING_TOOL_MODE=off npx wdio run wdio.conf.js\nAI_TESTING_TOOL_MODE=off npx wdio run wdio.cucumber.conf.js\n```\n","readmeFilename":"README.md"}