49 lines
1.2 KiB
PHP
49 lines
1.2 KiB
PHP
|
|
<?php
|
||
|
|
|
||
|
|
declare(strict_types=1);
|
||
|
|
|
||
|
|
namespace Uwil\SitemapGenerator\Tests\Unit\Localizers;
|
||
|
|
|
||
|
|
use Illuminate\Support\Facades\Route;
|
||
|
|
use Uwil\SitemapGenerator\Localizers\DefaultRouteLocalizer;
|
||
|
|
|
||
|
|
covers(DefaultRouteLocalizer::class);
|
||
|
|
|
||
|
|
describe('DefaultRouteLocalizer', function () {
|
||
|
|
it('can be used unconditionally', function () {
|
||
|
|
// GIVEN
|
||
|
|
$localizer = new DefaultRouteLocalizer();
|
||
|
|
|
||
|
|
// WHEN
|
||
|
|
$canBeUsed = $localizer->canBeUsed();
|
||
|
|
|
||
|
|
// THEN
|
||
|
|
expect($canBeUsed)->toBeTrue();
|
||
|
|
});
|
||
|
|
|
||
|
|
it('returns localized url for existing route with locale parameter', function () {
|
||
|
|
// GIVEN
|
||
|
|
Route::name('about')->get('/{locale}/about', fn () => 'about');
|
||
|
|
|
||
|
|
$localizer = new DefaultRouteLocalizer();
|
||
|
|
|
||
|
|
// WHEN
|
||
|
|
$url = $localizer->getLocalizedUrl('fr', 'about');
|
||
|
|
|
||
|
|
// THEN
|
||
|
|
expect($url)->not->toBeNull()
|
||
|
|
->and((string) $url)->toBe('http://localhost/fr/about');
|
||
|
|
});
|
||
|
|
|
||
|
|
it('returns null when route does not exist', function () {
|
||
|
|
// GIVEN
|
||
|
|
$localizer = new DefaultRouteLocalizer();
|
||
|
|
|
||
|
|
// WHEN
|
||
|
|
$url = $localizer->getLocalizedUrl('fr', 'non-existing-route');
|
||
|
|
|
||
|
|
// THEN
|
||
|
|
expect($url)->toBeNull();
|
||
|
|
});
|
||
|
|
});
|