How regisrozario/wdio-appium-cucumber works
This repository automates iOS UI scenarios for Sauce Labs’ My Demo App: Gherkin features map to step definitions, which drive screen-specific page objects through WebdriverIO and Appium. The main user-to-result flow is scenario execution on a device, with Sauce Labs jobs and test results. The README also documents optional AI-assisted scenario authoring that produces a pull request. Connections for that branch are based on README descriptions and file paths; unsampled implementation details are not inferred.
Main entry points: wdio.shared.conf.ts Shared runner config · cart.steps.ts Cart steps · checkout.steps.ts Checkout steps · base.screen.ts Screen base
Components 24
BDD scenarios
- Cart scenarios
features/cart.feature - Checkout scenarios
features/checkout.feature - App steps
src/step-definitions/app.steps.ts - Cart steps
src/step-definitions/cart.steps.ts - Catalog steps
src/step-definitions/catalog.steps.ts - Product steps
src/step-definitions/product.steps.ts - Checkout steps
src/step-definitions/checkout.steps.ts
Screen automation
- Catalog screen
src/pageobjects/catalog.screen.ts - Product details
src/pageobjects/product-details.screen.ts - Cart screen
src/pageobjects/cart.screen.ts - Login screen
src/pageobjects/login.screen.ts - Shipping address
src/pageobjects/shipping-address.screen.ts - Native alert
src/pageobjects/alert.ts - Tab bar
src/pageobjects/tabbar.ts - Screen base
src/pageobjects/base.screen.ts
Test execution
- Shared runner config
config/wdio.shared.conf.ts - Sauce device config
config/wdio.sauce.conf.ts
AI authoring
- Scenario form
.github/workflows/implement-scenario.yml - Implement scenario skill
.claude/skills/implement-feature/SKILL.md - Scenario tooling
.github/scripts/add-scenario.mjs
Other components
- Test author
- Sauce Labs
- iOS device
- Pull request
Connections 36
- Test author → Cart scenarios: authors scenarios
README.md - Test author → Checkout scenarios: authors scenarios
README.md - Cart scenarios → Cart steps: binds steps
README.md - Checkout scenarios → Checkout steps: binds steps
README.md - Shared runner config → Cart scenarios: loads specs
config/wdio.shared.conf.ts - Shared runner config → Checkout scenarios: loads specs
config/wdio.shared.conf.ts - Shared runner config → App steps: registers steps
config/wdio.shared.conf.ts - Shared runner config → Cart steps: registers steps
config/wdio.shared.conf.ts - Shared runner config → Catalog steps: registers steps
config/wdio.shared.conf.ts - Shared runner config → Product steps: registers steps
config/wdio.shared.conf.ts - Shared runner config → Checkout steps: registers steps
config/wdio.shared.conf.ts - Sauce device config → Shared runner config: extends config
config/wdio.sauce.conf.ts - Sauce device config → Sauce Labs: runs sessions
README.md - Sauce Labs → iOS device: drives device
README.md - App steps → Catalog screen: waits on
src/step-definitions/app.steps.ts - App steps → Tab bar: opens tab
src/step-definitions/app.steps.ts - Cart steps → Catalog screen: opens product
src/step-definitions/cart.steps.ts - Cart steps → Product details: adds product
src/step-definitions/cart.steps.ts - Cart steps → Cart screen: checks cart
src/step-definitions/cart.steps.ts - Cart steps → Tab bar: opens tab
src/step-definitions/cart.steps.ts - Catalog steps → Catalog screen: drives catalog
src/step-definitions/catalog.steps.ts - Product steps → Product details: drives product
src/step-definitions/product.steps.ts - Product steps → Native alert: checks alert
src/step-definitions/product.steps.ts - Checkout steps → Cart screen: starts checkout
src/step-definitions/checkout.steps.ts - Checkout steps → Login screen: logs in
src/step-definitions/checkout.steps.ts - Checkout steps → Shipping address: checks destination
src/step-definitions/checkout.steps.ts - Checkout steps → Native alert: checks alert
src/step-definitions/checkout.steps.ts - Catalog screen → Screen base: extends
src/pageobjects/catalog.screen.ts - Product details → Screen base: extends
src/pageobjects/product-details.screen.ts - Cart screen → Screen base: extends
src/pageobjects/cart.screen.ts - Login screen → Screen base: extends
src/pageobjects/login.screen.ts - Shipping address → Screen base: extends
src/pageobjects/shipping-address.screen.ts - Test author → Scenario form: submits scenario
README.md - Scenario form → Implement scenario skill: invokes authoring
README.md - Scenario form → Scenario tooling: processes input
README.md - Implement scenario skill → Pull request: creates change
README.md