diff --git a/packages/fiori/cypress/specs/Search.cy.tsx b/packages/fiori/cypress/specs/Search.cy.tsx index d4bcc0c5f069..f6ba8fa6620e 100644 --- a/packages/fiori/cypress/specs/Search.cy.tsx +++ b/packages/fiori/cypress/specs/Search.cy.tsx @@ -1053,6 +1053,63 @@ describe("Events", () => { .should("not.have.been.called"); }); + it("should not open popover when typing with no items", () => { + cy.mount( + + + ); + + cy.get("[ui5-search]") + .invoke("on", "ui5-open", cy.spy().as("openSpy")); + + cy.get("[ui5-search]") + .shadow() + .find("input") + .realClick(); + + cy.get("[ui5-search]") + .realPress("t"); + + cy.get("[ui5-search]") + .realPress("e"); + + cy.get("[ui5-search]") + .realPress("s"); + + cy.get("[ui5-search]") + .realPress("t"); + + cy.get("@openSpy") + .should("not.have.been.called"); + + cy.get("[ui5-search]") + .should("not.have.attr", "open"); + }); + + it("should open popover when loading is true even with no items", () => { + cy.mount( + + + ); + + cy.get("[ui5-search]") + .invoke("on", "ui5-open", cy.spy().as("openSpy")); + + cy.get("[ui5-search]") + .shadow() + .find("input") + .realClick(); + + cy.get("[ui5-search]") + .realPress("t"); + + cy.get("@openSpy") + .should("have.been.calledOnce"); + + cy.get("[ui5-search]") + .should("have.attr", "open"); + }); + it("open event - typing, pressing Escape, then typing again should reopen suggestions", () => { cy.mount( diff --git a/packages/fiori/src/Search.ts b/packages/fiori/src/Search.ts index 76b203e00a29..0c071b508657 100755 --- a/packages/fiori/src/Search.ts +++ b/packages/fiori/src/Search.ts @@ -425,7 +425,7 @@ class Search extends SearchField { } this._isTyping = true; - this.open = this.value.length > 0; + this.open = this.value.length > 0 && this._popoupHasAnyContent(); } _handleClear(): void {