1
0
Fork 0
mirror of https://github.com/archtechx/tenancy.git synced 2026-02-05 17:54:03 +00:00

Add tenancy()->central() helper

This commit is contained in:
Samuel Štancl 2020-11-12 17:07:57 +01:00
parent 1c93360077
commit 51ba97dbcc
3 changed files with 79 additions and 0 deletions

View file

@ -71,6 +71,55 @@ class AutomaticModeTest extends TestCase
$this->assertSame('foobar', app('tenancy_initialized_for_tenant'));
}
/** @test */
public function central_helper_runs_callbacks_in_the_central_state()
{
tenancy()->initialize($tenant = Tenant::create());
tenancy()->central(function () {
$this->assertSame(null, tenant());
});
$this->assertSame($tenant, tenant());
}
/** @test */
public function central_helper_returns_the_value_from_the_callback()
{
tenancy()->initialize(Tenant::create());
$this->assertSame('foo', tenancy()->central(function () {
return 'foo';
}));
}
/** @test */
public function central_helper_reverts_back_to_tenant_context()
{
tenancy()->initialize($tenant = Tenant::create());
tenancy()->central(function () {
//
});
$this->assertSame($tenant, tenant());
}
/** @test */
public function central_helper_doesnt_change_tenancy_state_when_called_in_central_context()
{
$this->assertFalse(tenancy()->initialized);
$this->assertNull(tenant());
tenancy()->central(function () {
//
});
$this->assertFalse(tenancy()->initialized);
$this->assertNull(tenant());
}
}
class MyBootstrapper implements TenancyBootstrapper