RequirementTest.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. namespace Tests\Feature\API;
  3. use App\Models\Asset;
  4. use App\Models\Plan;
  5. use App\Models\Requirement;
  6. use Database\Factories\AssetFactory;
  7. use Illuminate\Foundation\Testing\RefreshDatabase;
  8. use Illuminate\Foundation\Testing\WithFaker;
  9. use Tests\Feature\TestCase;
  10. class RequirementTest extends TestCase
  11. {
  12. public function test_requirement_create(): void
  13. {
  14. $form = Requirement::factory()->make();
  15. $response = $this->post(route('requirement.store'), $form->toArray());
  16. $response->assertStatus(201);
  17. }
  18. public function test_requirement_query_by_site_id(): void
  19. {
  20. $asset = AssetFactory::new()->create();
  21. Requirement::factory(30)->create([
  22. 'asset_id' => $asset->id,
  23. ]);
  24. $response = $this->get(route('requirement.byAsset', ['asset_id' => $asset->id]));
  25. $response->assertStatus(200)->assertJsonStructure($this->simplePaginateResponseStructure([
  26. 'id',
  27. 'priority',
  28. 'title',
  29. 'created_by',
  30. 'plan',
  31. 'status',
  32. ]));
  33. }
  34. public function test_link_plan(): void
  35. {
  36. $asset = Asset::factory()->create();
  37. $plan = Plan::factory()->create([
  38. 'asset_id' => $asset->id,
  39. ]);
  40. $requirementIds = [];
  41. for ($i = 0; $i < 10; ++$i) {
  42. $requirementIds[] = Requirement::factory()->create(['asset_id' => $asset->id])?->id;
  43. }
  44. $response = $this->patch(route('requirement.linkPlan', ['plan_id' => $plan->id]), [
  45. 'requirement_ids' => $requirementIds,
  46. ]);
  47. $response->assertStatus(204);
  48. }
  49. }