RequirementGroupTest.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. namespace Tests\Feature\API;
  3. use App\Models\RequirementGroup;
  4. use Tests\Feature\TestCase;
  5. class RequirementGroupTest extends TestCase
  6. {
  7. public function test_requirement_group_list()
  8. {
  9. RequirementGroup::factory(30)->create();
  10. $response = $this->get(route('requirement-group.index'));
  11. $response->assertStatus(200)
  12. ->assertJsonStructure([
  13. 'data' => [
  14. '*' => [
  15. 'name',
  16. 'abbr_name'
  17. ]
  18. ]
  19. ]);
  20. }
  21. public function test_requirement_group_create(): void
  22. {
  23. $response = $this->post(route('requirement-group.store'), [
  24. 'abbr_name' => fake()->text(10),
  25. 'name' => fake()->text(100),
  26. ]);
  27. $response->assertStatus(201);
  28. }
  29. public function test_requirement_group_update(): void
  30. {
  31. $group = RequirementGroup::factory()->create();
  32. $form = [
  33. 'name' => fake()->text(100),
  34. 'abbr_name' => fake()->text(15),
  35. ];
  36. $response = $this->put(route('requirement-group.update', ['requirement_group' => $group->id]), $form);
  37. $response->assertStatus(204);
  38. $newRequirementGroup = RequirementGroup::find($group->id);
  39. $this->assertEquals($form['name'], $newRequirementGroup->name);
  40. $this->assertEquals($form['abbr_name'], $newRequirementGroup->abbr_name);
  41. }
  42. public function test_requirement_group_delete(): void
  43. {
  44. $group = RequirementGroup::factory()->create();
  45. $response = $this->delete(route('requirement-group.destroy', ['requirement_group' => $group->id]));
  46. $response->assertStatus(204);
  47. $this->assertNull(RequirementGroup::find($group->id));
  48. }
  49. }