diff --git a/src/components/link/link_editor/link_editor.ts b/src/components/link/link_editor/link_editor.ts index 65efcf41b..60b4e3787 100644 --- a/src/components/link/link_editor/link_editor.ts +++ b/src/components/link/link_editor/link_editor.ts @@ -188,6 +188,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 b35e0a487..27df2f37e 100644 --- a/tests/components/composer.test.ts +++ b/tests/components/composer.test.ts @@ -26,7 +26,12 @@ import { getEvaluatedCell, getSelectionAnchorCellXc, } from "../test_helpers/getters_helpers"; -import { mountComponent, nextTick, typeInComposerHelper } from "../test_helpers/helpers"; +import { + mountComponent, + mountSpreadsheet, + nextTick, + typeInComposerHelper, +} from "../test_helpers/helpers"; import { ContentEditableHelper } from "./__mocks__/content_editable_helper"; jest.mock("../../src/components/composer/content_editable_helper", () => require("./__mocks__/content_editable_helper") @@ -520,6 +525,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"];