mirror of
https://github.com/archtechx/tenancy.git
synced 2026-09-20 13:34:04 +00:00
Make storage symlink test assert the expected behavior
The symlinks should point to the tenant's disk root regardless of the suffix_storage_path config and of which root_override placeholders are used. Currently, the storage_path() helper is used for generating the symlink path, so the two new datasets fail.
This commit is contained in:
parent
0bd58528d2
commit
179114bfb7
1 changed files with 16 additions and 7 deletions
|
|
@ -12,19 +12,22 @@ use Stancl\Tenancy\Actions\CreateStorageSymlinksAction;
|
||||||
use Stancl\Tenancy\Actions\RemoveStorageSymlinksAction;
|
use Stancl\Tenancy\Actions\RemoveStorageSymlinksAction;
|
||||||
use Stancl\Tenancy\Bootstrappers\FilesystemTenancyBootstrapper;
|
use Stancl\Tenancy\Bootstrappers\FilesystemTenancyBootstrapper;
|
||||||
use Illuminate\Support\Facades\File;
|
use Illuminate\Support\Facades\File;
|
||||||
|
use Illuminate\Support\Facades\Storage;
|
||||||
|
|
||||||
beforeEach(function () {
|
beforeEach(function () {
|
||||||
Event::listen(TenancyInitialized::class, BootstrapTenancy::class);
|
Event::listen(TenancyInitialized::class, BootstrapTenancy::class);
|
||||||
Event::listen(TenancyEnded::class, RevertToCentralContext::class);
|
Event::listen(TenancyEnded::class, RevertToCentralContext::class);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('create storage symlinks action works', function() {
|
test('create storage symlinks action works', function (string $rootOverride, bool $suffixStoragePath) {
|
||||||
config([
|
config([
|
||||||
'tenancy.bootstrappers' => [
|
'tenancy.bootstrappers' => [
|
||||||
FilesystemTenancyBootstrapper::class,
|
FilesystemTenancyBootstrapper::class,
|
||||||
],
|
],
|
||||||
'tenancy.filesystem.suffix_base' => 'tenant-',
|
'tenancy.filesystem.suffix_base' => 'tenant-',
|
||||||
'tenancy.filesystem.root_override.public' => '%storage_path%/app/public/',
|
// The disk root is suffixed regardless of the suffix_storage_path config
|
||||||
|
'tenancy.filesystem.suffix_storage_path' => $suffixStoragePath,
|
||||||
|
'tenancy.filesystem.root_override.public' => $rootOverride,
|
||||||
'tenancy.filesystem.url_override.public' => 'public-%tenant%'
|
'tenancy.filesystem.url_override.public' => 'public-%tenant%'
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
@ -38,13 +41,19 @@ test('create storage symlinks action works', function() {
|
||||||
expect(is_link($publicPath = public_path("public-$tenantKey")))->toBeFalse();
|
expect(is_link($publicPath = public_path("public-$tenantKey")))->toBeFalse();
|
||||||
expect(file_exists($publicPath))->toBeFalse();
|
expect(file_exists($publicPath))->toBeFalse();
|
||||||
|
|
||||||
|
Storage::disk('public')->put('foo.txt', 'tenant file');
|
||||||
|
|
||||||
(new CreateStorageSymlinksAction)($tenant);
|
(new CreateStorageSymlinksAction)($tenant);
|
||||||
|
|
||||||
// The symlink exists and is valid
|
// The symlink exists and points to the directory the tenant's disk writes to
|
||||||
expect(is_link($publicPath = public_path("public-$tenantKey")))->toBeTrue();
|
expect(is_link($publicPath))->toBeTrue();
|
||||||
expect(file_exists($publicPath))->toBeTrue();
|
expect(readlink($publicPath))->toBe(config('filesystems.disks.public.root'));
|
||||||
$this->assertEquals(storage_path("app/public/"), readlink($publicPath));
|
expect(file_get_contents($publicPath . '/foo.txt'))->toBe('tenant file');
|
||||||
});
|
})->with([
|
||||||
|
'default root_override' => ['%storage_path%/app/public/', true],
|
||||||
|
'suffix_storage_path disabled' => ['%storage_path%/app/public/', false],
|
||||||
|
'custom root_override' => ['%original_storage_path%/app/public/%tenant%/', true],
|
||||||
|
]);
|
||||||
|
|
||||||
test('remove storage symlinks action works', function() {
|
test('remove storage symlinks action works', function() {
|
||||||
config([
|
config([
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue