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 {