// @vitest-environment jsdom
import { cleanup, render } from "@testing-library/react"
import { afterEach, describe, expect, it, vi } from "vitest"
import { languages } from "../../../i18n/languages"
const languageMock = vi.hoisted(() => ({ current: "en" }))
vi.mock("react-i18next", () => ({
useTranslation: () => ({ i18n: { language: languageMock.current } }),
}))
import { I18nProvider } from "../i18n-provider"
afterEach(() => {
cleanup()
document.documentElement.removeAttribute("lang")
document.documentElement.removeAttribute("dir")
})
describe("I18nProvider", () => {
it("sets the lang attribute from the active language", () => {
languageMock.current = "en"
render()
expect(document.documentElement.getAttribute("lang")).toBe("en")
})
it("sets a region-qualified lang attribute", () => {
languageMock.current = "ptBR"
render()
expect(document.documentElement.getAttribute("lang")).toBe("pt-BR")
})
it("falls back to the first configured language when the active one is unknown", () => {
languageMock.current = "xx"
render()
expect(document.documentElement.getAttribute("lang")).toBe(
languages[0].code
)
})
})