Files
Verde-Web/tests/Feature/AdminTruckControllerTest.php

62 lines
1.8 KiB
PHP

<?php
namespace Tests\Feature;
use App\Models\Tenant;
use App\Models\Truck;
use App\Models\User;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Support\Str;
use Tests\TestCase;
class AdminTruckControllerTest extends TestCase
{
use RefreshDatabase;
public function test_super_admin_can_assign_lgu()
{
$superAdmin = User::factory()->create(['role' => User::ROLE_SUPER_ADMIN]);
$tenantA = Tenant::factory()->create();
$tenantB = Tenant::factory()->create();
$response = $this->actingAs($superAdmin)->postJson('/api/v1/admin/trucks', [
'plate_number' => 'TST-1234',
'model' => 'Isuzu',
'capacity_kg' => 1000,
'status' => Truck::STATUS_ACTIVE,
'tenant_id' => $tenantB->uuid,
]);
$response->assertStatus(201);
$this->assertDatabaseHas('trucks', [
'plate_number' => 'TST-1234',
'tenant_id' => $tenantB->id,
]);
}
public function test_admin_cannot_assign_lgu()
{
$tenantA = Tenant::factory()->create();
$tenantB = Tenant::factory()->create();
$admin = User::factory()->create([
'role' => User::ROLE_ADMIN,
'tenant_id' => $tenantA->id,
]);
$response = $this->actingAs($admin)->postJson('/api/v1/admin/trucks', [
'plate_number' => 'TST-5678',
'model' => 'Isuzu',
'capacity_kg' => 1000,
'status' => Truck::STATUS_ACTIVE,
'tenant_id' => $tenantB->uuid, // Admin tries to set tenantB
]);
$response->assertStatus(201);
$this->assertDatabaseHas('trucks', [
'plate_number' => 'TST-5678',
'tenant_id' => $tenantA->id,
]);
}
}