mirror of
https://github.com/archtechx/tenancy.git
synced 2025-12-12 23:14:03 +00:00
* Add Pest dependencies * Add base Pest file * Convert test cases * Remove non-compound imports * Adopt expectation API * Optimize uses * Shift cleanup * phpunit -> pest * Fix tests in PR #884 PHPUnit to Pest Converter (#885) * fixed tests, remove method duplications, restore necessary inner classes * Update CommandsTest.php * temporary checks run on `shift-64622` on branch. * fixed `TestSeeder` class not resolved * fixed messed up names * removed `uses` from individual files and add it in `Pest` * extract tests to helpers * use pest dataset * Update AutomaticModeTest.php * newline * todo convention * resolve reviews * added `// todo@tests` * remove shift branch from CI workflow Co-authored-by: Samuel Štancl <samuel@archte.ch> * check if I have write permission * Convert newly added tests to Pest Co-authored-by: Shift <shift@laravelshift.com> Co-authored-by: Abrar Ahmad <abrar.dev99@gmail.com>
81 lines
2.3 KiB
PHP
81 lines
2.3 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
use Illuminate\Support\Facades\Event;
|
|
use Stancl\Tenancy\Events\TenancyEnded;
|
|
use Stancl\Tenancy\Events\TenancyInitialized;
|
|
use Stancl\Tenancy\Features\TenantConfig;
|
|
use Stancl\Tenancy\Listeners\BootstrapTenancy;
|
|
use Stancl\Tenancy\Listeners\RevertToCentralContext;
|
|
use Stancl\Tenancy\Tests\Etc\Tenant;
|
|
|
|
afterEach(function () {
|
|
TenantConfig::$storageToConfigMap = [];
|
|
});
|
|
|
|
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);
|
|
|
|
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',
|
|
]);
|
|
|
|
tenancy()->initialize($tenant);
|
|
expect(config('services.paypal'))->toBe(['public' => 'foo', 'private' => 'bar']);
|
|
|
|
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);
|
|
|
|
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',
|
|
]);
|
|
|
|
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'));
|
|
});
|