diff --git a/addons/web/static/src/views/kanban/progress_bar_hook.js b/addons/web/static/src/views/kanban/progress_bar_hook.js
index b4ffb2ddd0e..a6d155cc876 100644
--- a/addons/web/static/src/views/kanban/progress_bar_hook.js
+++ b/addons/web/static/src/views/kanban/progress_bar_hook.js
@@ -338,7 +338,7 @@ export function useProgressBar(progressAttributes, model, aggregateFields, activ
return progressBarState.loadProgressBar(component.props);
});
onWillUpdateProps((nextProps) => {
- return progressBarState.loadProgressBar(nextProps);
+ progressBarState.loadProgressBar(nextProps);
});
return reactive(progressBarState);
diff --git a/addons/web/static/tests/views/kanban/kanban_view_tests.js b/addons/web/static/tests/views/kanban/kanban_view_tests.js
index 095e71a9dae..3dcb56a9022 100644
--- a/addons/web/static/tests/views/kanban/kanban_view_tests.js
+++ b/addons/web/static/tests/views/kanban/kanban_view_tests.js
@@ -26,6 +26,7 @@ import {
pagerNext,
toggleSearchBarMenu,
validateSearch,
+ toggleMenuItem,
} from "@web/../tests/search/helpers";
import { makeView, setupViewRegistries } from "@web/../tests/views/helpers";
import { createWebClient, doAction } from "@web/../tests/webclient/helpers";
@@ -10904,7 +10905,7 @@ QUnit.module("Views", (hooks) => {
QUnit.test(
"keyboard navigation on kanban when the focus is on a link that " +
- "has an action and the kanban has no oe_kanban_global_... class",
+ "has an action and the kanban has no oe_kanban_global_... class",
async (assert) => {
await makeView({
type: "kanban",
@@ -13534,7 +13535,7 @@ QUnit.module("Views", (hooks) => {
MyField.template = xml``;
registry.category("fields").add("my_field", { component: MyField });
- serverData.models.partner.onchanges = { product_id: () => {} };
+ serverData.models.partner.onchanges = { product_id: () => { } };
await makeView({
type: "kanban",
@@ -13883,6 +13884,88 @@ QUnit.module("Views", (hooks) => {
}
);
+
+ QUnit.test("searchbar filters are displayed directly", async (assert) => {
+ let def;
+ await makeView({
+ type: "kanban",
+ resModel: "partner",
+ serverData,
+ arch: `
+
+
+
+
+
+
+
+ `,
+ searchViewArch: `
+
+
+ `,
+ async mockRPC(route, args) {
+ if (args.method === "web_search_read") {
+ await def;
+ }
+ },
+ });
+
+ assert.deepEqual(getFacetTexts(target), []);
+
+ // toggle a filter, and slow down the web_search_read rpc
+ def = makeDeferred();
+ await toggleSearchBarMenu(target);
+ await toggleMenuItem(target, "Some Filter");
+ assert.deepEqual(getFacetTexts(target), ["Some Filter"]);
+
+ def.resolve();
+ await nextTick();
+ assert.deepEqual(getFacetTexts(target), ["Some Filter"]);
+ });
+
+ QUnit.test("searchbar filters are displayed directly (with progressbar)", async (assert) => {
+ let def;
+ await makeView({
+ type: "kanban",
+ resModel: "partner",
+ serverData,
+ arch: `
+
+
+
+
+
+
+
+
+ `,
+ groupBy: ["int_field"],
+ searchViewArch: `
+
+
+ `,
+ async mockRPC(route, args) {
+ if (args.method === "read_progress_bar") {
+ await def;
+ }
+ },
+ });
+
+ assert.deepEqual(getFacetTexts(target), []);
+
+ // toggle a filter, and slow down the read_progress_bar rpc
+ def = makeDeferred();
+ await toggleSearchBarMenu(target);
+ await toggleMenuItem(target, "Some Filter");
+
+ assert.deepEqual(getFacetTexts(target), ["Some Filter"]);
+
+ def.resolve();
+ await nextTick();
+ assert.deepEqual(getFacetTexts(target), ["Some Filter"]);
+ });
+
QUnit.test("group by properties and drag and drop", async (assert) => {
assert.expect(10);