TenantAtlas/tests/Feature/Guards
ahmido 73a3a62451 Spec 122: Empty state consistency pass (#148)
## Summary
- unify empty-state UX across the six in-scope Filament list pages
- move empty-state ownership toward resource `table()` definitions while preserving existing RBAC behavior
- add focused Pest coverage for empty-state rendering, CTA outcomes, populated-state regression behavior, and action-surface compliance
- add the Spec 122 planning artifacts and product discovery documents used for this pass

## Changed surfaces
- `PolicyResource`
- `BackupSetResource`
- `RestoreRunResource`
- `BackupScheduleResource`
- `WorkspaceResource`
- `AlertDeliveryResource`

## Tests
- `vendor/bin/sail artisan test --compact tests/Feature/Filament/EmptyStateConsistencyTest.php`
- `vendor/bin/sail artisan test --compact tests/Feature/Filament/Alerts/AlertDeliveryViewerTest.php`
- `vendor/bin/sail artisan test --compact tests/Feature/Filament/CreateCtaPlacementTest.php`
- `vendor/bin/sail artisan test --compact tests/Feature/PolicySyncStartSurfaceTest.php`
- `vendor/bin/sail artisan test --compact tests/Feature/BackupScheduling/BackupScheduleLifecycleAuthorizationTest.php`
- `vendor/bin/sail artisan test --compact tests/Feature/Filament/BackupSetUiEnforcementTest.php`
- `vendor/bin/sail artisan test --compact tests/Feature/Filament/RestoreRunUiEnforcementTest.php`
- `vendor/bin/sail artisan test --compact tests/Feature/Guards/ActionSurfaceContractTest.php`
- `vendor/bin/sail bin pint --dirty --format agent`

## Notes
- Filament v5 / Livewire v4.0+ compliance is preserved.
- Panel provider registration remains unchanged in `bootstrap/providers.php`.
- No new globally searchable resources were added.
- Destructive actions were not introduced by this pass.
- Alert Deliveries is documented as the explicit no-header-action exemption for the empty-state CTA relocation rule.
- Manual light/dark visual QA evidence is still expected in the PR/review artifact set for the remaining checklist items (`T018`, `T025`).

Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de>
Reviewed-on: #148
2026-03-08 02:17:51 +00:00
..
ActionSurfaceContractTest.php Spec 122: Empty state consistency pass (#148) 2026-03-08 02:17:51 +00:00
ActionSurfaceValidatorTest.php feat: action-surface contract inspect affordance + clickable rows (#100) 2026-02-08 20:31:36 +00:00
AdminWorkspaceRoutesGuardTest.php Spec 094: Assignment ops observability hardening (#113) 2026-02-15 14:08:14 +00:00
NoAdHocFilamentAuthPatternsTest.php Spec 119: Drift cutover to Baseline Compare (golden master) (#144) 2026-03-06 14:30:49 +00:00
NoAdHocRetryInBulkWorkersTest.php 056-remove-legacy-bulkops (#65) 2026-01-19 23:27:52 +00:00
NoAdHocStatusBadgesTest.php 059-unified-badges (#71) 2026-01-22 23:44:51 +00:00
NoBroadSecretRedactionPatternsTest.php Spec 120: harden secret redaction integrity (#146) 2026-03-07 16:43:01 +00:00
NoForbiddenTagBadgeColorsTest.php feat: tag badge catalog (060) (#72) 2026-01-23 23:05:55 +00:00
NoLegacyBulkOperationsTest.php 056-remove-legacy-bulkops (#65) 2026-01-19 23:27:52 +00:00
NoLegacyRunBackfillTest.php Spec 092: Legacy Purge (runs/routes/UI/test shims) (#110) 2026-02-14 18:43:56 +00:00
NoLegacyRunsTest.php Spec 119: Drift cutover to Baseline Compare (golden master) (#144) 2026-03-06 14:30:49 +00:00
NoLegacyTenantGraphOptionsTest.php feat(spec-088): remove tenant graphOptions legacy path (#105) 2026-02-12 10:14:44 +00:00
NoTenantCredentialRuntimeReadsSpec081Test.php Spec 081: Provider connection cutover (#98) 2026-02-08 11:28:51 +00:00
Spec116OneEngineGuardTest.php Spec 117: Baseline Drift Engine + evidence fidelity/provenance (#142) 2026-03-03 07:23:01 +00:00
Spec118NoLegacyBaselineDriftGuardTest.php Spec 119: Drift cutover to Baseline Compare (golden master) (#144) 2026-03-06 14:30:49 +00:00
Spec120NoBroadAuditRedactionFallbacksTest.php Spec 120: harden secret redaction integrity (#146) 2026-03-07 16:43:01 +00:00
Spec120NoGraphContractSecretMetadataTest.php Spec 120: harden secret redaction integrity (#146) 2026-03-07 16:43:01 +00:00