How bhushantbn/playwright-bdd-product-grid works
This repository is a Playwright/Cucumber UI automation framework. Its main workflow is to run Gherkin scenarios, dispatch steps to page-object actions, and verify behavior in the target web application. Scenario hooks manage browser/session setup and failure handling; environment configuration and optional Azure/Jira integrations support execution. The graph follows the README and sampled source; feature domains beyond the sampled Admin and Leave steps are represented from the tree and documented capabilities, with their internal wiring left unspecified where source was not sampled.
Main entry points: stepDefinitions Step definitions · hooks.ts World and hooks · BasePage.ts Base page · Leave Leave pages
Components 26
BDD Scenarios
- Cucumber engine
- Login scenarios
features/Login/login.feature - Password recovery
features/Login/forgot_password.feature - Admin scenarios
features/Admin/admin.feature - Dashboard scenarios
features/Dashboard/dashboard.feature - Leave scenarios
features/Leave/assign_leave.feature - Heroku scenarios
features/Heroku/heroku.feature
Scenario Runtime
- Step definitions
src/stepDefinitions - World and hooks
src/hooks/hooks.ts - Auth setup
src/utils/authSetup.ts
Page Objects
- Base page
src/pages/BasePage.ts - Login pages
src/pages/Login - Admin page
src/pages/Admin/Admin.po.ts - Dashboard pages
src/pages/Dashboard - Leave pages
src/pages/Leave - Heroku page
src/pages/Heroku/heroku.po.ts - UI helpers
src/utils/UIElement.ts
Configuration
- Config manager
src/config/ConfigManager.ts - Environment configs
src/testData
Failure Integrations
- Blob uploader
src/utils/BlobStorage.ts - Jira service
src/utils/JiraService.ts
Other components
- Test runner
- Target web app
- Playwright browser
- Azure Blob Storage
- Jira
Connections 38
- Test runner → Cucumber engine: starts
- Cucumber engine → Login scenarios: executes
- Cucumber engine → Password recovery: executes
- Cucumber engine → Admin scenarios: executes
- Cucumber engine → Dashboard scenarios: executes
- Cucumber engine → Leave scenarios: executes
- Cucumber engine → Heroku scenarios: executes
- Cucumber engine → Step definitions: dispatches steps
- Cucumber engine → World and hooks: runs lifecycle
- Step definitions → World and hooks: uses world
- World and hooks → Config manager: reads config
- Config manager → Environment configs: loads environment
- World and hooks → Auth setup: generates session
- World and hooks → Playwright browser: launches browser
- Auth setup → Playwright browser: automates login
- Step definitions → Login pages: calls
- Step definitions → Admin page: calls
- Step definitions → Dashboard pages: calls
- Step definitions → Leave pages: calls
- Step definitions → Heroku page: calls
- Login pages → Base page: extends
- Admin page → Base page: extends
- Dashboard pages → Base page: extends
- Leave pages → Base page: extends
- Heroku page → Base page: extends
- Leave pages → UI helpers: uses
- Base page → Config manager: reads config
- Base page → Playwright browser: drives page
- Login pages → Playwright browser: drives page
- Admin page → Playwright browser: drives page
- Dashboard pages → Playwright browser: drives page
- Leave pages → Playwright browser: drives page
- Heroku page → Playwright browser: drives page
- Playwright browser → Target web app: automates UI
- World and hooks → Blob uploader: uploads failures
- Blob uploader → Azure Blob Storage: uploads files
- World and hooks → Jira service: reports tagged failures
- Jira service → Jira: searches and creates issues