getTitle())->toBe('Policy sync queued'); expect($toast->getBody())->toBe('Running in the background.'); })->group('ops-ux'); it('enforces queued toast duration within 3–5 seconds', function (): void { $toast = OperationUxPresenter::queuedToast('policy.sync'); $duration = $toast->getDuration(); expect($duration)->toBeInt(); expect($duration)->toBeGreaterThanOrEqual(3000); expect($duration)->toBeLessThanOrEqual(5000); })->group('ops-ux'); it('builds canonical already-queued toast copy', function (): void { $toast = OperationUxPresenter::alreadyQueuedToast('backup_set.add_policies'); expect($toast->getTitle())->toBe('Backup set update already queued'); expect($toast->getBody())->toBe('A matching run is already queued or running.'); })->group('ops-ux');