Skip to content

Commit b64dfc9

Browse files
committed
test: 增加单元测试
1 parent a3012a3 commit b64dfc9

File tree

2 files changed

+42
-2
lines changed

2 files changed

+42
-2
lines changed

src/BootstrapBlazor/Components/Select/MultiSelect.razor.cs

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -621,11 +621,20 @@ private void ResetItems()
621621
/// <param name="searchText"></param>
622622
/// <returns></returns>
623623
[JSInvokable]
624-
public Task TriggerOnSearch(string searchText)
624+
public async Task TriggerOnSearch(string searchText)
625625
{
626626
_itemsCache = null;
627627
SearchText = searchText;
628+
await RefreshVirtualizeElement();
628629
StateHasChanged();
629-
return Task.CompletedTask;
630+
}
631+
632+
private async Task RefreshVirtualizeElement()
633+
{
634+
if (IsVirtualize && OnQueryAsync != null)
635+
{
636+
// 通过 ItemProvider 提供数据
637+
await _virtualizeElement.RefreshDataAsync();
638+
}
630639
}
631640
}

test/UnitTest/Components/MultiSelectTest.cs

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -867,4 +867,35 @@ public void LoadItems_Ok()
867867
totalCountProperty?.SetValue(select, 2);
868868
mi?.Invoke(select, [new ItemsProviderRequest(0, 1, CancellationToken.None)]);
869869
}
870+
871+
[Fact]
872+
public async Task OnClearAsync_Ok()
873+
{
874+
var clear = false;
875+
var cut = Context.RenderComponent<MultiSelect<string>>(pb =>
876+
{
877+
pb.Add(a => a.Items, new SelectedItem[]
878+
{
879+
new("1", "<div>Test1</div>"),
880+
new("2", "<div>Test2</div>")
881+
});
882+
pb.Add(a => a.Value, "2");
883+
pb.Add(a => a.ShowSearch, true);
884+
pb.Add(a => a.IsClearable, true);
885+
pb.Add(a => a.OnClearAsync, () =>
886+
{
887+
clear = true;
888+
return Task.CompletedTask;
889+
});
890+
});
891+
892+
var span = cut.Find(".clear-icon");
893+
Assert.NotNull(span);
894+
895+
await cut.InvokeAsync(() =>
896+
{
897+
span.Click();
898+
});
899+
Assert.True(clear);
900+
}
870901
}

0 commit comments

Comments
 (0)