Odoo18-Base/addons/hr_expense/static/tests/expense_mobile_tests.js
2025-03-10 11:12:23 +07:00

85 lines
2.8 KiB
JavaScript

/** @odoo-module **/
import { registerCleanup } from "@web/../tests/helpers/cleanup";
import { getFixture, nextTick } from "@web/../tests/helpers/utils";
import { createWebClient, doAction } from "@web/../tests/webclient/helpers";
import { registry } from "@web/core/registry";
import { makeFakeHTTPService } from "@web/../tests/helpers/mock_services";
const serviceRegistry = registry.category("services");
let target;
let serverData;
QUnit.module("Expense", (hooks) => {
hooks.beforeEach(() => {
serviceRegistry.add("http", makeFakeHTTPService());
target = getFixture();
serverData = {
models: {
partner: {
fields: {
display_name: { string: "Displayed name", type: "char" },
},
},
},
};
});
QUnit.test("expense dashboard can horizontally scroll", async function (assert) {
// for this test, we need the elements to be visible in the viewport
target = document.body;
target.classList.add("debug");
registerCleanup(() => target.classList.remove("debug"));
serverData.views = {
"partner,false,search": `<search/>`,
"partner,false,list": `
<tree js_class="hr_expense_dashboard_tree">
<field name="display_name"/>
</tree>
`,
};
const webclient = await createWebClient({
serverData,
target,
async mockRPC(_, { method }) {
if (method === "get_expense_dashboard") {
return {
draft: {
description: "to report",
amount: 1000000000.00,
currency: 2,
},
reported: {
description: "under validation",
amount: 1000000000.00,
currency: 2,
},
approved: {
description: "to be reimbursed",
amount: 1000000000.00,
currency: 2,
},
};
}
},
});
await doAction(webclient, {
res_model: "partner",
type: "ir.actions.act_window",
views: [[false, "list"]],
});
const statusBar = target.querySelector(".o_expense_container");
statusBar.scrollLeft = 20;
await nextTick();
assert.strictEqual(
statusBar.scrollLeft,
20,
"the o_content should be 20 due to the overflow auto"
);
});
});