chore: improve AppServiceProvider

- add automatic eager loading of relationships
- configure Laravel Http Facade to prevent stray requests during tests
- configure Laravel Sleep Facade to be faked during tests
This commit is contained in:
peaklabs-dev 2025-04-22 21:49:56 +02:00
parent 09ca5040ec
commit 52dab08027
No known key found for this signature in database

View file

@ -11,9 +11,11 @@ use Illuminate\Http\Client\RequestException;
use Illuminate\Support\Facades\App; use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Date; use Illuminate\Support\Facades\Date;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\URL; use Illuminate\Support\Facades\URL;
use Illuminate\Support\Facades\Vite; use Illuminate\Support\Facades\Vite;
use Illuminate\Support\ServiceProvider; use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Sleep;
use Illuminate\Validation\Rules\Password; use Illuminate\Validation\Rules\Password;
final class AppServiceProvider extends ServiceProvider final class AppServiceProvider extends ServiceProvider
@ -33,6 +35,7 @@ final class AppServiceProvider extends ServiceProvider
$this->configureCommands(); $this->configureCommands();
$this->configureModels(); $this->configureModels();
$this->configureDates(); $this->configureDates();
$this->configureTests();
$this->configureRequestExceptions(); $this->configureRequestExceptions();
$this->configureVite(); $this->configureVite();
} }
@ -77,11 +80,14 @@ final class AppServiceProvider extends ServiceProvider
*/ */
private function configureModels(): void private function configureModels(): void
{ {
Model::automaticallyEagerLoadRelationships();
if (! App::isProduction()) { if (! App::isProduction()) {
Model::preventLazyLoading(); Model::preventLazyLoading();
} }
Model::preventSilentlyDiscardingAttributes();
Model::preventAccessingMissingAttributes(); Model::preventAccessingMissingAttributes();
Model::unguard(); Model::unguard();
Relation::enforceMorphMap([ Relation::enforceMorphMap([
@ -98,6 +104,17 @@ final class AppServiceProvider extends ServiceProvider
Date::use(CarbonImmutable::class); Date::use(CarbonImmutable::class);
} }
/**
* Configure tests.
*/
private function configureTests(): void
{
if (App::runningUnitTests()) {
Sleep::fake();
Http::preventStrayRequests();
}
}
/** /**
* Configure request exceptions. * Configure request exceptions.
*/ */