From ed12b92bd802ee31094190ae392767b420571980 Mon Sep 17 00:00:00 2001 From: lukinovec Date: Fri, 21 Nov 2025 15:34:28 +0100 Subject: [PATCH] Rename and move triggerRestoredEvent Rename triggerRestoredEvent to triggerRestoreEvent, move triggerRestoreEvent from the Syncable interface to SyncMaster, call triggerRestoreEvent only when restoring SyncMaster, delete useless assertions. --- src/ResourceSyncing/ResourceSyncing.php | 6 +++--- src/ResourceSyncing/SyncMaster.php | 2 ++ src/ResourceSyncing/Syncable.php | 2 -- tests/ResourceSyncingTest.php | 11 +---------- 4 files changed, 6 insertions(+), 15 deletions(-) diff --git a/src/ResourceSyncing/ResourceSyncing.php b/src/ResourceSyncing/ResourceSyncing.php index 0367eb1b..272b7bd7 100644 --- a/src/ResourceSyncing/ResourceSyncing.php +++ b/src/ResourceSyncing/ResourceSyncing.php @@ -46,8 +46,8 @@ trait ResourceSyncing }); static::restoring(static function (Syncable&Model $model) { - if ($model->shouldSync()) { - $model->triggerRestoredEvent(); + if ($model instanceof SyncMaster && $model->shouldSync()) { + $model->triggerRestoreEvent(); } }); } @@ -69,7 +69,7 @@ trait ResourceSyncing event(new SyncedResourceDeleted($this, tenant(), $forceDelete)); } - public function triggerRestoredEvent(): void + public function triggerRestoreEvent(): void { if ($this instanceof SyncMaster && in_array(SoftDeletes::class, class_uses_recursive($this), true)) { /** @var SyncMaster&Model $this */ diff --git a/src/ResourceSyncing/SyncMaster.php b/src/ResourceSyncing/SyncMaster.php index 73af0c72..290546cb 100644 --- a/src/ResourceSyncing/SyncMaster.php +++ b/src/ResourceSyncing/SyncMaster.php @@ -24,4 +24,6 @@ interface SyncMaster extends Syncable public function triggerDetachEvent(TenantWithDatabase&Model $tenant): void; public function triggerAttachEvent(TenantWithDatabase&Model $tenant): void; + + public function triggerRestoreEvent(): void; } diff --git a/src/ResourceSyncing/Syncable.php b/src/ResourceSyncing/Syncable.php index ec13c485..c38b02ea 100644 --- a/src/ResourceSyncing/Syncable.php +++ b/src/ResourceSyncing/Syncable.php @@ -18,8 +18,6 @@ interface Syncable public function triggerDeleteEvent(bool $forceDelete = false): void; - public function triggerRestoredEvent(): void; - /** * Get the attributes used for creating the *other* model (i.e. tenant if this is the central one, and central if this is the tenant one). * diff --git a/tests/ResourceSyncingTest.php b/tests/ResourceSyncingTest.php index 5687b849..ebd6ccfd 100644 --- a/tests/ResourceSyncingTest.php +++ b/tests/ResourceSyncingTest.php @@ -1102,16 +1102,7 @@ test('restoring soft deleted resources works', function () { CentralUserWithSoftDeletes::withTrashed()->first()->restore(); tenancy()->runForMultiple([$tenant1, $tenant2], function () { - $tenantResource = TenantUserWithSoftDeletes::withTrashed()->first(); - - expect($tenantResource->trashed())->toBeFalse(); - - $tenantResource->delete(); - - // Restoring a tenant resource works as expected - $tenantResource->restore(); - - expect($tenantResource->trashed())->toBeFalse(); + expect(TenantUserWithSoftDeletes::withTrashed()->first()->trashed())->toBeFalse(); }); });