diff --git a/database/factories/CheckoutRequestFactory.php b/database/factories/CheckoutRequestFactory.php index 41fb285baa..3000db6105 100644 --- a/database/factories/CheckoutRequestFactory.php +++ b/database/factories/CheckoutRequestFactory.php @@ -20,4 +20,14 @@ class CheckoutRequestFactory extends Factory 'user_id' => User::factory(), ]; } + + public function forAsset() + { + return $this->state(function (array $attributes) { + return [ + 'requestable_id' => Asset::factory(), + 'requestable_type' => Asset::class, + ]; + }); + } } diff --git a/tests/Feature/Console/CleanOldCheckoutRequestsTest.php b/tests/Feature/Console/CleanOldCheckoutRequestsTest.php index a80abc9d2b..ccf11bf4a8 100644 --- a/tests/Feature/Console/CleanOldCheckoutRequestsTest.php +++ b/tests/Feature/Console/CleanOldCheckoutRequestsTest.php @@ -11,10 +11,9 @@ class CleanOldCheckoutRequestsTest extends TestCase { public function test_clean_old_checkout_requests_command_for_soft_deleted_asset() { - $validRequest = CheckoutRequest::factory()->create(); + $validRequest = CheckoutRequest::factory()->forAsset()->create(); - $requestForSoftDeletedAsset = CheckoutRequest::factory()->create(); - $this->assertInstanceOf(Asset::class, $requestForSoftDeletedAsset->requestedItem); + $requestForSoftDeletedAsset = CheckoutRequest::factory()->forAsset()->create(); Model::withoutEvents(fn() => $requestForSoftDeletedAsset->requestedItem->delete()); $this->artisan('snipeit:clean-old-checkout-requests')->assertExitCode(0); @@ -25,8 +24,8 @@ class CleanOldCheckoutRequestsTest extends TestCase public function test_clean_old_checkout_requests_command_for_missing_asset() { - $validRequest = CheckoutRequest::factory()->create(); - $missingAsset = CheckoutRequest::factory()->create(['requestable_id' => 99999999]); + $validRequest = CheckoutRequest::factory()->forAsset()->create(); + $missingAsset = CheckoutRequest::factory()->forAsset()->create(['requestable_id' => 99999999]); $this->artisan('snipeit:clean-old-checkout-requests')->assertExitCode(0); @@ -46,9 +45,9 @@ class CleanOldCheckoutRequestsTest extends TestCase public function test_clean_old_checkout_requests_command_for_soft_deleted_user() { - $validRequest = CheckoutRequest::factory()->create(); + $validRequest = CheckoutRequest::factory()->forAsset()->create(); - $requestForSoftDeletedUser = CheckoutRequest::factory()->create(); + $requestForSoftDeletedUser = CheckoutRequest::factory()->forAsset()->create(); Model::withoutEvents(fn() => $requestForSoftDeletedUser->user->delete()); $this->artisan('snipeit:clean-old-checkout-requests')->assertExitCode(0); @@ -59,8 +58,8 @@ class CleanOldCheckoutRequestsTest extends TestCase public function test_clean_old_checkout_requests_command_for_missing_user() { - $validRequest = CheckoutRequest::factory()->create(); - $missingUser = CheckoutRequest::factory()->create(['user_id' => 99999999]); + $validRequest = CheckoutRequest::factory()->forAsset()->create(); + $missingUser = CheckoutRequest::factory()->forAsset()->create(['user_id' => 99999999]); $this->artisan('snipeit:clean-old-checkout-requests')->assertExitCode(0); diff --git a/tests/Unit/Models/CheckoutRequestTest.php b/tests/Unit/Models/CheckoutRequestTest.php index 68461d13d1..55ed5b473f 100644 --- a/tests/Unit/Models/CheckoutRequestTest.php +++ b/tests/Unit/Models/CheckoutRequestTest.php @@ -2,7 +2,6 @@ namespace Tests\Unit\Models; -use App\Models\Asset; use App\Models\CheckoutRequest; use Tests\TestCase; @@ -10,12 +9,10 @@ class CheckoutRequestTest extends TestCase { public function test_checkout_request_soft_deleted_when_requested_asset_soft_deleted() { - $checkoutRequest = CheckoutRequest::factory()->create(); + $checkoutRequest = CheckoutRequest::factory()->forAsset()->create(); $requestedAsset = $checkoutRequest->requestedItem; - $this->assertInstanceOf(Asset::class, $requestedAsset); - $requestedAsset->delete(); $this->assertSoftDeleted($checkoutRequest->fresh()); @@ -23,12 +20,10 @@ class CheckoutRequestTest extends TestCase public function test_checkout_request_deleted_when_requested_asset_force_deleted() { - $checkoutRequest = CheckoutRequest::factory()->create(); + $checkoutRequest = CheckoutRequest::factory()->forAsset()->create(); $requestedAsset = $checkoutRequest->requestedItem; - $this->assertInstanceOf(Asset::class, $requestedAsset); - $requestedAsset->forceDelete(); $this->assertDatabaseMissing('checkout_requests', ['id' => $checkoutRequest->id]); @@ -46,7 +41,7 @@ class CheckoutRequestTest extends TestCase public function test_checkout_request_soft_deleted_when_requesting_user_soft_deleted() { - $checkoutRequest = CheckoutRequest::factory()->create(); + $checkoutRequest = CheckoutRequest::factory()->forAsset()->create(); $requestingUser = $checkoutRequest->user; @@ -57,7 +52,7 @@ class CheckoutRequestTest extends TestCase public function test_checkout_request_deleted_when_requesting_user_force_deleted() { - $checkoutRequest = CheckoutRequest::factory()->create(); + $checkoutRequest = CheckoutRequest::factory()->forAsset()->create(); $requestingUser = $checkoutRequest->user;