diff --git a/app/Models/User.php b/app/Models/User.php index 1cb00cece5..e9a1a28728 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -183,6 +183,17 @@ class User extends SnipeModel implements AuthenticatableContract, AuthorizableCo ); } + protected static function booted(): void + { + static::forceDeleted(function (User $user) { + CheckoutRequest::where(['user_id' => $user->id])->forceDelete(); + }); + + static::softDeleted(function (User $user) { + CheckoutRequest::where(['user_id' => $user->id])->delete(); + }); + } + public function isAvatarExternal() { diff --git a/tests/Unit/Models/CheckoutRequestTest.php b/tests/Unit/Models/CheckoutRequestTest.php index 71e1215b3a..4b06ef38c6 100644 --- a/tests/Unit/Models/CheckoutRequestTest.php +++ b/tests/Unit/Models/CheckoutRequestTest.php @@ -36,11 +36,9 @@ class CheckoutRequestTest extends TestCase public function test_checkout_request_soft_deleted_when_requesting_user_soft_deleted() { - $this->markTestIncomplete(); - $checkoutRequest = CheckoutRequest::factory()->create(); - $requestingUser = $checkoutRequest->requestingUser; + $requestingUser = $checkoutRequest->user; $requestingUser->delete(); @@ -53,7 +51,7 @@ class CheckoutRequestTest extends TestCase $checkoutRequest = CheckoutRequest::factory()->create(); - $requestingUser = $checkoutRequest->requestingUser; + $requestingUser = $checkoutRequest->user; $requestingUser->forceDelete();