diff --git a/src/components/link/link_editor/link_editor.ts b/src/components/link/link_editor/link_editor.ts index d28272418..cd2d66ba7 100644 --- a/src/components/link/link_editor/link_editor.ts +++ b/src/components/link/link_editor/link_editor.ts @@ -192,6 +192,7 @@ export class LinkEditor extends Component this.save(); } ev.stopPropagation(); + ev.preventDefault(); break; case "Escape": this.cancel(); diff --git a/tests/components/composer.test.ts b/tests/components/composer.test.ts index 9e4a4f457..317213da6 100644 --- a/tests/components/composer.test.ts +++ b/tests/components/composer.test.ts @@ -32,6 +32,7 @@ import { import { ComposerWrapper, mountComposerWrapper, + mountSpreadsheet, nextTick, typeInComposerHelper, } from "../test_helpers/helpers"; @@ -487,6 +488,20 @@ describe("composer", () => { expect(link?.url).toBe("http://odoo.com"); }); + test("Pressing Enter while editing a label does not open grid composer", async () => { + ({ model, fixture } = await mountSpreadsheet()); + setCellContent(model, "A1", "[label](http://odoo.com)"); + await simulateClick(".o-topbar-menu[data-id='insert']"); + await simulateClick(".o-menu-item[data-name='insert_link']"); + const editor = fixture.querySelector(".o-link-editor"); + expect(editor).toBeTruthy(); + + editor!.querySelectorAll("input")[0].focus(); + await keyDown({ key: "Enter" }); + expect(fixture.querySelector(".o-link-editor")).toBeFalsy(); + expect(model.getters.getEditionMode()).toBe("inactive"); + }); + describe("change selecting mode when typing specific token value", () => { const matchingValues = [",", "+", "*", "="]; const mismatchingValues = ["1", '"coucou"', "TRUE", "SUM", "A2"];