diff --git a/app/Observers/SettingObserver.php b/app/Observers/SettingObserver.php index ec9dec3f23..350249f57b 100644 --- a/app/Observers/SettingObserver.php +++ b/app/Observers/SettingObserver.php @@ -17,5 +17,6 @@ class SettingObserver public function saved(Setting $setting) { Cache::forget(Setting::SETUP_CHECK_KEY); + Setting::$_cache = null; } } diff --git a/database/factories/SettingFactory.php b/database/factories/SettingFactory.php index 970d00cd68..1655bd3350 100644 --- a/database/factories/SettingFactory.php +++ b/database/factories/SettingFactory.php @@ -34,13 +34,4 @@ class SettingFactory extends Factory 'email_domain' => 'test.com', ]; } - - public function withMultipleFullCompanySupport() - { - return $this->state(function () { - return [ - 'full_multiple_companies_support' => 1, - ]; - }); - } } diff --git a/tests/Feature/Api/Assets/AssetIndexTest.php b/tests/Feature/Api/Assets/AssetIndexTest.php index 2190c791f6..2bb54b8097 100644 --- a/tests/Feature/Api/Assets/AssetIndexTest.php +++ b/tests/Feature/Api/Assets/AssetIndexTest.php @@ -3,7 +3,6 @@ namespace Tests\Feature\Api\Assets; use App\Models\Asset; -use App\Models\Setting; use App\Models\User; use Illuminate\Testing\Fluent\AssertableJson; use Laravel\Passport\Passport; @@ -13,8 +12,6 @@ class AssetIndexTest extends TestCase { public function testAssetIndexReturnsExpectedAssets() { - Setting::factory()->create(); - Asset::factory()->count(3)->create(); Passport::actingAs(User::factory()->superuser()->create()); diff --git a/tests/Feature/Api/Users/UsersForSelectListTest.php b/tests/Feature/Api/Users/UsersForSelectListTest.php index 8b2c01bcf3..71e094b669 100644 --- a/tests/Feature/Api/Users/UsersForSelectListTest.php +++ b/tests/Feature/Api/Users/UsersForSelectListTest.php @@ -3,7 +3,6 @@ namespace Tests\Feature\Api\Users; use App\Models\Company; -use App\Models\Setting; use App\Models\User; use Illuminate\Testing\Fluent\AssertableJson; use Laravel\Passport\Passport; @@ -13,8 +12,6 @@ class UsersForSelectListTest extends TestCase { public function testUsersAreReturned() { - Setting::factory()->create(); - $users = User::factory()->superuser()->count(3)->create(); Passport::actingAs($users->first()); @@ -32,7 +29,7 @@ class UsersForSelectListTest extends TestCase public function testUsersScopedToCompanyWhenMultipleFullCompanySupportEnabled() { - Setting::factory()->withMultipleFullCompanySupport()->create(); + $this->settings->enableMultipleFullCompanySupport(); $jedi = Company::factory()->has(User::factory()->count(3)->sequence( ['first_name' => 'Luke', 'last_name' => 'Skywalker', 'username' => 'lskywalker'], @@ -60,7 +57,7 @@ class UsersForSelectListTest extends TestCase public function testUsersScopedToCompanyDuringSearchWhenMultipleFullCompanySupportEnabled() { - Setting::factory()->withMultipleFullCompanySupport()->create(); + $this->settings->enableMultipleFullCompanySupport(); $jedi = Company::factory()->has(User::factory()->count(3)->sequence( ['first_name' => 'Luke', 'last_name' => 'Skywalker', 'username' => 'lskywalker'], diff --git a/tests/Support/Settings.php b/tests/Support/Settings.php new file mode 100644 index 0000000000..6e9d492c3b --- /dev/null +++ b/tests/Support/Settings.php @@ -0,0 +1,30 @@ +setting = Setting::factory()->create(); + } + + public function enableMultipleFullCompanySupport() + { + $this->update(['full_multiple_companies_support' => 1]); + } + + public function disableMultipleFullCompanySupport() + { + $this->update(['full_multiple_companies_support' => 0]); + } + + private function update(array $attributes) + { + Setting::unguarded(fn() => $this->setting->update($attributes)); + } +} diff --git a/tests/TestCase.php b/tests/TestCase.php index efa533b8cc..cc8d36105c 100644 --- a/tests/TestCase.php +++ b/tests/TestCase.php @@ -3,15 +3,17 @@ namespace Tests; use App\Http\Middleware\SecurityHeaders; -use App\Models\Setting; use Illuminate\Foundation\Testing\LazilyRefreshDatabase; use Illuminate\Foundation\Testing\TestCase as BaseTestCase; +use Tests\Support\Settings; abstract class TestCase extends BaseTestCase { use CreatesApplication; use LazilyRefreshDatabase; + protected Settings $settings; + private array $globallyDisabledMiddleware = [ SecurityHeaders::class, ]; @@ -20,8 +22,8 @@ abstract class TestCase extends BaseTestCase { parent::setUp(); - $this->beforeApplicationDestroyed(fn() => Setting::$_cache = null); - $this->withoutMiddleware($this->globallyDisabledMiddleware); + + $this->settings = new Settings(); } }