From 46626a7910ae7e16dfb1930997a04dd9a72bb959 Mon Sep 17 00:00:00 2001 From: Boyan Rakilovski Date: Wed, 3 Sep 2025 10:47:46 +0100 Subject: [PATCH 1/3] fix(ui5-file-uploader): adjust tokenizer collapse behaviour Issue: - The ui5-tokenizer doesn't collapse when the n-More popover gets closed via mouse out. --- packages/main/src/FileUploader.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/main/src/FileUploader.ts b/packages/main/src/FileUploader.ts index 2bc36b55b9e7..5867845f2fb6 100644 --- a/packages/main/src/FileUploader.ts +++ b/packages/main/src/FileUploader.ts @@ -426,7 +426,7 @@ class FileUploader extends UI5Element implements IFormInputElement { this.focused = false; if (this._tokenizer) { - this._tokenizer.expanded = this._tokenizerOpen; + this._tokenizer.expanded = this._tokenizer.open; } } @@ -667,7 +667,7 @@ class FileUploader extends UI5Element implements IFormInputElement { } get shouldOpenValueStateMessagePopover(): boolean { - return this.focused && this.hasValueState && !this.hideInput && !this._tokenizerOpen; + return this.focused && this.hasValueState && !this.hideInput && !this._tokenizer?.open; } /** From afd7f1e2acdcadd984e1b8e39d776383ceb5a641 Mon Sep 17 00:00:00 2001 From: Boyan Rakilovski Date: Wed, 3 Sep 2025 11:22:27 +0100 Subject: [PATCH 2/3] fix: add tests --- .../main/cypress/specs/FileUploader.cy.tsx | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/packages/main/cypress/specs/FileUploader.cy.tsx b/packages/main/cypress/specs/FileUploader.cy.tsx index e309533bfafb..f899c1ca669c 100644 --- a/packages/main/cypress/specs/FileUploader.cy.tsx +++ b/packages/main/cypress/specs/FileUploader.cy.tsx @@ -419,6 +419,62 @@ describe("Interaction", () => { .find("[ui5-token]") .should("have.length", 1); }); + + it.only("tokenizer collapses when n-More popover loses focus", () => { + cy.mount( + + ); + + cy.get("[ui5-file-uploader]") + .as("uploader") + .shadow() + .find("input[type='file']") + .selectFile([ + { + contents: Cypress.Buffer.from("file1 content"), + fileName: "file1.txt", + mimeType: "text/plain" + }, + { + contents: Cypress.Buffer.from("file2 content"), + fileName: "file11.txt", + mimeType: "text/plain" + }, + { + contents: Cypress.Buffer.from("file3 content"), + fileName: "file111.txt", + mimeType: "text/plain" + } + ], { force: true }); + + cy.get("@uploader") + .shadow() + .find("[ui5-tokenizer]") + .as("tokenizer") + .should("exist"); + + cy.get("@uploader").realClick(); + cy.get("@uploader").realPress("ArrowRight"); + + cy.focused() + .should("have.attr", "aria-description", "Token"); + + cy.realPress(["Control", "i"]); + + cy.get("@tokenizer") + .shadow() + .find("ui5-responsive-popover") + .should("exist"); + + cy.get("@tokenizer") + .should("have.attr", "expanded"); + + cy.get("body") + .realClick(); + + cy.get("@tokenizer") + .should("not.have.attr", "expanded"); + }); }); describe("Accessibility", () => { From 6e6ba915e1ef2dd1bd0ec6a6e050302aeb203c29 Mon Sep 17 00:00:00 2001 From: Boyan Rakilovski Date: Wed, 3 Sep 2025 12:58:19 +0100 Subject: [PATCH 3/3] fix: remove the only scope from the test --- packages/main/cypress/specs/FileUploader.cy.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/main/cypress/specs/FileUploader.cy.tsx b/packages/main/cypress/specs/FileUploader.cy.tsx index f899c1ca669c..d3b698ce3bdc 100644 --- a/packages/main/cypress/specs/FileUploader.cy.tsx +++ b/packages/main/cypress/specs/FileUploader.cy.tsx @@ -420,7 +420,7 @@ describe("Interaction", () => { .should("have.length", 1); }); - it.only("tokenizer collapses when n-More popover loses focus", () => { + it("tokenizer collapses when n-More popover loses focus", () => { cy.mount( );