|
6 | 6 | use App\Filament\Resources\PluginResource\Pages\ListPlugins; |
7 | 7 | use App\Models\Plugin; |
8 | 8 | use App\Models\User; |
| 9 | +use Filament\Actions\Testing\TestAction; |
9 | 10 | use Illuminate\Foundation\Testing\RefreshDatabase; |
10 | 11 | use Livewire\Livewire; |
11 | 12 | use Tests\TestCase; |
@@ -59,4 +60,39 @@ public function test_grant_to_user_action_is_visible_for_paid_plugins_on_edit(): |
59 | 60 | ->test(EditPlugin::class, ['record' => $plugin->getRouteKey()]) |
60 | 61 | ->assertActionVisible('grantToUser'); |
61 | 62 | } |
| 63 | + |
| 64 | + public function test_grant_to_user_action_can_be_called_with_user_id_on_list(): void |
| 65 | + { |
| 66 | + $plugin = Plugin::factory()->paid()->approved()->create(); |
| 67 | + $recipient = User::factory()->create(); |
| 68 | + |
| 69 | + Livewire::actingAs($this->admin) |
| 70 | + ->test(ListPlugins::class) |
| 71 | + ->callAction( |
| 72 | + TestAction::make('grantToUser')->table($plugin), |
| 73 | + data: ['user_id' => $recipient->id], |
| 74 | + ) |
| 75 | + ->assertHasNoFormErrors(); |
| 76 | + |
| 77 | + $this->assertDatabaseHas('plugin_licenses', [ |
| 78 | + 'user_id' => $recipient->id, |
| 79 | + 'plugin_id' => $plugin->id, |
| 80 | + ]); |
| 81 | + } |
| 82 | + |
| 83 | + public function test_grant_to_user_action_can_be_called_with_user_id_on_edit(): void |
| 84 | + { |
| 85 | + $plugin = Plugin::factory()->paid()->approved()->create(); |
| 86 | + $recipient = User::factory()->create(); |
| 87 | + |
| 88 | + Livewire::actingAs($this->admin) |
| 89 | + ->test(EditPlugin::class, ['record' => $plugin->getRouteKey()]) |
| 90 | + ->callAction('grantToUser', data: ['user_id' => $recipient->id]) |
| 91 | + ->assertHasNoFormErrors(); |
| 92 | + |
| 93 | + $this->assertDatabaseHas('plugin_licenses', [ |
| 94 | + 'user_id' => $recipient->id, |
| 95 | + 'plugin_id' => $plugin->id, |
| 96 | + ]); |
| 97 | + } |
62 | 98 | } |
0 commit comments