1
0
Fork 0
mirror of https://github.com/archtechx/tenancy.git synced 2025-12-12 18:04:03 +00:00

Make GlobalCache facade not cached. Even though it wasn't causing issues

in our existing tests, it likely was flaky, and making it not $cached
makes it now consistent with global_cache() - always getting a new
CacheManager from the globalCache container binding
This commit is contained in:
Samuel Štancl 2025-08-05 22:26:30 +02:00
parent 3ca90bc445
commit dbb8470b80
3 changed files with 11 additions and 2 deletions

View file

@ -8,6 +8,9 @@ use Illuminate\Support\Facades\Cache;
class GlobalCache extends Cache
{
/** Make sure this works identically to global_cache() */
protected static $cached = false;
protected static function getFacadeAccessor()
{
return 'globalCache';

View file

@ -83,7 +83,6 @@ class TenancyServiceProvider extends ServiceProvider
return new Commands\Seed($app['db']);
});
// todo0 check how the caching in the facade affects our logic here
// todo0 check what happens if globalCache is injected - it may be
// problematic if it's injected before adjustCacheManagerUsing
// was used

View file

@ -68,6 +68,14 @@ test('global cache manager stores data in global cache', function (string $boots
CacheTenancyBootstrapper::class,
]);
test('global cache facade is not persistent', function () {
$oldId = spl_object_id(GlobalCache::getFacadeRoot());
$_ = new class {};
expect(spl_object_id(GlobalCache::getFacadeRoot()))->not()->toBe($oldId);
});
test('global cache is always central', function (string $store, array $bootstrappers, string $initialCentralCall) {
config([
'cache.default' => $store,
@ -130,7 +138,6 @@ test('global cache is always central', function (string $store, array $bootstrap
expect(global_cache('central-facade'))->toBe(true);
expect(GlobalCache::get('central-facade'))->toBe(true);
}
})->with([
['redis', [CacheTagsBootstrapper::class]],
['redis', [CacheTenancyBootstrapper::class]],