diff --git a/src/components/link/link_editor/link_editor.ts b/src/components/link/link_editor/link_editor.ts index 38739c3306..bd8e298f03 100644 --- a/src/components/link/link_editor/link_editor.ts +++ b/src/components/link/link_editor/link_editor.ts @@ -176,6 +176,7 @@ export class LinkEditor extends Component this.save(); } ev.stopPropagation(); + ev.preventDefault(); break; case "Escape": this.cancel(); diff --git a/tests/composer/composer_component.test.ts b/tests/composer/composer_component.test.ts index 52d5525af4..074c253099 100644 --- a/tests/composer/composer_component.test.ts +++ b/tests/composer/composer_component.test.ts @@ -33,6 +33,7 @@ import { import { ComposerWrapper, mountComposerWrapper, + mountSpreadsheet, nextTick, typeInComposerHelper, } from "../test_helpers/helpers"; @@ -517,6 +518,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"];