# j81288423-web/ai-driven-test-lifecycle architecture

> Architecture diagram of the GitHub repository j81288423-web/ai-driven-test-lifecycle, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/j81288423-web/ai-driven-test-lifecycle
- Repository: https://github.com/j81288423-web/ai-driven-test-lifecycle

## Overview

Automation-Demo-SUMMIT is a Cucumber.js/Playwright browser-testing suite. Its documented workflow runs feature scenarios through thin step definitions into page objects, which use locator factories to interact with and assert against the application. The repository also includes a direct search-step implementation, browser lifecycle hooks, environment configuration, generated test data, logging, and failure screenshots. The README describes the intended layering; source excerpts confirm several calls, while some feature-to-step wiring and page-object behavior are supported only by that documentation.

Main entry points: [`utils/configLoader.js`](https://github.com/j81288423-web/ai-driven-test-lifecycle/blob/main/utils/configLoader.js) (Environment config), [`pages/home.page.js`](https://github.com/j81288423-web/ai-driven-test-lifecycle/blob/main/pages/home.page.js) (Home page object), [`pages/signup.page.js`](https://github.com/j81288423-web/ai-driven-test-lifecycle/blob/main/pages/signup.page.js) (Signup page object), [`support/world.js`](https://github.com/j81288423-web/ai-driven-test-lifecycle/blob/main/support/world.js) (Cucumber World)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_scenarios["BDD scenarios"]
  node_home_feature["Home scenarios<br/>[home.feature]"]
  node_search_feature["Product search"]
end

subgraph group_execution["Scenario execution"]
  node_home_steps["Home steps<br/>[home.step.js]"]
  node_signup_steps["Signup steps<br/>[signup.step.js]"]
  node_search_steps["Search steps"]
  node_world["Cucumber World<br/>[world.js]"]
end

subgraph group_browser["Browser interactions"]
  node_home_page["Home page object<br/>[home.page.js]"]
  node_signup_page["Signup page object<br/>[signup.page.js]"]
  node_search_locators["Search locators"]
  node_home_locators["Home locators<br/>[home.locators.js]"]
  node_signup_locators["Signup locators<br/>[signup.locators.js]"]
end

subgraph group_shared["Shared support"]
  node_config["Environment config<br/>[configLoader.js]"]
  node_app_config["App settings<br/>[app.config.json]"]
  node_env_config["Environment settings"]
  node_test_data["Test data generator"]
  node_logger["Step logger<br/>[logger.js]"]
  node_screenshots["Screenshot helper"]
end

node_user(("Test author"))
node_app{{"AutomationExercise site"}}
node_playwright{{"Playwright browser"}}
node_image_files["Failure screenshots"]

node_user -->|"authors"| node_home_feature
node_user -->|"authors"| node_search_feature
node_home_feature -.->|"binds scenarios"| node_home_steps
node_search_feature -.->|"binds scenarios"| node_search_steps
node_home_steps -->|"delegates to"| node_home_page
node_signup_steps -->|"delegates to"| node_signup_page
node_signup_steps -->|"generates data"| node_test_data
node_search_steps -->|"uses"| node_search_locators
node_world -->|"launches browser"| node_playwright
node_world -->|"reads settings"| node_config
node_world -->|"captures failures"| node_screenshots
node_home_page -->|"uses"| node_home_locators
node_signup_page -->|"uses"| node_signup_locators
node_home_page -->|"reads settings"| node_config
node_signup_page -->|"reads settings"| node_config
node_home_page -->|"logs steps"| node_logger
node_signup_page -->|"logs steps"| node_logger
node_config -->|"loads"| node_app_config
node_config -->|"loads"| node_env_config
node_screenshots -->|"reads toggles"| node_config
node_screenshots -->|"writes"| node_image_files
node_world -->|"attaches on failure"| node_image_files
node_home_page -->|"navigates"| node_app
node_signup_page -.->|"interacts with"| node_app
node_search_steps -->|"navigates and searches"| node_app

click node_home_feature "https://github.com/j81288423-web/ai-driven-test-lifecycle/blob/main/Features/home.feature"
click node_search_feature "https://github.com/j81288423-web/ai-driven-test-lifecycle/blob/main/Features/ProductSearch.feature"
click node_home_steps "https://github.com/j81288423-web/ai-driven-test-lifecycle/blob/main/steps/home.step.js"
click node_signup_steps "https://github.com/j81288423-web/ai-driven-test-lifecycle/blob/main/steps/signup.step.js"
click node_search_steps "https://github.com/j81288423-web/ai-driven-test-lifecycle/blob/main/steps/AutomationExercisePage.steps.js"
click node_world "https://github.com/j81288423-web/ai-driven-test-lifecycle/blob/main/support/world.js"
click node_home_page "https://github.com/j81288423-web/ai-driven-test-lifecycle/blob/main/pages/home.page.js"
click node_signup_page "https://github.com/j81288423-web/ai-driven-test-lifecycle/blob/main/pages/signup.page.js"
click node_search_locators "https://github.com/j81288423-web/ai-driven-test-lifecycle/blob/main/locators/AutomationExercisePageLocators.js"
click node_home_locators "https://github.com/j81288423-web/ai-driven-test-lifecycle/blob/main/locators/home.locators.js"
click node_signup_locators "https://github.com/j81288423-web/ai-driven-test-lifecycle/blob/main/locators/signup.locators.js"
click node_config "https://github.com/j81288423-web/ai-driven-test-lifecycle/blob/main/utils/configLoader.js"
click node_app_config "https://github.com/j81288423-web/ai-driven-test-lifecycle/blob/main/config/app.config.json"
click node_env_config "https://github.com/j81288423-web/ai-driven-test-lifecycle/blob/main/config/environments.config.json"
click node_test_data "https://github.com/j81288423-web/ai-driven-test-lifecycle/blob/main/utils/testDataGenerator.js"
click node_logger "https://github.com/j81288423-web/ai-driven-test-lifecycle/blob/main/utils/logger.js"
click node_screenshots "https://github.com/j81288423-web/ai-driven-test-lifecycle/blob/main/utils/screenshotHelper.js"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_home_feature,node_search_feature,node_playwright,node_image_files toneBlue
class node_home_steps,node_signup_steps,node_search_steps,node_world toneAmber
class node_home_page,node_signup_page,node_search_locators,node_home_locators,node_signup_locators toneMint
class node_config,node_app_config,node_env_config,node_test_data,node_logger,node_screenshots toneRose
class node_user,node_app toneIndigo
```

## Components

### BDD scenarios

- [Home scenarios](https://github.com/j81288423-web/ai-driven-test-lifecycle/blob/main/Features/home.feature): `Features/home.feature`
- [Product search](https://github.com/j81288423-web/ai-driven-test-lifecycle/blob/main/Features/ProductSearch.feature): `Features/ProductSearch.feature`

### Scenario execution

- [Home steps](https://github.com/j81288423-web/ai-driven-test-lifecycle/blob/main/steps/home.step.js): `steps/home.step.js`
- [Signup steps](https://github.com/j81288423-web/ai-driven-test-lifecycle/blob/main/steps/signup.step.js): `steps/signup.step.js`
- [Search steps](https://github.com/j81288423-web/ai-driven-test-lifecycle/blob/main/steps/AutomationExercisePage.steps.js): `steps/AutomationExercisePage.steps.js`
- [Cucumber World](https://github.com/j81288423-web/ai-driven-test-lifecycle/blob/main/support/world.js): `support/world.js`

### Browser interactions

- [Home page object](https://github.com/j81288423-web/ai-driven-test-lifecycle/blob/main/pages/home.page.js): `pages/home.page.js`
- [Signup page object](https://github.com/j81288423-web/ai-driven-test-lifecycle/blob/main/pages/signup.page.js): `pages/signup.page.js`
- [Search locators](https://github.com/j81288423-web/ai-driven-test-lifecycle/blob/main/locators/AutomationExercisePageLocators.js): `locators/AutomationExercisePageLocators.js`
- [Home locators](https://github.com/j81288423-web/ai-driven-test-lifecycle/blob/main/locators/home.locators.js): `locators/home.locators.js`
- [Signup locators](https://github.com/j81288423-web/ai-driven-test-lifecycle/blob/main/locators/signup.locators.js): `locators/signup.locators.js`

### Shared support

- [Environment config](https://github.com/j81288423-web/ai-driven-test-lifecycle/blob/main/utils/configLoader.js): `utils/configLoader.js`
- [App settings](https://github.com/j81288423-web/ai-driven-test-lifecycle/blob/main/config/app.config.json): `config/app.config.json`
- [Environment settings](https://github.com/j81288423-web/ai-driven-test-lifecycle/blob/main/config/environments.config.json): `config/environments.config.json`
- [Test data generator](https://github.com/j81288423-web/ai-driven-test-lifecycle/blob/main/utils/testDataGenerator.js): `utils/testDataGenerator.js`
- [Step logger](https://github.com/j81288423-web/ai-driven-test-lifecycle/blob/main/utils/logger.js): `utils/logger.js`
- [Screenshot helper](https://github.com/j81288423-web/ai-driven-test-lifecycle/blob/main/utils/screenshotHelper.js): `utils/screenshotHelper.js`

### Other components

- **Test author**
- **AutomationExercise site**
- **Playwright browser**
- **Failure screenshots**

## Connections

- Test author → Home scenarios: authors (evidence: `README.md`)
- Test author → Product search: authors (evidence: `README.md`)
- Home scenarios → Home steps: binds scenarios (evidence: `README.md`)
- Product search → Search steps: binds scenarios (evidence: `README.md`)
- Home steps → Home page object: delegates to (evidence: `steps/home.step.js`)
- Signup steps → Signup page object: delegates to (evidence: `steps/signup.step.js`)
- Signup steps → Test data generator: generates data (evidence: `steps/signup.step.js`)
- Search steps → Search locators: uses (evidence: `steps/AutomationExercisePage.steps.js`)
- Cucumber World → Playwright browser: launches browser (evidence: `support/world.js`)
- Cucumber World → Environment config: reads settings (evidence: `support/world.js`)
- Cucumber World → Screenshot helper: captures failures (evidence: `support/world.js`)
- Home page object → Home locators: uses (evidence: `pages/home.page.js`)
- Signup page object → Signup locators: uses (evidence: `pages/signup.page.js`)
- Home page object → Environment config: reads settings (evidence: `pages/home.page.js`)
- Signup page object → Environment config: reads settings (evidence: `pages/signup.page.js`)
- Home page object → Step logger: logs steps (evidence: `pages/home.page.js`)
- Signup page object → Step logger: logs steps (evidence: `pages/signup.page.js`)
- Environment config → App settings: loads (evidence: `utils/configLoader.js`)
- Environment config → Environment settings: loads (evidence: `utils/configLoader.js`)
- Screenshot helper → Environment config: reads toggles (evidence: `utils/screenshotHelper.js`)
- Screenshot helper → Failure screenshots: writes (evidence: `utils/screenshotHelper.js`)
- Cucumber World → Failure screenshots: attaches on failure (evidence: `support/world.js`)
- Home page object → AutomationExercise site: navigates (evidence: `README.md`)
- Signup page object → AutomationExercise site: interacts with
- Search steps → AutomationExercise site: navigates and searches (evidence: `steps/AutomationExercisePage.steps.js`)
