TeamMemberTest.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. namespace Tests\Feature\API;
  3. use App\Models\Project;
  4. use App\Models\TeamMember;
  5. use App\Models\User;
  6. use Illuminate\Foundation\Testing\RefreshDatabase;
  7. use Illuminate\Foundation\Testing\WithFaker;
  8. use Illuminate\Support\Facades\Auth;
  9. use Tests\Feature\TestCase;
  10. class TeamMemberTest extends TestCase
  11. {
  12. public function test_team_members_list()
  13. {
  14. TeamMember::factory(30)->create();
  15. $response = $this->getJson(route('team-member.list', ['project' => Project::query()->first()->id]));
  16. $response->assertStatus(200)
  17. ->assertJsonStructure([
  18. 'data' => [
  19. '*' => [
  20. 'id',
  21. 'user',
  22. 'user_id',
  23. 'role',
  24. 'limited',
  25. 'join_at',
  26. ]
  27. ]
  28. ]);
  29. }
  30. public function test_team_member_delete(): void
  31. {
  32. $teamMember = TeamMember::factory()->create();
  33. $response = $this->delete(route('team-member.destroy', ['team_member' => $teamMember->id]));
  34. $response->assertStatus(204);
  35. $this->assertNull(TeamMember::find($teamMember->id));
  36. }
  37. public function test_team_member_manage(): void
  38. {
  39. $project = Project::factory()->create();
  40. $formData = [];
  41. for ($i = 0; $i < 10; $i++) {
  42. $formData[] = [
  43. 'user_id' => User::query()->create([
  44. ...User::factory()->make()->toArray(),
  45. "company_id" => Auth::user()->company_id,
  46. "password" => uniqid(),
  47. ])->id,
  48. 'role' => fake()->text(20),
  49. 'limited' => 1
  50. ];
  51. }
  52. $response = $this->postJson(route('team-member.manage-members', ['project' => $project->id]), $formData);
  53. dump($response->getContent());
  54. $response->assertStatus(201);
  55. $this->assertEquals(count($formData), TeamMember::query()->where("project_id", $project->id)->count());
  56. }
  57. }