# Project plan — katalon_tests

Evidence date: 2026-10-11.

Source repository: `git@bitbucket.org:overdrive/katalon_tests.git`.

Inspected default branch: `main` at `7fa8653` (2025-08-21, joshgatdew, "Fix Add to Cart tests"). `origin/HEAD` points at `main`. The only remote branch is `main`. History is seven commits, 2025-08-19 through 2025-08-21. The scan-host path `~/projects/sonar_scan/repos/katalon_tests` was not on this machine. The tree below was read from that git revision. Secret values are omitted. Protected profile fields that are empty in git are named so a human can confirm whether runtime values exist outside the repository.

This plan describes what the repository contains. It does not decide what the suite should become. There was no `silicon_ark/katalon_tests/` directory before this set. The source tree has a short `ShopFlow/README.md` plus `TEST_COVERAGE.md`, `TAG_STRATEGY.md`, `DYNAMIC_TEST_SUITES.md`, and `ADD_TO_CART_TEST_FIXES.md`. Those documents are incorporated below and compared with the files on disk.

## Product

`katalon_tests` is not the ShopFlow application. It is a Katalon Studio Web UI project named **ShopFlow**, stored at `ShopFlow/ShopFlow.prj`.

| String | Where | Provenance |
|---|---|---|
| ShopFlow | Project name in `ShopFlow.prj`; repository directory `ShopFlow/` | **Implemented** |
| Transactflow | Object-repository folders `Page_Transactflow` and `Page_Login  Transactflow` (two spaces). Katalon names those folders from the browser title at record time | **Implemented** as recorded page titles |
| AdminOverdrive | Object-repository folder `Page_AdminOverdrive` (49 objects) | **Implemented** as recorded page titles |
| `http://shopflow.io.dedi1534.jnb2.host-h.net` | `Profiles/default.glbl` global variable `url` | **Implemented** as the default execution profile |

`ShopFlow.prj` records `createdEdition` and `modifiedEdition` ENTERPRISE, `createdVersion` and `modifiedVersion` 10.3.0, `migratedVersion` 5.9.0, `type` WEBUI, `freeLicense` false. The committed `projectFileLocation` is `/home/josh/work/katalon_tests/ShopFlow/ShopFlow.prj`.

A separate Silicon Ark set, `playwright_tests/`, documents a Playwright ShopFlow suite whose directory is `qa.shopflow.io.dedi1534.jnb2.host-h.net` and whose default URL is `https://shopflow.php8` via `SHOPFLOW_URL`. The same git author, joshgatdew, appears on that suite's tip commit. Whether the Katalon `url` and the Playwright hosts are the same application is **Unknown / Requires Confirmation**.

## Branch reality

| Line | Tip | Date | What it is |
|---|---|---|---|
| `main` (default; `origin/HEAD`) | `7fa8653` | 2025-08-21 | Only branch. 7 commits |

History on `main`:

| Date | Commit | What the message says |
|---|---|---|
| 2025-08-19 | `871e69f` | Initial commit |
| 2025-08-19 | `040f3bb` | Add initial shopflow tests |
| 2025-08-19 | `aeb264a` | Object fixes |
| 2025-08-20 | `6d50bc3` | Various fixes and changes |
| 2025-08-20 | `9af7ea3` | Add to cart fixes |
| 2025-08-20 | `c8debfd` | Add to cart test fixes |
| 2025-08-21 | `7fa8653` | Fix Add to Cart tests |

No release tags were inspected. No Bitbucket pipeline file is in the tree.

The task that created this onboarding listed `sonar-project.properties` and `sonarqube_scan.bat` beside `ShopFlow/` at discovery time (2026-09-28). Neither file is in `7fa8653`, and a search of the tree found no `sonar` string. **Unknown / Requires Confirmation:** whether those files existed only on the scan host and were never committed.

## Objectives (inferred from the implementation, not from a written plan)

There is no statement of product goals beyond the test documentation. From the project layout and scripts, the suite is built to:

- Sign in to the host in `GlobalVariable.url`, including a Gmail IMAP read of a 2FA mail when a verification field is present.
- Exercise shop, cart, order, dashboard, admin, price-file, and report screens through Chrome.
- Select smoke cases by the tags `P1` and `SMOKE`, and regression cases by the tag `REGRESSION`, using Katalon dynamic filtering test suites.
- Send a set of HTTP requests against organisation, store, and session paths from one test case tagged as a placeholder.

## Scope

### In scope of `main`

1. One Katalon Studio project: `ShopFlow/`.
2. 24 test-case entities under `ShopFlow/Test Cases/`, with matching Groovy scripts under `ShopFlow/Scripts/`.
3. Dynamic filtering suites `Smoke_Tests_Dynamic` and `Regression_Tests_Dynamic`, an unused auto-discover Groovy suite, and a test-suite collection that runs only the regression suite.
4. 528 object-repository entries (Web UI and 12 REST objects).
5. One execution profile, `default`, with the site URL, a Gmail address, IMAP host and port, and empty protected password fields.
6. Sample price files under `ShopFlow/TestData/` that no script references.
7. Bash runners `run_smoke_tests.sh` and `run_regression_tests.sh`.
8. `build.gradle` with the Katalon Gradle plugin and no active dependencies.
9. The four Markdown guides listed above, plus a four-line `README.md`.

### Out of scope of the repository

