diff --git a/addons/web/static/tests/views/graph_view_tests.js b/addons/web/static/tests/views/graph_view_tests.js index 0c853c97356..f938b9f0562 100644 --- a/addons/web/static/tests/views/graph_view_tests.js +++ b/addons/web/static/tests/views/graph_view_tests.js @@ -17,6 +17,7 @@ import { toggleGroupByMenu, toggleMenu, toggleMenuItem, + toggleMenuItemOption, toggleSaveFavorite, } from "@web/../tests/search/helpers"; @@ -3422,4 +3423,55 @@ QUnit.module("Views", (hooks) => { }); checkModeIs(assert, graph, "bar"); }); + + QUnit.test("only process most recent data for concurrent groupby", async function (assert) { + assert.expect(6); + + let def; + const graph = await makeView({ + serverData, + type: "graph", + resModel: "foo", + arch: ` + + + + + `, + searchViewArch: ` + + + + + `, + mockRPC() { + return Promise.resolve(def); + }, + }); + + checkLabels(assert, graph, ["xphone", "xpad"]); + checkDatasets(assert, graph, "data", { data: [82, 157] }); + + def = makeDeferred(); + await toggleGroupByMenu(graph); + await toggleMenuItem(graph, "Color"); + await toggleMenuItem(graph, "Color"); + await toggleMenuItem(graph, "Date"); + await toggleMenuItemOption(graph, "Date", "Month"); + + checkLabels(assert, graph, ["xphone", "xpad"]); + checkDatasets(assert, graph, "data", { data: [82, 157] }); + + def.resolve(); + await nextTick(); + + checkLabels(assert, graph, [ + "January 2016", + "March 2016", + "May 2016", + "Undefined", + "April 2016", + ]); + checkDatasets(assert, graph, "data", { data: [56, 26, 4, 105, 48] }); + }); });