import { fireEvent, render, screen, waitFor } from '@testing-library/react' import { describe, expect, it, vi } from 'vitest' import { I18nProvider, useI18n } from './context' import { normalizeLocale } from './languages' function Probe() { const { locale, setLocale, t } = useI18n() return } describe('Turkish language pack', () => { it('accepts Turkish aliases', () => { for (const value of ['tr', 'TR-TR', 'tr_TR', 'Türkçe', 'turkce', 'Turkish']) expect(normalizeLocale(value)).toBe('tr') }) it('starts in Turkish and persists a language change without losing sibling settings', async () => { const saveConfig = vi.fn().mockResolvedValue({ ok: true }) const config = { display: { density: 'compact' }, model: { default: 'account/model' } } render() expect(screen.getByRole('button', { name: 'Kaydet' })).toBeTruthy() await waitFor(() => expect(document.documentElement.lang).toBe('tr')) fireEvent.click(screen.getByRole('button', { name: 'Kaydet' })) await waitFor(() => expect(screen.getByRole('button', { name: 'Save' })).toBeTruthy()) expect(saveConfig).toHaveBeenCalledWith({ ...config, display: { ...config.display, language: 'en' } }) }) })