- The ShopFlow / Transactflow application source, database, and hosting.
- Katalon Runtime Engine binaries. The shell scripts point at `/opt/katalon/katalon`.
- A real Katalon TestOps or Runtime API key. Both shell scripts pass `-apiKey="your-api-key-here"`.
- Passwords. `password` and `imap_pass` are protected and their committed `initValue` is an empty string.
- CI, SonarQube configuration, and a deployment pipeline. None are in this revision.
- Custom Katalon keywords. There is no `Keywords/` directory.
- Mobile, Windows, or Cucumber features. Imports for those keyword sets appear in scripts; the project type is WEBUI and the runners request Chrome.

## Major components

| Component | Path | Role |
|---|---|---|
| Project descriptor | `ShopFlow/ShopFlow.prj` | Katalon Enterprise 10.3.0 Web UI project |
| Test cases | `ShopFlow/Test Cases/` | 24 `.tc` entities and their tags |
| Scripts | `ShopFlow/Scripts/` | Groovy bodies. 25 `.groovy` files plus 25 committed `.groovy.backup` copies |
| Suites | `ShopFlow/Test Suites/suites/` and `Test Suites/main/` | Dynamic filter suites and one collection |
| Objects | `ShopFlow/Object Repository/` | Locators and REST request templates |
| Profile | `ShopFlow/Profiles/default.glbl` | URL, mailbox, empty protected secrets, counters |
| Runners | `ShopFlow/run_smoke_tests.sh`, `run_regression_tests.sh` | `katalonc`-style console invocation |
| Tag helper | `ShopFlow/Scripts/Include/TagBasedExecution.groovy` | Tag-execution class whose case finder returns an empty list |
| Gradle | `ShopFlow/build.gradle` | Plugin `com.katalon.gradle-plugin` 0.1.2 |

## Milestones visible in git

There is no milestone plan. The commit sequence is the only timeline:

1. **2025-08-19** — repository created and the initial ShopFlow tests added (`871e69f`, `040f3bb`), then object fixes (`aeb264a`).
2. **2025-08-20** — further fixes, then two commits aimed at add-to-cart (`6d50bc3`, `9af7ea3`, `c8debfd`).
3. **2025-08-21** — last change, `7fa8653`, "Fix Add to Cart tests". No later commit is on `main`.

`ADD_TO_CART_TEST_FIXES.md` describes the locator changes in that work. Its "Files Modified" section uses paths under `tests/ShopFlow/`. The repository layout is `ShopFlow/` at the repo root. Provenance of the path prefix: **Documented**, and it does not match the tree.

## Implementation plan (as left in the repository)

`TAG_STRATEGY.md` and `TEST_COVERAGE.md` describe a future cadence: smoke before each deployment, all `P1` before major releases, regression weekly, plus performance, mobile, accessibility, visual, API expansion, and CI. None of those schedules or extra suites are implemented as pipeline jobs. `DYNAMIC_TEST_SUITES.md` says the older static `Smoke_Tests.groovy` and `Regression_Tests.groovy` are still available. Those files are not in the tree.

What is implemented for execution:

- `run_smoke_tests.sh` launches the binary at `/opt/katalon/katalon` against `Test Suites/suites/Smoke_Tests_Dynamic`, Chrome, profile `default`, retry 1.
- `run_regression_tests.sh` does the same for `Regression_Tests_Dynamic` with retry 2.
- The dynamic suite entities filter with Katalon `DynamicBuiltInSearch`.

## Known dependencies

| Dependency | Evidence | Status |
|---|---|---|
| Katalon Studio / Runtime, Enterprise, around 10.3.0 | `ShopFlow.prj` | **Documented** by the project file. The installed binary on a runner is **Unknown** |
| Chrome | Runners and `com.kms.katalon.core.webui.chrome.properties` | **Implemented** as the requested browser |
| System under test at `GlobalVariable.url` | `Profiles/default.glbl` | **Implemented** as configuration. Reachability on 2026-10-11 was not tested |
| Gmail IMAP `imap.gmail.com:993` | Profile and `Read GMail 2fa Code` script | **Implemented**. Mailbox credentials in git are empty protected strings |
| JavaMail (`javax.mail`) | Used by the 2FA script | **Implemented** as imports. Whether the Katalon project bundles that library was not separately verified |
| Katalon Gradle plugin 0.1.2 | `build.gradle` | **Implemented**. No compile dependencies are active; Rest-Assured lines are comments |

## Current project status

The suite is a three-day burst of Katalon tests that stopped on 2025-08-21. Smoke and regression dynamic suites, a login-plus-IMAP-2FA case, and a large object repository are present. Several documents overstate coverage, name suites that are not in git, and describe test-data and tag-discovery behaviour the scripts do not perform. Passwords are not in the committed profile. There is no CI.

Items that need a human before this plan can be treated as operational:

1. Confirm the system under test: `http://shopflow.io.dedi1534.jnb2.host-h.net`, the Playwright QA host, `https://shopflow.php8`, or another URL.
2. Confirm whether protected `password` and `imap_pass` are supplied in a local Katalon profile or secret store.
3. Confirm whether anyone still runs this suite, and on which Katalon edition and version.
4. Confirm whether `sonar-project.properties` and `sonarqube_scan.bat` should exist; they are not in `7fa8653`.
5. Confirm the product name expected in the browser title: ShopFlow, Transactflow, or Admin Overdrive.
