diff --git a/src/ResourceSyncing/Listeners/DeleteAllTenantMappings.php b/src/ResourceSyncing/Listeners/DeleteAllTenantMappings.php index 3a572dd9..6ccf51be 100644 --- a/src/ResourceSyncing/Listeners/DeleteAllTenantMappings.php +++ b/src/ResourceSyncing/Listeners/DeleteAllTenantMappings.php @@ -5,7 +5,6 @@ declare(strict_types=1); namespace Stancl\Tenancy\ResourceSyncing\Listeners; use Illuminate\Support\Facades\DB; -use Illuminate\Support\Facades\Schema; use Stancl\Tenancy\Events\TenantDeleted; use Stancl\Tenancy\Listeners\QueueableListener; @@ -37,17 +36,13 @@ class DeleteAllTenantMappings extends QueueableListener * 'tenant_users' => 'tenant_id', * // You can also add more pivot tables here * ]; - * - * Non-existent tables specified in the property will be skipped. */ public static array $pivotTables = ['tenant_resources' => 'tenant_id']; public function handle(TenantDeleted $event): void { foreach (static::$pivotTables as $table => $tenantKeyColumn) { - if (Schema::hasTable($table)) { - DB::table($table)->where($tenantKeyColumn, $event->tenant->getTenantKey())->delete(); - } + DB::table($table)->where($tenantKeyColumn, $event->tenant->getTenantKey())->delete(); } } } diff --git a/tests/ResourceSyncingTest.php b/tests/ResourceSyncingTest.php index ac6b18fd..a4736ce7 100644 --- a/tests/ResourceSyncingTest.php +++ b/tests/ResourceSyncingTest.php @@ -978,10 +978,10 @@ test('DeleteAllTenantMappings handles incorrect configuration correctly', functi // Should throw an exception when tenant is deleted expect(fn() => $tenant1->delete())->toThrow(QueryException::class, "Unknown column 'non_existent_column' in 'where clause'"); - // Non-existent table, the listener skips it, no exception to throw + // Non-existent table DeleteAllTenantMappings::$pivotTables = ['nonexistent_pivot' => 'non_existent_column']; - expect(fn() => $tenant2->delete())->not()->toThrow(Exception::class); + expect(fn() => $tenant2->delete())->toThrow(QueryException::class, "Table 'main.nonexistent_pivot' doesn't exist"); }); test('trashed resources are synced correctly', function () {