spreadsheet/static/tests/currency/currency_plugin_test.js

59 lines
2.0 KiB
JavaScript

/** @odoo-module */
import { nextTick } from "@web/../tests/helpers/utils";
import { createModelWithDataSource } from "../utils/model";
QUnit.module("spreadsheet currency plugin");
QUnit.test("get default currency format when it's in the config", async (assert) => {
const model = await createModelWithDataSource({
modelConfig: {
defaultCurrencyFormat: "#,##0.00[$θ]",
},
mockRPC: async function (route, args) {
throw new Error("Should not make any RPC");
},
});
assert.strictEqual(model.getters.getCompanyCurrencyFormat(), "#,##0.00[$θ]");
});
QUnit.test("get default currency format when it's not in the config", async (assert) => {
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,
};
}
},
});
assert.throws(() => model.getters.getCompanyCurrencyFormat(), "Data is loading");
await nextTick();
assert.strictEqual(model.getters.getCompanyCurrencyFormat(), "#,##0.00[$θ]");
assert.verifySteps([]);
});
QUnit.test("get specific currency format", async (assert) => {
const model = await createModelWithDataSource({
modelConfig: {
defaultCurrencyFormat: "#,##0.00[$θ]",
},
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,
};
}
},
});
assert.throws(() => model.getters.getCompanyCurrencyFormat(42), "Data is loading");
await nextTick();
assert.strictEqual(model.getters.getCompanyCurrencyFormat(42), "#,##0.00[$O]");
});