82 lines
2.7 KiB
JavaScript
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();
|
|
});
|