62 lines
1.6 KiB
PHP
62 lines
1.6 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
use App\Enums\Gender;
|
|
use App\Enums\NavigationGroup;
|
|
use App\Filament\Resources\ActivityLogs\ActivityLogResource;
|
|
use App\Models\User;
|
|
use BezhanSalleh\LanguageSwitch\Events\LocaleChanged;
|
|
use Illuminate\Support\Facades\App;
|
|
use Illuminate\Support\Facades\Event;
|
|
|
|
it('returns translated enum labels for the active locale', function (): void {
|
|
App::setLocale('ru');
|
|
|
|
expect(Gender::Male->label())->toBe('Мужской');
|
|
|
|
App::setLocale('tk');
|
|
|
|
expect(Gender::Male->label())->toBe('Erkek');
|
|
|
|
App::setLocale('en');
|
|
|
|
expect(Gender::Male->label())->toBe('Male');
|
|
});
|
|
|
|
it('returns translated navigation group labels', function (): void {
|
|
App::setLocale('ru');
|
|
|
|
expect(NavigationGroup::Employees->getLabel())->toBe('Сотрудники');
|
|
|
|
App::setLocale('tk');
|
|
|
|
expect(NavigationGroup::LeaveManagement->getLabel())->toBe('Dynç alyş dolandyryşy');
|
|
});
|
|
|
|
it('returns translated filament resource navigation labels', function (): void {
|
|
App::setLocale('tk');
|
|
|
|
expect(ActivityLogResource::getNavigationLabel())->toBe('Audit žurnaly');
|
|
|
|
App::setLocale('ru');
|
|
|
|
expect(ActivityLogResource::getNavigationLabel())->toBe('Журнал аудита');
|
|
});
|
|
|
|
it('persists locale when locale changed event fires', function (): void {
|
|
$user = User::factory()->create(['locale' => 'en']);
|
|
|
|
$this->actingAs($user);
|
|
|
|
Event::dispatch(new LocaleChanged('ru'));
|
|
|
|
expect($user->fresh()->locale)->toBe('ru');
|
|
});
|
|
|
|
it('defaults new users to english locale', function (): void {
|
|
$user = User::factory()->create();
|
|
|
|
expect($user->locale)->toBe('en');
|
|
});
|