Add basic tests around asset request index

This commit is contained in:
Marcus Moore
2025-07-16 12:25:37 -07:00
parent 77fdc370c7
commit 2afcc1e384
3 changed files with 53 additions and 0 deletions

View File

@@ -2,11 +2,13 @@
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class CheckoutRequest extends Model
{
use HasFactory;
use SoftDeletes;
protected $fillable = ['user_id'];
protected $table = 'checkout_requests';

View File

@@ -0,0 +1,23 @@
<?php
namespace Database\Factories;
use App\Models\Asset;
use App\Models\CheckoutRequest;
use App\Models\User;
use Illuminate\Database\Eloquent\Factories\Factory;
class CheckoutRequestFactory extends Factory
{
protected $model = CheckoutRequest::class;
public function definition(): array
{
return [
'requestable_id' => Asset::factory(),
'requestable_type' => Asset::class,
'quantity' => 1,
'user_id' => User::factory(),
];
}
}

View File

@@ -0,0 +1,28 @@
<?php
namespace Tests\Feature\Requests\Ui;
use App\Models\CheckoutRequest;
use App\Models\User;
use Tests\TestCase;
class AssetRequestIndexTest extends TestCase
{
public function test_requires_permission_to_view_asset_request_index()
{
$this->actingAs(User::factory()->create())
->get(route('assets.requested'))
->assertForbidden();
}
public function test_can_view_request_asset_request_index()
{
$checkoutRequest = CheckoutRequest::factory()->create();
$this->actingAs(User::factory()->viewAssets()->create())
->get(route('assets.requested'))
->assertOk()
->assertViewHas('requestedItems')
->assertSeeText($checkoutRequest->requestedItem->asset_tag);
}
}