Files
snipe-it/tests/Feature/Console/CleanOldCheckoutRequestsTest.php

83 lines
3.2 KiB
PHP
Raw Permalink Normal View History

2025-07-16 14:49:45 -07:00
<?php
namespace Tests\Feature\Console;
use App\Models\CheckoutRequest;
use Illuminate\Database\Eloquent\Model;
use Tests\TestCase;
class CleanOldCheckoutRequestsTest extends TestCase
{
2025-07-16 17:11:00 -07:00
private CheckoutRequest $validRequest;
protected function setUp(): void
{
parent::setUp();
$this->validRequest = CheckoutRequest::factory()->forAsset()->create();
}
2025-07-16 14:49:45 -07:00
public function test_clean_old_checkout_requests_command_for_soft_deleted_asset()
{
2025-07-16 16:57:03 -07:00
$requestForSoftDeletedAsset = CheckoutRequest::factory()->forAsset()->create();
2025-07-16 14:49:45 -07:00
Model::withoutEvents(fn() => $requestForSoftDeletedAsset->requestedItem->delete());
$this->artisan('snipeit:clean-old-checkout-requests')->assertExitCode(0);
2025-07-16 17:11:00 -07:00
$this->assertNotSoftDeleted($this->validRequest);
2025-07-16 14:49:45 -07:00
$this->assertSoftDeleted($requestForSoftDeletedAsset->fresh());
}
public function test_clean_old_checkout_requests_command_for_missing_asset()
{
2025-07-16 17:20:28 -07:00
$requestForMissingAsset = CheckoutRequest::factory()->forAsset()->create(['requestable_id' => 99999999]);
2025-07-16 14:49:45 -07:00
$this->artisan('snipeit:clean-old-checkout-requests')->assertExitCode(0);
2025-07-16 17:11:00 -07:00
$this->assertNotSoftDeleted($this->validRequest);
2025-07-16 17:20:28 -07:00
$this->assertDatabaseMissing('checkout_requests', ['requestable_id' => $requestForMissingAsset->requestable_id]);
2025-07-16 14:49:45 -07:00
}
2025-07-16 16:47:28 -07:00
public function test_clean_old_checkout_requests_command_for_soft_deleted_model()
{
2025-07-16 17:20:28 -07:00
$requestForSoftDeletedAssetModel = CheckoutRequest::factory()->forAssetModel()->create();
Model::withoutEvents(fn() => $requestForSoftDeletedAssetModel->requestedItem->delete());
$this->artisan('snipeit:clean-old-checkout-requests')->assertExitCode(0);
$this->assertNotSoftDeleted($this->validRequest);
$this->assertSoftDeleted($requestForSoftDeletedAssetModel->fresh());
2025-07-16 16:47:28 -07:00
}
public function test_clean_old_checkout_requests_command_for_missing_model()
{
2025-07-16 17:20:28 -07:00
$requestForMissingModel = CheckoutRequest::factory()->forAssetModel()->create(['requestable_id' => 99999999]);
$this->artisan('snipeit:clean-old-checkout-requests')->assertExitCode(0);
$this->assertNotSoftDeleted($this->validRequest);
$this->assertDatabaseMissing('checkout_requests', ['requestable_id' => $requestForMissingModel->requestable_id]);
2025-07-16 16:47:28 -07:00
}
2025-07-16 14:49:45 -07:00
public function test_clean_old_checkout_requests_command_for_soft_deleted_user()
{
2025-07-16 16:57:03 -07:00
$requestForSoftDeletedUser = CheckoutRequest::factory()->forAsset()->create();
2025-07-16 14:49:45 -07:00
Model::withoutEvents(fn() => $requestForSoftDeletedUser->user->delete());
$this->artisan('snipeit:clean-old-checkout-requests')->assertExitCode(0);
2025-07-16 17:11:00 -07:00
$this->assertNotSoftDeleted($this->validRequest);
2025-07-16 14:49:45 -07:00
$this->assertSoftDeleted($requestForSoftDeletedUser->fresh());
}
public function test_clean_old_checkout_requests_command_for_missing_user()
{
2025-07-16 17:20:28 -07:00
$requestForMissingUser = CheckoutRequest::factory()->forAsset()->create(['user_id' => 99999999]);
2025-07-16 14:49:45 -07:00
$this->artisan('snipeit:clean-old-checkout-requests')->assertExitCode(0);
2025-07-16 17:11:00 -07:00
$this->assertNotSoftDeleted($this->validRequest);
2025-07-16 17:20:28 -07:00
$this->assertDatabaseMissing('checkout_requests', ['user_id' => $requestForMissingUser->user_id]);
2025-07-16 14:49:45 -07:00
}
}