From 9892860dbab1021d3776d7c43c94151c08d287ca Mon Sep 17 00:00:00 2001 From: amirghasempoor Date: Sat, 6 Apr 2024 09:29:20 +0330 Subject: [PATCH] write test for delete road patrol --- .../RoadPatrolProject/DeleteTest.php | 99 +++++++++++++++++++ 1 file changed, 99 insertions(+) diff --git a/tests/Feature/V2/Dashboard/RoadPatrolProject/DeleteTest.php b/tests/Feature/V2/Dashboard/RoadPatrolProject/DeleteTest.php index 697d83ce..f558652d 100644 --- a/tests/Feature/V2/Dashboard/RoadPatrolProject/DeleteTest.php +++ b/tests/Feature/V2/Dashboard/RoadPatrolProject/DeleteTest.php @@ -6,6 +6,8 @@ use App\Models\City; use App\Models\EdarateOstani; use App\Models\EdarateShahri; use App\Models\InfoItem; +use App\Models\LogList; +use App\Models\ObservedItem; use App\Models\Permission; use App\Models\RoadPatrol; use App\Models\User; @@ -32,4 +34,101 @@ class DeleteTest extends TestCase 'type' => __('validation.required', ['attribute' => 'type']) ]); } + + public function test_user_should_have_partial_delete_road_patrol_permission(): void + { + $user = User::factory()->create(); + + $roadPatrol = RoadPatrol::factory()->create(); + + $response = $this->actingAs($user)->postJson("v2/road_patrols/supervisor/cartable/delete/{$roadPatrol->id}", [ + 'type' => 1 + ]); + + $response->assertForbidden(); + } + + public function test_user_can_partial_delete_a_observed_item_and_road_patrol(): void + { + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'partial-delete-road-patrol' + ])) + ->create(); + + $roadPatrol = RoadPatrol::factory()->create(); + $observedItems = ObservedItem::factory()->create([ + 'road_patrol_id' => $roadPatrol->id + ]); + + $response = $this->actingAs($user)->postJson("v2/road_patrols/supervisor/cartable/delete/{$roadPatrol->id}", [ + 'type' => 1 + ]); + + $response->assertStatus(200) + ->assertExactJson([ + 'message' => 'succussful' + ]); + + $this->assertDatabaseMissing('road_patrols', [ + 'id' => $roadPatrol->id, + 'operator_name' => $roadPatrol->operator_name, + 'operator_id' => $roadPatrol->operator_id, + ]); + + $this->assertDatabaseMissing('observed_items', [ + 'item_name' => $observedItems->item_name, + 'road_patrol_id' => $observedItems->road_patrol_id, + ]); + } + + public function test_user_should_have_complete_delete_road_patrol_permission(): void + { + $user = User::factory()->create(); + + $roadPatrol = RoadPatrol::factory()->create(); + + $response = $this->actingAs($user)->postJson("v2/road_patrols/supervisor/cartable/delete/{$roadPatrol->id}", [ + 'type' => 2 + ]); + + $response->assertForbidden(); + } + + public function test_user_can_complete_delete_a_observed_item_and_road_patrol(): void + { + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'complete-delete-road-patrol' + ])) + ->create(); + + $roadPatrol = RoadPatrol::factory()->create(); + $logList = LogList::factory()->create([ + 'log_unique_code' => 1144 + ]); + $observedItems = ObservedItem::factory()->create([ + 'road_patrol_id' => $roadPatrol->id + ]); + + $response = $this->actingAs($user)->postJson("v2/road_patrols/supervisor/cartable/delete/{$roadPatrol->id}", [ + 'type' => 2 + ]); + + $response->assertStatus(200) + ->assertExactJson([ + 'message' => 'succussful' + ]); + + $this->assertDatabaseMissing('road_patrols', [ + 'id' => $roadPatrol->id, + 'operator_name' => $roadPatrol->operator_name, + 'operator_id' => $roadPatrol->operator_id, + ]); + + $this->assertDatabaseMissing('observed_items', [ + 'item_name' => $observedItems->item_name, + 'road_patrol_id' => $observedItems->road_patrol_id, + ]); + } }