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
|
|
|
});
|
|
|
|
});
|