CreateApiTokenTest.php 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <?php
  2. namespace Tests\Feature;
  3. use App\Models\User;
  4. use Illuminate\Foundation\Testing\RefreshDatabase;
  5. use Laravel\Jetstream\Features;
  6. use Laravel\Jetstream\Http\Livewire\ApiTokenManager;
  7. use Livewire\Livewire;
  8. use Tests\TestCase;
  9. class CreateApiTokenTest extends TestCase
  10. {
  11. use RefreshDatabase;
  12. public function test_api_tokens_can_be_created()
  13. {
  14. if (! Features::hasApiFeatures()) {
  15. return $this->markTestSkipped('API support is not enabled.');
  16. }
  17. if (Features::hasTeamFeatures()) {
  18. $this->actingAs($user = User::factory()->withPersonalTeam()->create());
  19. } else {
  20. $this->actingAs($user = User::factory()->create());
  21. }
  22. Livewire::test(ApiTokenManager::class)
  23. ->set(['createApiTokenForm' => [
  24. 'name' => 'Test Token',
  25. 'permissions' => [
  26. 'read',
  27. 'update',
  28. ],
  29. ]])
  30. ->call('createApiToken');
  31. $this->assertCount(1, $user->fresh()->tokens);
  32. $this->assertEquals('Test Token', $user->fresh()->tokens->first()->name);
  33. $this->assertTrue($user->fresh()->tokens->first()->can('read'));
  34. $this->assertFalse($user->fresh()->tokens->first()->can('delete'));
  35. }
  36. }