make(Translator::class); $localizer = new McamaraRouteLocalizer($translator); // WHEN $canBeUsed = $localizer->canBeUsed(); // THEN expect($canBeUsed)->toBeFalse(); }); it('canBeUsed returns true when laravellocalization is bound', function () { // GIVEN app()->register(LaravelLocalizationServiceProvider::class); $translator = app()->make(Translator::class); $localizer = new McamaraRouteLocalizer($translator); // WHEN $canBeUsed = $localizer->canBeUsed(); // THEN expect($canBeUsed)->toBeTrue(); }); it('returns null when translation does not exist', function () { // GIVEN app()->register(LaravelLocalizationServiceProvider::class); $translator = app()->make(Translator::class); $localizer = new McamaraRouteLocalizer($translator); // WHEN $url = $localizer->getLocalizedUrl('fr', 'unknown-route'); // THEN expect($url)->toBeNull(); }); it('returns localized url when translation exists', function () { // GIVEN app()->register(LaravelLocalizationServiceProvider::class); config()->set('laravellocalization.supportedLocales', [ 'en' => ['name' => 'English', 'script' => 'Latn', 'native' => 'English'], 'fr' => ['name' => 'French', 'script' => 'Latn', 'native' => 'Français'], ]); config()->set('laravellocalization.hideDefaultLocaleInURL', false); app('translator')->addLines(['routes.contact' => 'contact-fr'], 'fr'); $translator = app()->make(Translator::class); $localizer = new McamaraRouteLocalizer($translator); // WHEN $url = $localizer->getLocalizedUrl('fr', 'contact'); // THEN expect($url)->not->toBeNull() ->and((string) $url)->toBe('http://localhost/fr/contact-fr'); }); });