import { render, type RenderOptions } from '@testing-library/react'
import { I18nextProvider } from 'react-i18next'
import type { ReactElement, ReactNode } from 'react'
import i18n from '@/i18n'

// LanguageDetector в jsdom по умолчанию даёт en-US (через navigator.language).
// Для тестов фиксируем ru-RU чтобы не возиться с двумя наборами ассертов.
if (i18n.language !== 'ru-RU') {
  void i18n.changeLanguage('ru-RU')
}

const Wrapper = ({ children }: { children: ReactNode }) => (
  <I18nextProvider i18n={i18n}>{children}</I18nextProvider>
)

export const renderWithI18n = (ui: ReactElement, opts?: Omit<RenderOptions, 'wrapper'>) =>
  render(ui, { wrapper: Wrapper, ...opts })

export { i18n }
