Skip to content

Commit b3c38f8

Browse files
authored
fix(ui5-multi-comboBox): delete token from mcb with grouping (#9623)
Fixes #9544
1 parent 136bd5a commit b3c38f8

File tree

2 files changed

+29
-1
lines changed

2 files changed

+29
-1
lines changed

Diff for: packages/main/src/MultiComboBox.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -708,7 +708,7 @@ class MultiComboBox extends UI5Element implements IFormInputElement {
708708
_tokenDelete(e: CustomEvent<TokenizerTokenDeleteEventDetail>) {
709709
this._previouslySelectedItems = this._getSelectedItems();
710710
const token: Token[] = e.detail.tokens;
711-
const deletingItems = this.items.filter(item => token.some(t => t.getAttribute("data-ui5-id") === item._id));
711+
const deletingItems = this._getItems().filter(item => token.some(t => t.getAttribute("data-ui5-id") === item._id));
712712

713713
deletingItems.forEach(item => {
714714
item.selected = false;

Diff for: packages/main/test/specs/MultiComboBox.spec.js

+28
Original file line numberDiff line numberDiff line change
@@ -541,6 +541,34 @@ describe("MultiComboBox general interaction", () => {
541541
assert.strictEqual(tokens.length, 0, "Long token should be deleted" );
542542
});
543543

544+
it("tests if clicking delete icon of a token removes it from the selection (mcb with grouping)", async () => {
545+
await browser.url(`test/pages/MultiComboBox.html`);
546+
547+
const mcb = $("#mcb-grouping");
548+
const inner = mcb.shadow$("input");
549+
550+
await mcb.scrollIntoView();
551+
await inner.click();
552+
553+
await inner.keys("a");
554+
const popover = await mcb.shadow$("ui5-responsive-popover");
555+
const firstItem = await popover.$(".ui5-multi-combobox-all-items-list > ui5-li");
556+
await firstItem.click();
557+
558+
let tokens = await mcb.shadow$$(".ui5-multi-combobox-token");
559+
560+
assert.strictEqual(tokens.length, 1, "Token should be added");
561+
562+
const token = await mcb.shadow$("ui5-tokenizer ui5-token");
563+
const deleteIcon = await token.shadow$(".ui5-token--icon");
564+
565+
await deleteIcon.click();
566+
567+
tokens = await mcb.shadow$$(".ui5-multi-combobox-token");
568+
569+
assert.strictEqual(tokens.length, 0, "Token should be deleted");
570+
});
571+
544572
it("prevents selection change event when clicking an item", async () => {
545573
await browser.url(`test/pages/MultiComboBox.html`);
546574

0 commit comments

Comments
 (0)