diff --git a/src/ResourceSyncing/TriggerSyncingEvents.php b/src/ResourceSyncing/TriggerSyncingEvents.php index 059eb579..2f8914b5 100644 --- a/src/ResourceSyncing/TriggerSyncingEvents.php +++ b/src/ResourceSyncing/TriggerSyncingEvents.php @@ -7,7 +7,6 @@ namespace Stancl\Tenancy\ResourceSyncing; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\MorphPivot; use Illuminate\Database\Eloquent\Relations\Pivot; -use Illuminate\Database\Eloquent\Relations\Relation; use Stancl\Tenancy\Contracts\Tenant; use Stancl\Tenancy\Database\Contracts\TenantWithDatabase; @@ -86,7 +85,7 @@ trait TriggerSyncingEvents } if ($this instanceof MorphPivot) { - return Relation::getMorphedModel($this->morphClass) ?? $this->morphClass; + return $this->morphClass; } throw new CentralResourceNotAvailableInPivotException; diff --git a/tests/ResourceSyncingTest.php b/tests/ResourceSyncingTest.php index baf0e9c8..826ed780 100644 --- a/tests/ResourceSyncingTest.php +++ b/tests/ResourceSyncingTest.php @@ -52,7 +52,6 @@ use Stancl\Tenancy\Events\TenantDeleted; use Stancl\Tenancy\ResourceSyncing\Events\SyncedResourceDeleted; use Stancl\Tenancy\ResourceSyncing\Listeners\DeleteAllTenantMappings; use Stancl\Tenancy\ResourceSyncing\Listeners\DeleteResourceMapping; -use Illuminate\Database\Eloquent\Relations\Relation; beforeEach(function () { config(['tenancy.bootstrappers' => [ @@ -1365,49 +1364,6 @@ test('global scopes on syncable models can break resource syncing', function () expect($tenant1->run(fn () => TenantUser::first()->name))->toBe('tenant2 user'); }); -test('attach and detach events are handled correctly when using morph maps', function() { - config(['tenancy.models.tenant' => MorphTenant::class]); - [$tenant] = createTenantsAndRunMigrations(); - migrateCompaniesTableForTenants(); - - Relation::morphMap([ - 'users' => BaseCentralUser::class, - 'companies' => CentralCompany::class, - ]); - - $centralUser = BaseCentralUser::create([ - 'global_id' => 'user', - 'name' => 'Central user', - 'email' => 'central@localhost', - 'password' => 'password', - 'role' => 'user', - ]); - - $centralCompany = CentralCompany::create([ - 'global_id' => 'company', - 'name' => 'Central company', - 'email' => 'company@localhost', - ]); - - $tenant->users()->attach($centralUser); - $tenant->companies()->attach($centralCompany); - - tenancy()->initialize($tenant); - - expect(BaseTenantUser::whereGlobalId('user')->first())->not()->toBeNull(); - expect(TenantCompany::whereGlobalId('company')->first())->not()->toBeNull(); - - tenancy()->end(); - - $tenant->users()->detach($centralUser); - $tenant->companies()->detach($centralCompany); - - tenancy()->initialize($tenant); - - expect(BaseTenantUser::whereGlobalId('user')->first())->toBeNull(); - expect(TenantCompany::whereGlobalId('company')->first())->toBeNull(); -}); - function addTenantIdConstraintToPivot(string $pivotTable): void { Schema::table($pivotTable, function (Blueprint $table) {