Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

UpdateCompanyEmployeeRoleTest.php 1.7KB

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