# FieldOps Cloud QA Phase Certification

Date: 2026-06-16

## Phase A - Planning And Dependency Register

Status: Approved

The QA issue register and dependency graph were completed before implementation work continued. The active sequence was confirmed as:

1. Phase B dataset completion.
2. Phase C repeatable QA environment certification.

## Phase B - Dataset Completion

Status: Approved

The demo/QA dataset now covers the required scenarios:

- Tenants: Basic, Pro, trialing, expired trial, suspended, past due, active, and explicit demo tenant coverage.
- Users and roles: platform admin, owner, manager, supervisor, team member, trainee, and demo user.
- Operational records: 25+ jobs, 10+ clients, 8+ quotes, and 8+ invoices.
- Job states: pending, scheduled, in progress, completed, blocked, and invoiced.
- Invoice states: draft, sent, unpaid, partial, paid, and overdue.
- Supporting QA records: 3+ field notes, 2+ customer portal tokens, and 10+ seeded audit events.

## Phase C - QA Environment Certification

Status: Approved

Certification checks now prove:

- Operations seed data is repeatable.
- Demo reset clears the QA fixture session keys.
- Tenant isolation checks exist.
- Demo cleanup isolation checks exist.
- Test users and roles exist.
- Quote, job, invoice, client, audit, portal, and field-note workflow coverage is available.

Certification marker emitted by the test runner:

```text
QA ENVIRONMENT CERTIFIED
```

## Verification Evidence

Commands passed:

```powershell
& 'C:\xampp\php\php.exe' tests\run.php
composer validate --no-check-publish
composer audit
$env:COMPOSER_PROCESS_TIMEOUT='0'; composer check
```

XAMPP/local verification passed:

```powershell
Invoke-WebRequest 'http://localhost/FieldOps-Cloud/public' -UseBasicParsing
Invoke-WebRequest 'http://localhost/FieldOps-Cloud/public/demo/platform-admin' -UseBasicParsing
```

Browser smoke passed with zero failures across mobile, tablet, and desktop:

```powershell
$env:FIELDOPS_BASE_URL='http://localhost/FieldOps-Cloud/public'
$env:BROWSER_EXECUTABLE_PATH='C:\Program Files\Google\Chrome\Application\chrome.exe'
$env:NODE_PATH='C:\Users\chama\.cache\codex-runtimes\codex-primary-runtime\dependencies\node\node_modules;C:\Users\chama\.cache\codex-runtimes\codex-primary-runtime\dependencies\node\node_modules\.pnpm\node_modules'
& 'C:\Users\chama\.cache\codex-runtimes\codex-primary-runtime\dependencies\node\bin\node.exe' tools\browser-smoke.cjs
```

## Notes

- The verified workspace was synced to `C:\xampp\htdocs\FieldOps-Cloud`.
- Composer is available from `C:\composer\composer.bat`; `docs/COMMANDS.md` has been updated to avoid the missing `composer.phar` fallback.
