@applicaster/zapp-react-dom-app
Version:
Zapp App Component for Applicaster's Quick Brick React Native App
58 lines (46 loc) • 1.64 kB
JavaScript
import { getLanguageCodeImpl as getLanguageCode } from "..";
describe("getLanguageCode", () => {
it("return best matched language", async () => {
// setup
const getLanguageCodeFromLocalStorage = jest
.fn()
.mockResolvedValueOnce(undefined);
const getAvailableAppLanguages = jest
.fn()
.mockReturnValue(["en", "fr", "ru"]);
const pickBestMatchedLanguage = jest.fn().mockReturnValue("ru");
const setLanguageCodeToLocalStorage = jest.fn().mockResolvedValueOnce(true);
const locale = "ru";
// run
const result = await getLanguageCode(
getLanguageCodeFromLocalStorage,
getAvailableAppLanguages,
pickBestMatchedLanguage,
setLanguageCodeToLocalStorage
)(locale);
// verify
expect(result).toEqual(locale);
});
it("return value from local-storage", async () => {
// setup
const getLanguageCodeFromLocalStorage = jest
.fn()
.mockResolvedValueOnce("value-from-local-storage");
const getAvailableAppLanguages = jest.fn();
const pickBestMatchedLanguage = jest.fn();
const setLanguageCodeToLocalStorage = jest.fn();
const locale = "ru";
// run
const result = await getLanguageCode(
getLanguageCodeFromLocalStorage,
getAvailableAppLanguages,
pickBestMatchedLanguage,
setLanguageCodeToLocalStorage
)(locale);
// verify
expect(result).toEqual("value-from-local-storage");
expect(getAvailableAppLanguages).not.toHaveBeenCalled();
expect(pickBestMatchedLanguage).not.toHaveBeenCalled();
expect(setLanguageCodeToLocalStorage).not.toHaveBeenCalled();
});
});