postJson(route('v3.damages.store')); $response->assertStatus(401); } public function test_user_without_permission_cannot_activate_damage(): void { $user = User::factory()->create(); $response = $this->actingAs($user)->postJson(route('v3.damages.store')); $response->assertForbidden(); } public function test_user_with_permission_can_activate_damage(): void { $user = User::factory() ->has(Permission::factory()->state(['name' => 'manage-damage'])) ->create(); $damage = Damage::factory()->create(['status' => 0]); $response = $this->actingAs($user)->postJson(route('v3.damages.activate', [$damage->id])); $response->assertOk() ->assertJson([ 'message' => __('messages.successful') ]); $this->assertDatabaseHas('damages', [ 'id' => $damage->id, 'status' => 1, ]); } public function test_user_with_permission_can_deactivate_damage(): void { $user = User::factory() ->has(Permission::factory()->state(['name' => 'manage-damage'])) ->create(); $damage = Damage::factory()->create(['status' => 1]); $response = $this->actingAs($user)->postJson(route('v3.damages.activate', [$damage->id])); $response->assertOk() ->assertJson([ 'message' => __('messages.successful') ]); $this->assertDatabaseHas('damages', [ 'id' => $damage->id, 'status' => 0, ]); } }