setLaravelSession(app('session.store')); (new SetLocale)->handle($request, fn () => new Response); return App::getLocale(); } it('applies a supported locale from the lang query parameter', function (string $locale) { $request = Request::create('/', 'GET', ['lang' => $locale]); expect(resolveLocaleFor($request))->toBe($locale); })->with(['en', 'es', 'fr']); it('ignores an unsupported lang query parameter', function () { $request = Request::create('/', 'GET', ['lang' => 'de']); expect(resolveLocaleFor($request))->not->toBe('de'); }); it('detects French from the Accept-Language header', function () { $request = Request::create('/', 'GET', server: ['HTTP_ACCEPT_LANGUAGE' => 'fr-FR,fr;q=0.9,en;q=0.8']); expect(resolveLocaleFor($request))->toBe('fr'); }); it('detects Spanish from the Accept-Language header', function () { $request = Request::create('/', 'GET', server: ['HTTP_ACCEPT_LANGUAGE' => 'es-ES,es;q=0.9']); expect(resolveLocaleFor($request))->toBe('es'); }); it('falls back to English for an unrecognized Accept-Language header', function () { $request = Request::create('/', 'GET', server: ['HTTP_ACCEPT_LANGUAGE' => 'de-DE,de;q=0.9']); expect(resolveLocaleFor($request))->toBe('en'); });