UpdateTeamMemberRoleTest.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. namespace Tests\Feature;
  3. use App\Models\User;
  4. use Illuminate\Foundation\Testing\RefreshDatabase;
  5. use Laravel\Jetstream\Http\Livewire\TeamMemberManager;
  6. use Livewire\Livewire;
  7. use Tests\TestCase;
  8. class UpdateTeamMemberRoleTest extends TestCase
  9. {
  10. use RefreshDatabase;
  11. public function test_team_member_roles_can_be_updated()
  12. {
  13. $this->actingAs($user = User::factory()->withPersonalTeam()->create());
  14. $user->currentTeam->users()->attach(
  15. $otherUser = User::factory()->create(), ['role' => 'admin']
  16. );
  17. $component = Livewire::test(TeamMemberManager::class, ['team' => $user->currentTeam])
  18. ->set('managingRoleFor', $otherUser)
  19. ->set('currentRole', 'editor')
  20. ->call('updateRole');
  21. $this->assertTrue($otherUser->fresh()->hasTeamRole(
  22. $user->currentTeam->fresh(), 'editor'
  23. ));
  24. }
  25. public function test_only_team_owner_can_update_team_member_roles()
  26. {
  27. $user = User::factory()->withPersonalTeam()->create();
  28. $user->currentTeam->users()->attach(
  29. $otherUser = User::factory()->create(), ['role' => 'admin']
  30. );
  31. $this->actingAs($otherUser);
  32. $component = Livewire::test(TeamMemberManager::class, ['team' => $user->currentTeam])
  33. ->set('managingRoleFor', $otherUser)
  34. ->set('currentRole', 'editor')
  35. ->call('updateRole')
  36. ->assertStatus(403);
  37. $this->assertTrue($otherUser->fresh()->hasTeamRole(
  38. $user->currentTeam->fresh(), 'admin'
  39. ));
  40. }
  41. }