diff --git a/addons/web/static/tests/helpers/mock_server.js b/addons/web/static/tests/helpers/mock_server.js index a252863a3e9..e0575c7646e 100644 --- a/addons/web/static/tests/helpers/mock_server.js +++ b/addons/web/static/tests/helpers/mock_server.js @@ -499,9 +499,9 @@ export class MockServer { } _modifiersFromModel(node) { - const modifiersNames = ['invisible']; - if (['kanban', 'tree', 'form'].includes(node.tagName)) { - modifiersNames.push(...['readonly', 'required']); + const modifiersNames = ["invisible"]; + if (["kanban", "tree", "form"].includes(node.tagName)) { + modifiersNames.push(...["readonly", "required"]); } return modifiersNames; } @@ -1001,7 +1001,9 @@ export class MockServer { } else if (type === "datetime") { const date = deserializeDateTime(val); if (aggregateFunction === "hour") { - return date.toFormat("HH:00 dd MMM"); + // The year is added to the format because is needed to correctly compute the + // domain and the range (startDate and endDate). + return date.toFormat("HH:00 dd MMM yyyy"); } else if (aggregateFunction === "day") { return date.toFormat("yyyy-MM-dd"); } else if (aggregateFunction === "week") { @@ -1093,12 +1095,11 @@ export class MockServer { let startDate, endDate; switch (dateRange) { case "hour": { - try { - startDate = parseDateTime(value, { format: "HH dd MMM" }); - } catch { - startDate = parseDateTime(value, { format: "HH:00 dd MMM" }); - } + startDate = parseDateTime(value, { format: "HH:00 dd MMM yyyy" }); endDate = startDate.plus({ hours: 1 }); + // Remove the year from the result value of the group. It was needed + // to compute the startDate and endDate. + group[gbField] = startDate.toFormat("HH:00 dd MMM"); break; } case "day": { diff --git a/addons/web/static/tests/mock_server_tests.js b/addons/web/static/tests/mock_server_tests.js index f237b25f5b7..fe03bbfd39a 100644 --- a/addons/web/static/tests/mock_server_tests.js +++ b/addons/web/static/tests/mock_server_tests.js @@ -612,7 +612,7 @@ QUnit.module("MockServer", (hooks) => { ); }); - QUnit.skip("performRPC: read_group, group by datetime", async function (assert) { + QUnit.test("performRPC: read_group, group by datetime", async function (assert) { const server = new MockServer(data, {}); let result = await server.performRPC("", { model: "bar", @@ -685,35 +685,35 @@ QUnit.module("MockServer", (hooks) => { result.map((x) => x.__domain), [ [ - ["datetime", ">=", "2022-04-11 12:00:00"], - ["datetime", "<", "2022-04-11 13:00:00"], + ["datetime", ">=", "2016-04-11 12:00:00"], + ["datetime", "<", "2016-04-11 13:00:00"], ], [ - ["datetime", ">=", "2022-10-26 12:00:00"], - ["datetime", "<", "2022-10-26 13:00:00"], + ["datetime", ">=", "2016-10-26 12:00:00"], + ["datetime", "<", "2016-10-26 13:00:00"], ], [ - ["datetime", ">=", "2022-12-14 12:00:00"], - ["datetime", "<", "2022-12-14 13:00:00"], + ["datetime", ">=", "2016-12-14 12:00:00"], + ["datetime", "<", "2016-12-14 13:00:00"], ], [ - ["datetime", ">=", "2022-12-15 12:00:00"], - ["datetime", "<", "2022-12-15 13:00:00"], + ["datetime", ">=", "2016-12-15 12:00:00"], + ["datetime", "<", "2016-12-15 13:00:00"], ], [ - ["datetime", ">=", "2022-12-30 12:00:00"], - ["datetime", "<", "2022-12-30 13:00:00"], + ["datetime", ">=", "2019-12-30 12:00:00"], + ["datetime", "<", "2019-12-30 13:00:00"], ], ] ); assert.deepEqual( result.map((x) => x.__range["datetime:hour"]), [ - { from: "2022-04-11 12:00:00", to: "2022-04-11 13:00:00" }, - { from: "2022-10-26 12:00:00", to: "2022-10-26 13:00:00" }, - { from: "2022-12-14 12:00:00", to: "2022-12-14 13:00:00" }, - { from: "2022-12-15 12:00:00", to: "2022-12-15 13:00:00" }, - { from: "2022-12-30 12:00:00", to: "2022-12-30 13:00:00" }, + { from: "2016-04-11 12:00:00", to: "2016-04-11 13:00:00" }, + { from: "2016-10-26 12:00:00", to: "2016-10-26 13:00:00" }, + { from: "2016-12-14 12:00:00", to: "2016-12-14 13:00:00" }, + { from: "2016-12-15 12:00:00", to: "2016-12-15 13:00:00" }, + { from: "2019-12-30 12:00:00", to: "2019-12-30 13:00:00" }, ] );