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 076abc679d3..68c63406785 100644 --- a/addons/web/static/tests/views/kanban/kanban_view_tests.js +++ b/addons/web/static/tests/views/kanban/kanban_view_tests.js @@ -3946,6 +3946,68 @@ QUnit.module("Views", (hooks) => { assert.containsOnce(target, ".o_kanban_quick_create:not(.o_disabled)"); }); + QUnit.test("quick create record and click Edit, name_create fails", async (assert) => { + Object.assign(serverData, { + views: { + "partner,false,kanban": ` + + + + +
+
+
+
`, + "partner,false,search": "", + "partner,false,list": '', + "partner,false,form": `
+ + + `, + }, + }); + + const webClient = await createWebClient({ + serverData, + async mockRPC(route, args) { + if (args.method === "name_create") { + throw makeServerError({ message: "This is a user error" }); + } + }, + }); + + await doAction(webClient, { + res_model: "partner", + type: "ir.actions.act_window", + views: [ + [false, "kanban"], + [false, "form"], + ], + context: { + group_by: ["product_id"], + }, + }); + + assert.containsN(target.querySelector(".o_kanban_group"), ".o_kanban_record", 2); + + await quickCreateRecord(0); + assert.containsOnce(target.querySelector(".o_kanban_group"), ".o_kanban_quick_create"); + + await editQuickCreateInput("display_name", "test"); + await editRecord(); + assert.containsOnce(target, ".modal .o_form_view .o_form_editable"); + assert.strictEqual(target.querySelector(".modal .o_field_many2one input").value, "hello"); + + // specify a name and save + await editInput(target, ".modal .o_field_widget[name=foo] input", "test"); + await click(target, ".modal .o_form_button_save"); + assert.containsNone(target, ".modal"); + assert.containsN(target.querySelector(".o_kanban_group"), ".o_kanban_record", 3); + const firstRecord = target.querySelector(".o_kanban_group .o_kanban_record"); + assert.strictEqual(firstRecord.innerText, "test"); + assert.containsOnce(target, ".o_kanban_quick_create:not(.o_disabled)"); + }); + QUnit.test("quick create record is re-enabled after discard on failure", async (assert) => { serverData.views["partner,false,form"] = `