mirror of
https://github.com/archtechx/tenancy.git
synced 2026-02-05 11:14:03 +00:00
use deleting instead of deleted event to trigger cache invalidation
This commit is contained in:
parent
1bcc215966
commit
e4ebccfa5f
3 changed files with 14 additions and 4 deletions
|
|
@ -19,7 +19,7 @@ trait InvalidatesResolverCache
|
||||||
public static function bootInvalidatesResolverCache()
|
public static function bootInvalidatesResolverCache()
|
||||||
{
|
{
|
||||||
static::saved(fn(Tenant $tenant) => static::invalidateTenantCache($tenant));
|
static::saved(fn(Tenant $tenant) => static::invalidateTenantCache($tenant));
|
||||||
static::deleted(fn(Tenant $tenant) => static::invalidateTenantCache($tenant));
|
static::deleting(fn(Tenant $tenant) => static::invalidateTenantCache($tenant));
|
||||||
}
|
}
|
||||||
|
|
||||||
private static function invalidateTenantCache(Tenant $tenant): void
|
private static function invalidateTenantCache(Tenant $tenant): void
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ trait InvalidatesTenantsResolverCache
|
||||||
public static function bootInvalidatesTenantsResolverCache()
|
public static function bootInvalidatesTenantsResolverCache()
|
||||||
{
|
{
|
||||||
static::saved(fn(Model $model) => static::invalidateTenantCache($model));
|
static::saved(fn(Model $model) => static::invalidateTenantCache($model));
|
||||||
static::deleted(fn(Model $model) => static::invalidateTenantCache($model));
|
static::deleting(fn(Model $model) => static::invalidateTenantCache($model));
|
||||||
}
|
}
|
||||||
|
|
||||||
private static function invalidateTenantCache(Model $model): void
|
private static function invalidateTenantCache(Model $model): void
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,8 @@ declare(strict_types=1);
|
||||||
namespace Stancl\Tenancy\Tests;
|
namespace Stancl\Tenancy\Tests;
|
||||||
|
|
||||||
use Illuminate\Support\Facades\DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
|
use Illuminate\Support\Facades\Exceptions;
|
||||||
|
use Stancl\Tenancy\Contracts\TenantCouldNotBeIdentifiedException;
|
||||||
use Stancl\Tenancy\Resolvers\DomainTenantResolver;
|
use Stancl\Tenancy\Resolvers\DomainTenantResolver;
|
||||||
use Stancl\Tenancy\Tests\Etc\Tenant;
|
use Stancl\Tenancy\Tests\Etc\Tenant;
|
||||||
|
|
||||||
|
|
@ -113,6 +115,8 @@ class CachedTenantResolverTest extends TestCase
|
||||||
/** @test */
|
/** @test */
|
||||||
public function cache_is_invalidated_when_a_tenants_domain_is_deleted()
|
public function cache_is_invalidated_when_a_tenants_domain_is_deleted()
|
||||||
{
|
{
|
||||||
|
Exceptions::fake();
|
||||||
|
|
||||||
$tenant = Tenant::create();
|
$tenant = Tenant::create();
|
||||||
$tenant->createDomain([
|
$tenant->createDomain([
|
||||||
'domain' => 'acme',
|
'domain' => 'acme',
|
||||||
|
|
@ -129,14 +133,18 @@ class CachedTenantResolverTest extends TestCase
|
||||||
|
|
||||||
$tenant->domains()->first()->delete();
|
$tenant->domains()->first()->delete();
|
||||||
|
|
||||||
|
$this->expectException(TenantCouldNotBeIdentifiedException::class); // tenant not found
|
||||||
|
|
||||||
DB::flushQueryLog();
|
DB::flushQueryLog();
|
||||||
$this->assertTrue($tenant->is(app(DomainTenantResolver::class)->resolve('acme')));
|
$this->assertTrue($tenant->is(app(DomainTenantResolver::class)->resolve('acme')));
|
||||||
$this->assertEmpty(DB::getQueryLog()); // not empty
|
$this->assertNotEmpty(DB::getQueryLog()); // not emptyt empty
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @test */
|
/** @test */
|
||||||
public function cache_is_invalidated_when_a_tenant_is_deleted()
|
public function cache_is_invalidated_when_a_tenant_is_deleted()
|
||||||
{
|
{
|
||||||
|
Exceptions::fake();
|
||||||
|
|
||||||
$tenant = Tenant::create();
|
$tenant = Tenant::create();
|
||||||
$tenant->createDomain([
|
$tenant->createDomain([
|
||||||
'domain' => 'acme',
|
'domain' => 'acme',
|
||||||
|
|
@ -153,8 +161,10 @@ class CachedTenantResolverTest extends TestCase
|
||||||
|
|
||||||
$tenant->delete();
|
$tenant->delete();
|
||||||
|
|
||||||
|
$this->expectException(TenantCouldNotBeIdentifiedException::class); // tenant not found
|
||||||
|
|
||||||
DB::flushQueryLog();
|
DB::flushQueryLog();
|
||||||
$this->assertTrue($tenant->is(app(DomainTenantResolver::class)->resolve('acme')));
|
$this->assertTrue($tenant->is(app(DomainTenantResolver::class)->resolve('acme')));
|
||||||
$this->assertEmpty(DB::getQueryLog()); // not empty
|
$this->assertNotEmpty(DB::getQueryLog()); // not empty
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue