diff --git a/addons/web/static/src/webclient/currency_service.js b/addons/web/static/src/webclient/currency_service.js index 44fff595fad..55575fd0286 100644 --- a/addons/web/static/src/webclient/currency_service.js +++ b/addons/web/static/src/webclient/currency_service.js @@ -15,7 +15,7 @@ export const currencyService = { for (const k in currencies) { delete currencies[k]; } - Object.assign(currencies, result); + Object.assign(currencies, result?.currencies); } env.bus.addEventListener("RPC:RESPONSE", (ev) => { const { data, error } = ev.detail; diff --git a/addons/web/static/tests/webclient/currency_service_tests.js b/addons/web/static/tests/webclient/currency_service_tests.js index 221b442e904..8aaa5b7a616 100644 --- a/addons/web/static/tests/webclient/currency_service_tests.js +++ b/addons/web/static/tests/webclient/currency_service_tests.js @@ -2,6 +2,7 @@ import { ormService } from "@web/core/orm_service"; import { registry } from "@web/core/registry"; +import { currencies } from "@web/core/currency"; import { currencyService } from "@web/webclient/currency_service"; import { makeTestEnv } from "../helpers/mock_env"; import { makeFakeRPCService } from "../helpers/mock_services"; @@ -15,6 +16,14 @@ QUnit.test("reload currencies when updating a res.currency", async (assert) => { serviceRegistry.add("orm", ormService); const fakeRpc = makeFakeRPCService((route) => { assert.step(route); + if (route === "/web/session/get_session_info") { + return { + uid: 1, + currencies: { + 7: { symbol: "$", position: "before", digits: 2 }, + }, + }; + } }); serviceRegistry.add("rpc", fakeRpc); const env = await makeTestEnv(); @@ -28,6 +37,7 @@ QUnit.test("reload currencies when updating a res.currency", async (assert) => { ]); await env.services.orm.unlink("notcurrency", [32]); assert.verifySteps(["/web/dataset/call_kw/notcurrency/unlink"]); + assert.deepEqual(Object.keys(currencies), ["7"]); }); QUnit.test(