write test for delete road patrol

This commit is contained in:
2024-04-06 09:29:20 +03:30
parent e636fdd240
commit 9892860dba

View File

@@ -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,
]);
}
}