# gurpreetwork9582/saucedemo-bdd-automation architecture

> Architecture diagram of the GitHub repository gurpreetwork9582/saucedemo-bdd-automation, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-11). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/gurpreetwork9582/saucedemo-bdd-automation
- Repository: https://github.com/gurpreetwork9582/saucedemo-bdd-automation

## Overview

This repository is a SauceDemo end-to-end browser-automation suite, with parallel Pytest and Behave entry points. Its product workflow covers authentication, cart changes, checkout, and order confirmation; the Behave checkout implementation is shown, while Pytest test bodies are not. The graph keeps the two suite paths distinct and includes shared authentication and locator code. Edges for documented but unsampled Pytest flows are supported by the README; source-level evidence is cited where available.

Main entry points: [`features/steps/checkout_steps.py`](https://github.com/gurpreetwork9582/saucedemo-bdd-automation/blob/main/features/steps/checkout_steps.py) (Checkout steps), [`tests`](https://github.com/gurpreetwork9582/saucedemo-bdd-automation/tree/main/tests) (Pytest flows), [`conftest.py`](https://github.com/gurpreetwork9582/saucedemo-bdd-automation/blob/main/conftest.py) (Pytest browser fixture), [`features/checkout.feature`](https://github.com/gurpreetwork9582/saucedemo-bdd-automation/blob/main/features/checkout.feature) (Checkout scenario)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_suites["Automation suites"]
  node_pytest["Pytest flows"]
  node_behave_feature["Checkout scenario<br/>[checkout.feature]"]
  node_behave_steps["Checkout steps<br/>[checkout_steps.py]"]
end

subgraph group_browser["Browser setup"]
  node_pytest_browser["Pytest browser fixture<br/>[conftest.py]"]
  node_behave_browser["Behave browser hooks<br/>[environment.py]"]
end

subgraph group_shared["Shared helpers"]
  node_login_helper["Login and cookies<br/>[Login_auth.py]"]
  node_logout_helper["Logout helper<br/>[Logout_auth.py]"]
  node_locators["UI locators<br/>[Locators.py]"]
end

subgraph group_journey["SauceDemo journey"]
  node_saucedemo{{"SauceDemo site"}}
  node_authentication["Authentication<br/>[Login_auth.py]"]
  node_cart["Cart operations<br/>[checkout_steps.py]"]
  node_checkout["Checkout details<br/>[checkout_steps.py]"]
  node_confirmation["Order confirmation<br/>[checkout_steps.py]"]
end

node_operator(("Test operator"))

node_operator -->|"runs"| node_pytest
node_operator -->|"runs"| node_behave_feature
node_behave_feature -->|"maps steps"| node_behave_steps
node_pytest_browser -->|"uses"| node_login_helper
node_pytest_browser -->|"imports"| node_logout_helper
node_behave_browser -.->|"opens browser"| node_saucedemo
node_login_helper -->|"drives browser"| node_saucedemo
node_behave_steps -->|"uses selectors"| node_locators
node_behave_steps -->|"drives browser"| node_saucedemo
node_behave_steps -->|"logs in"| node_authentication
node_behave_steps -->|"adds items"| node_cart
node_behave_steps -->|"submits details"| node_checkout
node_behave_steps -->|"checks message"| node_confirmation
node_pytest -->|"covers login"| node_authentication
node_pytest -->|"covers cart changes"| node_cart
node_pytest -->|"covers checkout"| node_checkout
node_pytest -->|"verifies order"| node_confirmation

click node_pytest "https://github.com/gurpreetwork9582/saucedemo-bdd-automation/tree/main/tests"
click node_behave_feature "https://github.com/gurpreetwork9582/saucedemo-bdd-automation/blob/main/features/checkout.feature"
click node_behave_steps "https://github.com/gurpreetwork9582/saucedemo-bdd-automation/blob/main/features/steps/checkout_steps.py"
click node_pytest_browser "https://github.com/gurpreetwork9582/saucedemo-bdd-automation/blob/main/conftest.py"
click node_behave_browser "https://github.com/gurpreetwork9582/saucedemo-bdd-automation/blob/main/features/environment.py"
click node_login_helper "https://github.com/gurpreetwork9582/saucedemo-bdd-automation/blob/main/config/Login_auth.py"
click node_logout_helper "https://github.com/gurpreetwork9582/saucedemo-bdd-automation/blob/main/config/Logout_auth.py"
click node_locators "https://github.com/gurpreetwork9582/saucedemo-bdd-automation/blob/main/locators/Locators.py"
click node_authentication "https://github.com/gurpreetwork9582/saucedemo-bdd-automation/blob/main/config/Login_auth.py"
click node_cart "https://github.com/gurpreetwork9582/saucedemo-bdd-automation/blob/main/features/steps/checkout_steps.py"
click node_checkout "https://github.com/gurpreetwork9582/saucedemo-bdd-automation/blob/main/features/steps/checkout_steps.py"
click node_confirmation "https://github.com/gurpreetwork9582/saucedemo-bdd-automation/blob/main/features/steps/checkout_steps.py"

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_pytest,node_behave_feature,node_behave_steps toneBlue
class node_pytest_browser,node_behave_browser toneAmber
class node_login_helper,node_logout_helper,node_locators toneMint
class node_saucedemo,node_authentication,node_cart,node_checkout,node_confirmation toneRose
class node_operator toneIndigo
```

## Components

### Automation suites

- [Pytest flows](https://github.com/gurpreetwork9582/saucedemo-bdd-automation/tree/main/tests): `tests`
- [Checkout scenario](https://github.com/gurpreetwork9582/saucedemo-bdd-automation/blob/main/features/checkout.feature): `features/checkout.feature`
- [Checkout steps](https://github.com/gurpreetwork9582/saucedemo-bdd-automation/blob/main/features/steps/checkout_steps.py): `features/steps/checkout_steps.py`

### Browser setup

- [Pytest browser fixture](https://github.com/gurpreetwork9582/saucedemo-bdd-automation/blob/main/conftest.py): `conftest.py`
- [Behave browser hooks](https://github.com/gurpreetwork9582/saucedemo-bdd-automation/blob/main/features/environment.py): `features/environment.py`

### Shared helpers

- [Login and cookies](https://github.com/gurpreetwork9582/saucedemo-bdd-automation/blob/main/config/Login_auth.py): `config/Login_auth.py`
- [Logout helper](https://github.com/gurpreetwork9582/saucedemo-bdd-automation/blob/main/config/Logout_auth.py): `config/Logout_auth.py`
- [UI locators](https://github.com/gurpreetwork9582/saucedemo-bdd-automation/blob/main/locators/Locators.py): `locators/Locators.py`

### SauceDemo journey

- **SauceDemo site**
- [Authentication](https://github.com/gurpreetwork9582/saucedemo-bdd-automation/blob/main/config/Login_auth.py): `config/Login_auth.py`
- [Cart operations](https://github.com/gurpreetwork9582/saucedemo-bdd-automation/blob/main/features/steps/checkout_steps.py): `features/steps/checkout_steps.py`
- [Checkout details](https://github.com/gurpreetwork9582/saucedemo-bdd-automation/blob/main/features/steps/checkout_steps.py): `features/steps/checkout_steps.py`
- [Order confirmation](https://github.com/gurpreetwork9582/saucedemo-bdd-automation/blob/main/features/steps/checkout_steps.py): `features/steps/checkout_steps.py`

### Other components

- **Test operator**

## Connections

- Test operator → Pytest flows: runs (evidence: `README.md`)
- Test operator → Checkout scenario: runs (evidence: `README.md`)
- Checkout scenario → Checkout steps: maps steps (evidence: `README.md`)
- Pytest browser fixture → Login and cookies: uses (evidence: `conftest.py`)
- Pytest browser fixture → Logout helper: imports (evidence: `conftest.py`)
- Behave browser hooks → SauceDemo site: opens browser
- Login and cookies → SauceDemo site: drives browser (evidence: `config/Login_auth.py`)
- Checkout steps → UI locators: uses selectors (evidence: `features/steps/checkout_steps.py`)
- Checkout steps → SauceDemo site: drives browser (evidence: `features/steps/checkout_steps.py`)
- Checkout steps → Authentication: logs in (evidence: `features/steps/checkout_steps.py`)
- Checkout steps → Cart operations: adds items (evidence: `features/steps/checkout_steps.py`)
- Checkout steps → Checkout details: submits details (evidence: `features/steps/checkout_steps.py`)
- Checkout steps → Order confirmation: checks message (evidence: `features/steps/checkout_steps.py`)
- Pytest flows → Authentication: covers login (evidence: `README.md`)
- Pytest flows → Cart operations: covers cart changes (evidence: `README.md`)
- Pytest flows → Checkout details: covers checkout (evidence: `README.md`)
- Pytest flows → Order confirmation: verifies order (evidence: `README.md`)
