Files
enterprise-addons/documents_spreadsheet/static/tests/locale/locale_control_panel.test.js
T

82 lines
2.7 KiB
JavaScript

import { defineDocumentSpreadsheetModels } from "@documents_spreadsheet/../tests/helpers/data";
import { createSpreadsheet } from "@documents_spreadsheet/../tests/helpers/spreadsheet_test_utils";
import { describe, expect, test } from "@odoo/hoot";
import { animationFrame } from "@odoo/hoot-mock";
import { onRpc } from "@web/../tests/web_test_helpers";
import { TEST_LOCALES } from "@spreadsheet/../tests/helpers/locale";
defineDocumentSpreadsheetModels();
describe.current.tags("desktop");
const en_US = TEST_LOCALES.en_US;
const fr_FR = TEST_LOCALES.fr_FR;
test("No locale icon if user locale matched spreadsheet locale", async function () {
onRpc("/spreadsheet/data/*", () => ({
name: "Untitled spreadsheet",
user_locale: en_US,
data: {
settings: { locale: en_US },
},
}));
await createSpreadsheet();
expect(".o-spreadsheet-topbar .fa-globe").not.toHaveCount();
});
test("No locale icon if no user locale is given", async function () {
onRpc("/spreadsheet/data/*", () => ({
name: "Untitled spreadsheet",
data: {
settings: { locale: en_US },
},
}));
await createSpreadsheet();
expect(".o-spreadsheet-topbar .fa-globe").not.toHaveCount();
});
test("Different locales between user and spreadsheet: display icon as info", async function () {
onRpc("/spreadsheet/data/*", () => ({
name: "Untitled spreadsheet",
user_locale: fr_FR,
data: {
settungs: { locale: en_US },
},
}));
await createSpreadsheet();
expect(".o-spreadsheet-topbar .fa-globe.text-info").toHaveProperty(
"title",
"Difference between user locale (fr_FR) and spreadsheet locale (en_US). This spreadsheet is using the formats below:\n" +
"- dates: m/d/yyyy\n" +
"- numbers: 1,234,567.89"
);
});
test("no warning with different locale codes but same formats", async function () {
onRpc("/spreadsheet/data/*", () => ({
name: "Untitled spreadsheet",
user_locale: { ...fr_FR, code: "fr_BE" },
data: {
settings: { locale: fr_FR },
},
}));
await createSpreadsheet();
expect(".o-spreadsheet-topbar .fa-globe").not.toHaveCount();
});
test("changing spreadsheet locale to user locale: remove icon", async function () {
onRpc("/spreadsheet/data/*", () => ({
name: "Untitled spreadsheet",
user_locale: en_US,
data: {
settings: { locale: fr_FR },
},
}));
const { model } = await createSpreadsheet();
expect(".o-spreadsheet-topbar .fa-globe").toHaveCount(1);
model.dispatch("UPDATE_LOCALE", { locale: en_US });
await animationFrame();
expect(".o-spreadsheet-topbar .fa-globe").not.toHaveCount();
});