Farmbot-Web-App/frontend/__tests__/i18next_test.ts

52 lines
1.3 KiB
TypeScript
Raw Permalink Normal View History

2019-02-28 16:31:42 -07:00
jest.mock("axios", () => ({
get: jest.fn(() => Promise.resolve({
data: {
"translated": {
"A": "B"
},
"untranslated": {
"C": "C"
},
"other_translations": {
"D": "E"
}
}
}))
}));
2018-01-24 09:03:42 -07:00
import { generateUrl, getUserLang, generateI18nConfig } from "../i18n";
2017-12-11 07:21:00 -07:00
import axios from "axios";
const LANG_CODE = "en_US";
2018-05-15 20:38:52 -06:00
const HOST = "local.dev";
const PORT = "2323";
2017-12-11 07:21:00 -07:00
describe("generateUrl", () => {
it("Generates a URL from a language code", () => {
2018-05-15 20:38:52 -06:00
const result = generateUrl(LANG_CODE, HOST, PORT);
2019-02-28 16:31:42 -07:00
expect(result).toBe("//local.dev:2323/app-resources/languages/en.json");
2017-12-11 07:21:00 -07:00
});
});
describe("getUserLang", () => {
it("gets the user's language", (done) => {
2018-05-15 20:38:52 -06:00
getUserLang(LANG_CODE, HOST, PORT)
2019-02-28 16:31:42 -07:00
.then(result => {
2017-12-11 07:21:00 -07:00
expect(axios.get).toHaveBeenCalled();
2018-05-15 20:38:52 -06:00
expect(axios.get).toHaveBeenCalledWith(generateUrl(LANG_CODE, HOST, PORT));
2017-12-11 07:21:00 -07:00
expect(result).toEqual("en");
done();
})
2019-02-28 16:31:42 -07:00
.catch(x => fail(x.message));
2017-12-11 07:21:00 -07:00
});
});
2018-01-24 09:03:42 -07:00
describe("generateI18nConfig", () => {
it("generates a config with defaults", async () => {
const result = await generateI18nConfig("en");
expect(result.lng).toBe("en");
2019-02-28 16:31:42 -07:00
result.resources
? expect(result.resources.en.translation).toEqual({ A: "B", C: "C", D: "E" })
: expect(result.resources).toBeTruthy();
2018-01-24 09:03:42 -07:00
});
});