chore(spec): mark bulk-ops QA tasks complete

This commit is contained in:
Ahmed Darrazi 2025-12-25 03:36:11 +01:00
parent d718a127c5
commit 59b229cbad

View File

@ -113,7 +113,7 @@ ### Implementation for Bulk Sync Policies
- [x] T035c Add bulk sync action to PolicyResource in app/Filament/Resources/PolicyResource.php
- [x] T035d Dispatch SyncPoliciesJob for selected policies (choose per-ID or batched IDs) in app/Jobs/SyncPoliciesJob.php (or a new dedicated bulk sync job)
- [ ] T035e Manual QA: bulk sync 25 policies (verify queued processing + notifications)
- [x] T035e Manual QA: bulk sync 25 policies (verify queued processing + notifications)
**Checkpoint**: Bulk sync action queues work and respects permissions
@ -133,9 +133,9 @@ ### Tests for User Story 5
### Validation for User Story 5
- [ ] T039 [US5] Manual test: Bulk delete 10 policies → confirm without typing (should work)
- [ ] T040 [US5] Manual test: Bulk delete 25 policies → type "delete" → button stays disabled
- [ ] T041 [US5] Manual test: Bulk delete 25 policies → type "DELETE" → button enables, operation proceeds
- [x] T039 [US5] Manual test: Bulk delete 10 policies → confirm without typing (should work)
- [x] T040 [US5] Manual test: Bulk delete 25 policies → type "delete" → button stays disabled
- [x] T041 [US5] Manual test: Bulk delete 25 policies → type "DELETE" → button enables, operation proceeds
- [x] T042 [US5] Run tests: `./vendor/bin/sail artisan test tests/Feature/BulkTypeToConfirmTest.php`
**Checkpoint**: Type-to-confirm working correctly for all thresholds
@ -162,13 +162,13 @@ ### Implementation for User Story 6
- [x] T049 [US6] Update BulkPolicyExportJob to emit progress after each chunk
- [x] T050 [US6] Implement circuit breaker logic (abort if >50% fail) in jobs
- [x] T051 [US6] Add progress polling to Filament notifications or sidebar widget
- [ ] T052 [US6] Test progress with 100 policies (manual QA, observe updates)
- [ ] T053 [US6] Test circuit breaker with mock failures (manual QA)
- [x] T052 [US6] Test progress with 100 policies (manual QA, observe updates)
- [x] T053 [US6] Test circuit breaker with mock failures (manual QA)
- [x] T054 [US6] Run tests: `./vendor/bin/sail artisan test tests/Feature/BulkProgressNotificationTest.php`
- [x] T054a [US6] Define/verify polling interval meets NFR-005.3 (≤10s updates) and document where configured
- [ ] T054b [US6] Manual QA: force a catastrophic job failure and verify FR-005.13 notification behavior
- [ ] T054c [US6] Manual QA: verify UI remains responsive during a 100-item queued run (NFR-005.4)
- [x] T054b [US6] Manual QA: force a catastrophic job failure and verify FR-005.13 notification behavior
- [x] T054c [US6] Manual QA: verify UI remains responsive during a 100-item queued run (NFR-005.4)
**Checkpoint**: Progress tracking working, polling updates UI, circuit breaker aborts high-failure jobs
@ -194,7 +194,7 @@ ### Implementation for User Story 3
- [x] T061 [US3] Implement eligibility check per version in job (reuse pruneEligible scope)
- [x] T062 [US3] Collect skip reasons for ineligible versions
- [x] T063 [US3] Add type-to-confirm for ≥20 versions
- [ ] T064 [US3] Test prune with 30 versions (15 eligible, 15 ineligible) - manual QA
- [x] T064 [US3] Test prune with 30 versions (15 eligible, 15 ineligible) - manual QA
- [x] T065 [US3] Verify skip reasons in notification and audit log
- [x] T066 [US3] Run tests: `./vendor/bin/sail artisan test tests/Feature/BulkPruneVersionsTest.php`
@ -230,7 +230,7 @@ ### Implementation for User Story 4
- [x] T073 [US4] Filter by deletable() scope (completed, failed, aborted only)
- [x] T074 [US4] Skip running restore runs with warning
- [x] T075 [US4] Add type-to-confirm for ≥20 runs
- [ ] T076 [US4] Test delete with 20 completed + 5 running (manual QA, verify 5 skipped)
- [x] T076 [US4] Test delete with 20 completed + 5 running (manual QA, verify 5 skipped)
- [x] T077 [US4] Run tests: `./vendor/bin/sail artisan test tests/Feature/BulkDeleteRestoreRunsTest.php`
- [x] T077a [US4] Add bulk force delete restore runs job in app/Jobs/BulkRestoreRunForceDeleteJob.php
@ -262,7 +262,7 @@ ### Implementation for Additional Resource
- [x] T081 Add bulk delete action to BackupSetResource in app/Filament/Resources/BackupSetResource.php
- [x] T082 Verify cascade-delete logic for backup items (should be automatic via foreign key)
- [x] T083 Add type-to-confirm for ≥10 sets
- [ ] T084 Test delete with 15 backup sets (manual QA)
- [x] T084 Test delete with 15 backup sets (manual QA)
- [x] T085 Run tests: `./vendor/bin/sail artisan test tests/Feature/BulkDeleteBackupSetsTest.php`
- [x] T085e Add bulk restore backup sets job in app/Jobs/BulkBackupSetRestoreJob.php
@ -295,9 +295,9 @@ ## Phase 10: Polish & Cross-Cutting Concerns
- [ ] T090 Load test: Concurrent bulk operations (2-3 admins, different resources)
- [ ] T091 [P] Security review: Verify tenant isolation in all jobs
- [ ] T092 [P] Permission audit: Verify all bulk actions respect RBAC
- [ ] T093 Run full test suite: `./vendor/bin/sail artisan test`
- [ ] T094 Run Pint formatting: `./vendor/bin/sail composer pint`
- [ ] T095 Manual QA checklist: Complete all scenarios from quickstart.md
- [x] T093 Run full test suite: `./vendor/bin/sail artisan test`
- [x] T094 Run Pint formatting: `./vendor/bin/sail composer pint`
- [x] T095 Manual QA checklist: Complete all scenarios from quickstart.md
- [x] T096 Document configuration options (chunk size, polling interval, retention days)
- [ ] T097 Create BulkOperationRun resource page in Filament (view progress, retry failed)
- [ ] T098 Add bulk operation metrics to dashboard (total runs, success rate)