From 77dca0b47aeecad17c2e2c5b33a232be4bfc5680 Mon Sep 17 00:00:00 2001 From: Enzo Innocenzi Date: Wed, 14 Jan 2026 13:21:07 +0100 Subject: [PATCH 1/2] fix(view): do not cache views in local environments by default --- .../src/Initializers/ViewCacheInitializer.php | 2 +- tests/Integration/View/ViewCacheTest.php | 58 +++++++++++++++++++ 2 files changed, 59 insertions(+), 1 deletion(-) diff --git a/packages/view/src/Initializers/ViewCacheInitializer.php b/packages/view/src/Initializers/ViewCacheInitializer.php index 3fcff7ad7a..14befdca9b 100644 --- a/packages/view/src/Initializers/ViewCacheInitializer.php +++ b/packages/view/src/Initializers/ViewCacheInitializer.php @@ -28,6 +28,6 @@ private function shouldCacheBeEnabled(): bool return false; } - return (bool) env('VIEW_CACHE', default: Environment::guessFromEnvironment()); + return (bool) env('VIEW_CACHE', default: Environment::guessFromEnvironment()->requiresCaution()); } } diff --git a/tests/Integration/View/ViewCacheTest.php b/tests/Integration/View/ViewCacheTest.php index 86b609b996..4ab9cdf5db 100644 --- a/tests/Integration/View/ViewCacheTest.php +++ b/tests/Integration/View/ViewCacheTest.php @@ -4,6 +4,8 @@ namespace Tests\Tempest\Integration\View; +use PHPUnit\Framework\Attributes\Test; +use Tempest\Core\Environment; use Tempest\View\ViewCache; use Tempest\View\ViewCachePool; use Tests\Tempest\Integration\FrameworkIntegrationTestCase; @@ -42,9 +44,65 @@ protected function tearDown(): void rmdir(self::DIRECTORY); } + putenv('ENVIRONMENT=testing'); + putenv('VIEW_CACHE='); + putenv('INTERNAL_CACHES='); + parent::tearDown(); } + #[Test] + public function enabled_by_default_in_production(): void + { + putenv('ENVIRONMENT=production'); + + $this->container->unregister(ViewCache::class); + + $this->assertTrue($this->container->get(ViewCache::class)->enabled); + } + + #[Test] + public function enabled_by_default_in_staging(): void + { + putenv('ENVIRONMENT=staging'); + + $this->container->unregister(ViewCache::class); + + $this->assertTrue($this->container->get(ViewCache::class)->enabled); + } + + #[Test] + public function disabled_by_default_locally(): void + { + putenv('ENVIRONMENT=local'); + + $this->container->unregister(ViewCache::class); + + $this->assertFalse($this->container->get(ViewCache::class)->enabled); + } + + #[Test] + public function overriden_by_internal_caches_in_production(): void + { + putenv('ENVIRONMENT=production'); + putenv('INTERNAL_CACHES=false'); + + $this->container->unregister(ViewCache::class); + + $this->assertFalse($this->container->get(ViewCache::class)->enabled); + } + + #[Test] + public function overriden_by_view_cache_locally(): void + { + putenv('ENVIRONMENT=local'); + putenv('VIEW_CACHE=true'); + + $this->container->unregister(ViewCache::class); + + $this->assertTrue($this->container->get(ViewCache::class)->enabled); + } + public function test_view_cache(): void { $path = $this->viewCache->getCachedViewPath('path', fn () => 'hi'); From 90bbee28086fd06b0d8960f5c714e7b398fd8d36 Mon Sep 17 00:00:00 2001 From: Enzo Innocenzi Date: Wed, 14 Jan 2026 13:24:32 +0100 Subject: [PATCH 2/2] style: apply fixes from qa --- tests/Integration/View/ViewCacheTest.php | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/Integration/View/ViewCacheTest.php b/tests/Integration/View/ViewCacheTest.php index 4ab9cdf5db..a594a6166b 100644 --- a/tests/Integration/View/ViewCacheTest.php +++ b/tests/Integration/View/ViewCacheTest.php @@ -5,7 +5,6 @@ namespace Tests\Tempest\Integration\View; use PHPUnit\Framework\Attributes\Test; -use Tempest\Core\Environment; use Tempest\View\ViewCache; use Tempest\View\ViewCachePool; use Tests\Tempest\Integration\FrameworkIntegrationTestCase;