From 608c28cf33d439f94d95ce127f616d6c487b9242 Mon Sep 17 00:00:00 2001 From: lukinovec Date: Tue, 20 Sep 2022 16:02:13 +0200 Subject: [PATCH] Move tenant storage deletion to the DeletingTenant event --- assets/TenancyServiceProvider.stub.php | 3 ++- src/Listeners/DeleteTenantStorage.php | 4 ++-- tests/BootstrapperTest.php | 6 +++--- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/assets/TenancyServiceProvider.stub.php b/assets/TenancyServiceProvider.stub.php index e45bf9aa..d8e76e6f 100644 --- a/assets/TenancyServiceProvider.stub.php +++ b/assets/TenancyServiceProvider.stub.php @@ -46,6 +46,8 @@ class TenancyServiceProvider extends ServiceProvider ])->send(function (Events\DeletingTenant $event) { return $event->tenant; })->shouldBeQueued(false), + + // Listeners\DeleteTenantStorage::class, ], Events\TenantDeleted::class => [ JobPipeline::make([ @@ -53,7 +55,6 @@ class TenancyServiceProvider extends ServiceProvider ])->send(function (Events\TenantDeleted $event) { return $event->tenant; })->shouldBeQueued(false), // `false` by default, but you probably want to make this `true` for production. - // Listeners\DeleteTenantStorage::class, ], // Domain events diff --git a/src/Listeners/DeleteTenantStorage.php b/src/Listeners/DeleteTenantStorage.php index b7a27d7b..ce1a4203 100644 --- a/src/Listeners/DeleteTenantStorage.php +++ b/src/Listeners/DeleteTenantStorage.php @@ -5,11 +5,11 @@ declare(strict_types=1); namespace Stancl\Tenancy\Listeners; use Illuminate\Support\Facades\File; -use Stancl\Tenancy\Events\TenantDeleted; +use Stancl\Tenancy\Events\DeletingTenant; class DeleteTenantStorage { - public function handle(TenantDeleted $event): void + public function handle(DeletingTenant $event): void { File::deleteDirectory($event->tenant->run(fn () => storage_path())); } diff --git a/tests/BootstrapperTest.php b/tests/BootstrapperTest.php index f863e28e..ada6b964 100644 --- a/tests/BootstrapperTest.php +++ b/tests/BootstrapperTest.php @@ -22,7 +22,7 @@ use Stancl\Tenancy\Bootstrappers\CacheTenancyBootstrapper; use Stancl\Tenancy\Bootstrappers\RedisTenancyBootstrapper; use Stancl\Tenancy\Bootstrappers\DatabaseTenancyBootstrapper; use Stancl\Tenancy\Bootstrappers\FilesystemTenancyBootstrapper; -use Stancl\Tenancy\Events\TenantDeleted; +use Stancl\Tenancy\Events\DeletingTenant; use Stancl\Tenancy\Listeners\DeleteTenantStorage; beforeEach(function () { @@ -187,14 +187,14 @@ test('filesystem data is separated', function () { expect($new_storage_path)->toEqual($expected_storage_path); }); -test('tenant storage can get deleted after the tenant when TenantDeleted listens to DeleteTenantStorage', function () { +test('tenant storage can get deleted after the tenant when DeletingTenant listens to DeleteTenantStorage', function () { config([ 'tenancy.bootstrappers' => [ FilesystemTenancyBootstrapper::class, ], ]); - Event::listen(TenantDeleted::class, DeleteTenantStorage::class); + Event::listen(DeletingTenant::class, DeleteTenantStorage::class); tenancy()->initialize(Tenant::create()); $tenantStoragePath = storage_path();