mirror of
https://github.com/archtechx/tenancy.git
synced 2026-02-05 20:34:03 +00:00
Merge branch 'master' into 3.x
This commit is contained in:
commit
158088faae
83 changed files with 3744 additions and 3606 deletions
|
|
@ -2,8 +2,6 @@
|
|||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Stancl\Tenancy\Tests\Features;
|
||||
|
||||
use Illuminate\Support\Facades\Event;
|
||||
use Stancl\Tenancy\Events\TenancyEnded;
|
||||
use Stancl\Tenancy\Events\TenancyInitialized;
|
||||
|
|
@ -11,108 +9,96 @@ use Stancl\Tenancy\Features\TenantConfig;
|
|||
use Stancl\Tenancy\Listeners\BootstrapTenancy;
|
||||
use Stancl\Tenancy\Listeners\RevertToCentralContext;
|
||||
use Stancl\Tenancy\Tests\Etc\Tenant;
|
||||
use Stancl\Tenancy\Tests\TestCase;
|
||||
|
||||
class TenantConfigTest extends TestCase
|
||||
{
|
||||
public function tearDown(): void
|
||||
{
|
||||
TenantConfig::$storageToConfigMap = [];
|
||||
afterEach(function () {
|
||||
TenantConfig::$storageToConfigMap = [];
|
||||
});
|
||||
|
||||
parent::tearDown();
|
||||
}
|
||||
/** @test */
|
||||
test('nested_tenant_values_are_merged', function () {
|
||||
expect(config('whitelabel.theme'))->toBeNull();
|
||||
config([
|
||||
'tenancy.features' => [TenantConfig::class],
|
||||
'tenancy.bootstrappers' => [],
|
||||
]);
|
||||
Event::listen(TenancyInitialized::class, BootstrapTenancy::class);
|
||||
Event::listen(TenancyEnded::class, RevertToCentralContext::class);
|
||||
|
||||
/** @test */
|
||||
public function nested_tenant_values_are_merged()
|
||||
{
|
||||
$this->assertSame(null, config('whitelabel.theme'));
|
||||
config([
|
||||
'tenancy.features' => [TenantConfig::class],
|
||||
'tenancy.bootstrappers' => [],
|
||||
]);
|
||||
Event::listen(TenancyInitialized::class, BootstrapTenancy::class);
|
||||
Event::listen(TenancyEnded::class, RevertToCentralContext::class);
|
||||
TenantConfig::$storageToConfigMap = [
|
||||
'whitelabel.config.theme' => 'whitelabel.theme',
|
||||
];
|
||||
|
||||
TenantConfig::$storageToConfigMap = [
|
||||
'whitelabel.config.theme' => 'whitelabel.theme',
|
||||
];
|
||||
$tenant = Tenant::create([
|
||||
'whitelabel' => ['config' => ['theme' => 'dark']],
|
||||
]);
|
||||
|
||||
$tenant = Tenant::create([
|
||||
'whitelabel' => ['config' => ['theme' => 'dark']],
|
||||
]);
|
||||
tenancy()->initialize($tenant);
|
||||
expect(config('whitelabel.theme'))->toBe('dark');
|
||||
tenancy()->end();
|
||||
});
|
||||
|
||||
tenancy()->initialize($tenant);
|
||||
$this->assertSame('dark', config('whitelabel.theme'));
|
||||
tenancy()->end();
|
||||
}
|
||||
test('config is merged and removed', function () {
|
||||
expect(config('services.paypal'))->toBe(null);
|
||||
config([
|
||||
'tenancy.features' => [TenantConfig::class],
|
||||
'tenancy.bootstrappers' => [],
|
||||
]);
|
||||
Event::listen(TenancyInitialized::class, BootstrapTenancy::class);
|
||||
Event::listen(TenancyEnded::class, RevertToCentralContext::class);
|
||||
|
||||
/** @test */
|
||||
public function config_is_merged_and_removed()
|
||||
{
|
||||
$this->assertSame(null, config('services.paypal'));
|
||||
config([
|
||||
'tenancy.features' => [TenantConfig::class],
|
||||
'tenancy.bootstrappers' => [],
|
||||
]);
|
||||
Event::listen(TenancyInitialized::class, BootstrapTenancy::class);
|
||||
Event::listen(TenancyEnded::class, RevertToCentralContext::class);
|
||||
TenantConfig::$storageToConfigMap = [
|
||||
'paypal_api_public' => 'services.paypal.public',
|
||||
'paypal_api_private' => 'services.paypal.private',
|
||||
];
|
||||
|
||||
TenantConfig::$storageToConfigMap = [
|
||||
'paypal_api_public' => 'services.paypal.public',
|
||||
'paypal_api_private' => 'services.paypal.private',
|
||||
];
|
||||
$tenant = Tenant::create([
|
||||
'paypal_api_public' => 'foo',
|
||||
'paypal_api_private' => 'bar',
|
||||
]);
|
||||
|
||||
$tenant = Tenant::create([
|
||||
'paypal_api_public' => 'foo',
|
||||
'paypal_api_private' => 'bar',
|
||||
]);
|
||||
tenancy()->initialize($tenant);
|
||||
expect(config('services.paypal'))->toBe(['public' => 'foo', 'private' => 'bar']);
|
||||
|
||||
tenancy()->initialize($tenant);
|
||||
$this->assertSame(['public' => 'foo', 'private' => 'bar'], config('services.paypal'));
|
||||
tenancy()->end();
|
||||
pest()->assertSame([
|
||||
'public' => null,
|
||||
'private' => null,
|
||||
], config('services.paypal'));
|
||||
});
|
||||
|
||||
tenancy()->end();
|
||||
$this->assertSame([
|
||||
'public' => null,
|
||||
'private' => null,
|
||||
], config('services.paypal'));
|
||||
}
|
||||
test('the value can be set to multiple config keys', function () {
|
||||
expect(config('services.paypal'))->toBe(null);
|
||||
config([
|
||||
'tenancy.features' => [TenantConfig::class],
|
||||
'tenancy.bootstrappers' => [],
|
||||
]);
|
||||
Event::listen(TenancyInitialized::class, BootstrapTenancy::class);
|
||||
Event::listen(TenancyEnded::class, RevertToCentralContext::class);
|
||||
|
||||
/** @test */
|
||||
public function the_value_can_be_set_to_multiple_config_keys()
|
||||
{
|
||||
$this->assertSame(null, config('services.paypal'));
|
||||
config([
|
||||
'tenancy.features' => [TenantConfig::class],
|
||||
'tenancy.bootstrappers' => [],
|
||||
]);
|
||||
Event::listen(TenancyInitialized::class, BootstrapTenancy::class);
|
||||
Event::listen(TenancyEnded::class, RevertToCentralContext::class);
|
||||
TenantConfig::$storageToConfigMap = [
|
||||
'paypal_api_public' => [
|
||||
'services.paypal.public1',
|
||||
'services.paypal.public2',
|
||||
],
|
||||
'paypal_api_private' => 'services.paypal.private',
|
||||
];
|
||||
|
||||
TenantConfig::$storageToConfigMap = [
|
||||
'paypal_api_public' => [
|
||||
'services.paypal.public1',
|
||||
'services.paypal.public2',
|
||||
],
|
||||
'paypal_api_private' => 'services.paypal.private',
|
||||
];
|
||||
$tenant = Tenant::create([
|
||||
'paypal_api_public' => 'foo',
|
||||
'paypal_api_private' => 'bar',
|
||||
]);
|
||||
|
||||
$tenant = Tenant::create([
|
||||
'paypal_api_public' => 'foo',
|
||||
'paypal_api_private' => 'bar',
|
||||
]);
|
||||
tenancy()->initialize($tenant);
|
||||
pest()->assertSame([
|
||||
'public1' => 'foo',
|
||||
'public2' => 'foo',
|
||||
'private' => 'bar',
|
||||
], config('services.paypal'));
|
||||
|
||||
tenancy()->initialize($tenant);
|
||||
$this->assertSame([
|
||||
'public1' => 'foo',
|
||||
'public2' => 'foo',
|
||||
'private' => 'bar',
|
||||
], config('services.paypal'));
|
||||
|
||||
tenancy()->end();
|
||||
$this->assertSame([
|
||||
'public1' => null,
|
||||
'public2' => null,
|
||||
'private' => null,
|
||||
], config('services.paypal'));
|
||||
}
|
||||
}
|
||||
tenancy()->end();
|
||||
pest()->assertSame([
|
||||
'public1' => null,
|
||||
'public2' => null,
|
||||
'private' => null,
|
||||
], config('services.paypal'));
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue