Odoo18-Base/addons/spreadsheet/static/tests/currency/currency_plugin.test.js
2025-01-06 10:57:38 +07:00

59 lines
2.2 KiB
JavaScript

import { describe, expect, test } from "@odoo/hoot";
import { animationFrame } from "@odoo/hoot-mock";
import { createModelWithDataSource } from "@spreadsheet/../tests/helpers/model";
import { defineSpreadsheetModels } from "../helpers/data";
import { LoadingDataError } from "@spreadsheet/o_spreadsheet/errors";
describe.current.tags("headless");
defineSpreadsheetModels();
test("get default currency format when it's in the config", async () => {
const model = await createModelWithDataSource({
modelConfig: { defaultCurrency: { position: "after", symbol: "θ", decimalPlaces: 2 } },
mockRPC: async function (route, args) {
throw new Error("Should not make any RPC");
},
});
expect(model.getters.getCompanyCurrencyFormat()).toBe("#,##0.00[$θ]");
});
test("get default currency format when it's not in the config", async () => {
const model = await createModelWithDataSource({
mockRPC: async function (route, args) {
if (args.method === "get_company_currency_for_spreadsheet") {
return {
code: "Odoo",
symbol: "θ",
position: "after",
decimalPlaces: 2,
};
}
},
});
expect(() => model.getters.getCompanyCurrencyFormat()).toThrow(LoadingDataError);
await animationFrame();
expect(model.getters.getCompanyCurrencyFormat()).toBe("#,##0.00[$θ]");
expect.verifySteps([]);
});
test("get specific currency format", async () => {
const model = await createModelWithDataSource({
modelConfig: { defaultCurrency: { position: "after", symbol: "θ", decimalPlaces: 2 } },
mockRPC: async function (route, args) {
if (args.method === "get_company_currency_for_spreadsheet" && args.args[0] === 42) {
return {
code: "Odoo",
symbol: "O",
position: "after",
decimalPlaces: 2,
};
}
},
});
expect(() => model.getters.getCompanyCurrencyFormat(42)).toThrow(LoadingDataError);
await animationFrame();
expect(model.getters.getCompanyCurrencyFormat(42)).toBe("#,##0.00[$O]");
});