import * as React from "react";
import { render } from "@test";
import { TranslationContextProvider } from "@contexts/translation";
import { useGetLocale, useTranslate } from "@hooks";
describe("TranslationContext", () => {
const TestComponent = () => {
const locale = useGetLocale();
const translate = useTranslate();
return (
{`Current language: ${locale()}`}
{translate("undefined key", { name: "test" }, "hello test")}
);
};
const customRender = (ui: any, providerProps?: any) => {
return render(
{ui}
,
providerProps,
);
};
it("should get value from TranslationContext ", () => {
const providerProps = {
i18nProvider: {
translate: () => "hello",
changeLocale: () => Promise.resolve(),
getLocale: () => "tr",
},
};
const { getByText } = customRender(, providerProps);
expect(getByText("Current language: tr"));
});
it("should get options value from TranslationContext ", () => {
const providerProps = {
i18nProvider: {
translate: (key: string, options: any) =>
`hello ${options.name}`,
changeLocale: () => Promise.resolve(),
getLocale: () => "tr",
},
};
const { getByText } = customRender(, providerProps);
expect(getByText("hello test")).toBeTruthy();
});
});