diff --git a/app/Filament/Pages/DriftLanding.php b/app/Filament/Pages/DriftLanding.php index 7c9c3fa..ef5acb5 100644 --- a/app/Filament/Pages/DriftLanding.php +++ b/app/Filament/Pages/DriftLanding.php @@ -17,8 +17,6 @@ use App\Support\OpsUx\OperationUxPresenter; use App\Support\OpsUx\OpsUxBrowserEvents; use BackedEnum; -use Filament\Actions\Action; -use Filament\Notifications\Notification; use Filament\Pages\Page; use UnitEnum; diff --git a/app/Filament/Resources/PolicyResource/Pages/ViewPolicy.php b/app/Filament/Resources/PolicyResource/Pages/ViewPolicy.php index b229116..699b86d 100644 --- a/app/Filament/Resources/PolicyResource/Pages/ViewPolicy.php +++ b/app/Filament/Resources/PolicyResource/Pages/ViewPolicy.php @@ -105,7 +105,6 @@ protected function getActions(): array return; } - OperationUxPresenter::queuedToast('policy.capture_snapshot') ->actions([ \Filament\Actions\Action::make('view_run') diff --git a/app/Filament/Resources/PolicyVersionResource.php b/app/Filament/Resources/PolicyVersionResource.php index 599ce82..19f0319 100644 --- a/app/Filament/Resources/PolicyVersionResource.php +++ b/app/Filament/Resources/PolicyVersionResource.php @@ -459,9 +459,16 @@ public static function table(Table $table): Table ->url(OperationRunLinks::view($opRun, $tenant)), ]) ->duration(8000) - ->sendToDatabase($initiator) - ->send(); + ->sendToDatabase($initiator); } + + OperationUxPresenter::queuedToast('policy_version.prune') + ->actions([ + Actions\Action::make('view_run') + ->label('View run') + ->url(OperationRunLinks::view($opRun, $tenant)), + ]) + ->send(); }) ->deselectRecordsAfterCompletion(), @@ -609,9 +616,16 @@ public static function table(Table $table): Table ->url(OperationRunLinks::view($opRun, $tenant)), ]) ->duration(8000) - ->sendToDatabase($initiator) - ->send(); + ->sendToDatabase($initiator); } + + OperationUxPresenter::queuedToast('policy_version.force_delete') + ->actions([ + Actions\Action::make('view_run') + ->label('View run') + ->url(OperationRunLinks::view($opRun, $tenant)), + ]) + ->send(); }) ->deselectRecordsAfterCompletion(), ]), diff --git a/app/Livewire/BackupSetPolicyPickerTable.php b/app/Livewire/BackupSetPolicyPickerTable.php index bfce5dc..bece723 100644 --- a/app/Livewire/BackupSetPolicyPickerTable.php +++ b/app/Livewire/BackupSetPolicyPickerTable.php @@ -317,7 +317,6 @@ public function table(Table $table): Table return; } - OperationUxPresenter::queuedToast((string) $opRun->type) ->actions([ \Filament\Actions\Action::make('view_run') diff --git a/tests/Feature/OpsUx/RestoreExecutionOperationRunSyncTest.php b/tests/Feature/OpsUx/RestoreExecutionOperationRunSyncTest.php index 06ea62e..622e503 100644 --- a/tests/Feature/OpsUx/RestoreExecutionOperationRunSyncTest.php +++ b/tests/Feature/OpsUx/RestoreExecutionOperationRunSyncTest.php @@ -5,6 +5,7 @@ use App\Jobs\ExecuteRestoreRunJob; use App\Models\OperationRun; use App\Models\RestoreRun; +use App\Services\BulkOperationService; use App\Services\Intune\AuditLogger; use App\Services\Intune\RestoreService; @@ -34,6 +35,9 @@ expect($operationRun)->not->toBeNull(); expect($operationRun?->status)->toBe('queued'); + $this->mock(BulkOperationService::class, function ($mock): void { + $mock->shouldReceive('sanitizeFailureReason')->andReturnUsing(fn (string $message): string => $message); + }); // Simulate downstream code updating RestoreRun status via query builder (no model events). $this->mock(RestoreService::class, function ($mock) use ($restoreRun): void { $mock->shouldReceive('executeForRun') @@ -52,6 +56,7 @@ $job->handle( app(RestoreService::class), app(AuditLogger::class), + app(BulkOperationService::class), ); $operationRun = $operationRun?->fresh();