Adds browser fixture coverage for evidence system surfaces as described in Spec 376. Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #447
2.7 KiB
2.7 KiB
Fixture Design
Design Decision
No new fixture route or command is needed. Existing repo-native patterns are sufficient:
- Admin-plane surfaces use
GET /admin/local/smoke-logininlocal/testing. - System-plane surfaces use Pest Browser
actingAs($platformUser, 'platform'). - Data is created with existing factories and test helpers.
Per-Surface Fixture Contract
| Surface | Auth | Scope | Data source | Existing fixture source | New fixture source | Local/testing guarantee | Browser URL | Failure mode if regressed |
|---|---|---|---|---|---|---|---|---|
| Evidence Snapshot View | web guard through admin.local.smoke-login |
workspace + environment | seedEnvironmentReviewEvidence() |
Spec 372 smoke pattern | Spec 376 local test fixture | smoke-login route is local/testing-only | EvidenceSnapshotResource::getUrl('view', ...) |
auth-blocked, scope-blocked, or data-blocked |
| Required Permissions | web guard through admin.local.smoke-login |
workspace + environment | ManagedEnvironmentPermission rows from configured permission registry |
Spec 353/283 patterns | Spec 376 local permission seed helper | smoke-login route is local/testing-only | ManagedEnvironmentLinks::requiredPermissionsUrl() |
auth-blocked, scope-blocked, or data-blocked |
| System Dashboard | platform guard via Pest Browser actingAs |
platform plane | PlatformUser capabilities |
Spec 276 pattern | Spec 376 platform user fixture | no HTTP fixture route added | /system |
auth-blocked or capability-blocked |
| System Operations | platform guard via Pest Browser actingAs |
platform plane | same PlatformUser; empty-state data allowed |
Spec 276 pattern | Spec 376 platform user fixture | no HTTP fixture route added | /system/ops/runs |
auth-blocked or capability-blocked |
| Provider Connection Detail | web guard through existing admin session |
workspace + record-derived environment authority | ProviderConnection::factory()->platform()->verifiedHealthy() plus explicit environment_id |
Spec 353/281 patterns | Spec 376 local provider connection fixture | no new route added | ManagedEnvironmentLinks::providerConnectionUrl(..., 'view', $environment) |
scope-blocked, data-blocked, or timeout-blocked |
Route Safety
- No system smoke-login route was added.
- No admin smoke-login behavior was changed.
- No redirect validation behavior was changed.
- No production route or product UI route was added.
Browser Screenshot Contract
Screenshots are saved under artifacts/screenshots/:
001-evidence-snapshot-view.png002-required-permissions.png003-system-dashboard.png004-system-operations.png005-provider-connection-detail.png