mirror of
https://github.com/archtechx/tenancy.git
synced 2026-02-05 17:34:03 +00:00
Add test for deleting storage after tenant deletion
This commit is contained in:
parent
020039bf89
commit
21664664dd
2 changed files with 32 additions and 1 deletions
|
|
@ -137,6 +137,8 @@ return [
|
||||||
* where you want to use tenant-specific assets (product images, avatars, etc).
|
* where you want to use tenant-specific assets (product images, avatars, etc).
|
||||||
*/
|
*/
|
||||||
'asset_helper_tenancy' => true,
|
'asset_helper_tenancy' => true,
|
||||||
|
|
||||||
|
'delete_storage_after_tenant_deletion' => false,
|
||||||
],
|
],
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
use Illuminate\Filesystem\FilesystemAdapter;
|
|
||||||
use Illuminate\Support\Str;
|
use Illuminate\Support\Str;
|
||||||
use Illuminate\Support\Facades\DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
use Stancl\JobPipeline\JobPipeline;
|
use Stancl\JobPipeline\JobPipeline;
|
||||||
|
use Illuminate\Support\Facades\File;
|
||||||
use Stancl\Tenancy\Tests\Etc\Tenant;
|
use Stancl\Tenancy\Tests\Etc\Tenant;
|
||||||
use Illuminate\Support\Facades\Cache;
|
use Illuminate\Support\Facades\Cache;
|
||||||
use Illuminate\Support\Facades\Event;
|
use Illuminate\Support\Facades\Event;
|
||||||
|
|
@ -14,6 +14,7 @@ use Illuminate\Support\Facades\Storage;
|
||||||
use Stancl\Tenancy\Events\TenancyEnded;
|
use Stancl\Tenancy\Events\TenancyEnded;
|
||||||
use Stancl\Tenancy\Jobs\CreateDatabase;
|
use Stancl\Tenancy\Jobs\CreateDatabase;
|
||||||
use Stancl\Tenancy\Events\TenantCreated;
|
use Stancl\Tenancy\Events\TenantCreated;
|
||||||
|
use Illuminate\Filesystem\FilesystemAdapter;
|
||||||
use Stancl\Tenancy\Events\TenancyInitialized;
|
use Stancl\Tenancy\Events\TenancyInitialized;
|
||||||
use Stancl\Tenancy\Listeners\BootstrapTenancy;
|
use Stancl\Tenancy\Listeners\BootstrapTenancy;
|
||||||
use Stancl\Tenancy\Listeners\RevertToCentralContext;
|
use Stancl\Tenancy\Listeners\RevertToCentralContext;
|
||||||
|
|
@ -21,6 +22,7 @@ use Stancl\Tenancy\Bootstrappers\CacheTenancyBootstrapper;
|
||||||
use Stancl\Tenancy\Bootstrappers\RedisTenancyBootstrapper;
|
use Stancl\Tenancy\Bootstrappers\RedisTenancyBootstrapper;
|
||||||
use Stancl\Tenancy\Bootstrappers\DatabaseTenancyBootstrapper;
|
use Stancl\Tenancy\Bootstrappers\DatabaseTenancyBootstrapper;
|
||||||
use Stancl\Tenancy\Bootstrappers\FilesystemTenancyBootstrapper;
|
use Stancl\Tenancy\Bootstrappers\FilesystemTenancyBootstrapper;
|
||||||
|
use Stancl\Tenancy\Events\TenantDeleted;
|
||||||
|
|
||||||
beforeEach(function () {
|
beforeEach(function () {
|
||||||
$this->mockConsoleOutput = false;
|
$this->mockConsoleOutput = false;
|
||||||
|
|
@ -184,6 +186,33 @@ test('filesystem data is separated', function () {
|
||||||
expect($new_storage_path)->toEqual($expected_storage_path);
|
expect($new_storage_path)->toEqual($expected_storage_path);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('tenant storage gets deleted after the tenant if filesystem.delete_storage_after_tenant_deletion is true', function () {
|
||||||
|
config([
|
||||||
|
'tenancy.bootstrappers' => [
|
||||||
|
FilesystemTenancyBootstrapper::class,
|
||||||
|
],
|
||||||
|
'tenancy.filesystem.delete_storage_after_tenant_deletion' => true
|
||||||
|
]);
|
||||||
|
|
||||||
|
Event::listen(TenantDeleted::class, function(TenantDeleted $event) {
|
||||||
|
if (config('tenancy.filesystem.delete_storage_after_tenant_deletion')) {
|
||||||
|
File::deleteDirectory($event->tenant->run(fn () => storage_path()));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
tenancy()->initialize(Tenant::create());
|
||||||
|
|
||||||
|
Storage::fake('test');
|
||||||
|
|
||||||
|
expect(File::isDirectory(storage_path()))->toBeTrue();
|
||||||
|
|
||||||
|
Storage::put('test.txt', 'testing file');
|
||||||
|
|
||||||
|
tenant()->delete();
|
||||||
|
|
||||||
|
expect(File::isDirectory(storage_path()))->toBeFalse();
|
||||||
|
});
|
||||||
|
|
||||||
function getDiskPrefix(string $disk): string
|
function getDiskPrefix(string $disk): string
|
||||||
{
|
{
|
||||||
/** @var FilesystemAdapter $disk */
|
/** @var FilesystemAdapter $disk */
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue