@@ -10,7 +10,7 @@ public class SearchTest : BootstrapBlazorTestBase
1010 [ Fact ]
1111 public void Items_Ok ( )
1212 {
13- var cut = Context . RenderComponent < Search > ( ) ;
13+ var cut = Context . RenderComponent < Search < string > > ( ) ;
1414 Assert . Contains ( "<div class=\" search auto-complete\" " , cut . Markup ) ;
1515 var menus = cut . FindAll ( ".dropdown-item" ) ;
1616 Assert . Single ( menus ) ;
@@ -26,12 +26,12 @@ public void Items_Ok()
2626 [ Fact ]
2727 public async Task ItemTemplate_Ok ( )
2828 {
29- var items = new List < string > ( ) { "test1" , " test2" } ;
30- var cut = Context . RenderComponent < Search > ( pb =>
29+ var items = new List < Foo > ( ) { new ( ) { Name = "test1" , Address = "Address 1" } , new ( ) { Name = " test2", Address = "Address 2" } } ;
30+ var cut = Context . RenderComponent < Search < Foo > > ( pb =>
3131 {
3232 pb . Add ( a => a . ItemTemplate , item => builder =>
3333 {
34- builder . AddContent ( 0 , $ "Template-{ item } ") ;
34+ builder . AddContent ( 0 , $ "Template-{ item . Name } - { item . Address } ") ;
3535 } ) ;
3636 pb . Add ( a => a . OnSearch , async v =>
3737 {
@@ -43,14 +43,35 @@ public async Task ItemTemplate_Ok()
4343 await cut . InvokeAsync ( ( ) => cut . Instance . TriggerOnChange ( "t" ) ) ;
4444 await Task . Delay ( 20 ) ;
4545
46- Assert . Contains ( "Template-test1" , cut . Markup ) ;
47- Assert . Contains ( "Template-test2" , cut . Markup ) ;
46+ Assert . Contains ( "Template-test1-Address 1" , cut . Markup ) ;
47+ Assert . Contains ( "Template-test2-Address 2" , cut . Markup ) ;
48+ }
49+
50+ [ Fact ]
51+ public async Task OnGetDisplayText_Ok ( )
52+ {
53+ var items = new List < Foo ? > ( ) { null , new ( ) { Name = "test1" , Address = "Address 1" } , new ( ) { Name = "test2" , Address = "Address 2" } } ;
54+ var cut = Context . RenderComponent < Search < Foo ? > > ( pb =>
55+ {
56+ pb . Add ( a => a . OnSearch , async v =>
57+ {
58+ await Task . Delay ( 1 ) ;
59+ return items ;
60+ } ) ;
61+ pb . Add ( a => a . OnGetDisplayText , foo => foo ? . Name ) ;
62+ } ) ;
63+
64+ await cut . InvokeAsync ( ( ) => cut . Instance . TriggerOnChange ( "t" ) ) ;
65+ await Task . Delay ( 20 ) ;
66+
67+ Assert . Contains ( "test1" , cut . Markup ) ;
68+ Assert . Contains ( "test2" , cut . Markup ) ;
4869 }
4970
5071 [ Fact ]
5172 public void IsOnInputTrigger_Ok ( )
5273 {
53- var cut = Context . RenderComponent < Search > ( builder =>
74+ var cut = Context . RenderComponent < Search < string > > ( builder =>
5475 {
5576 builder . Add ( s => s . IsOnInputTrigger , true ) ;
5677 } ) ;
@@ -65,7 +86,7 @@ public async Task OnSearchClick_Ok()
6586 {
6687 string ? val = null ;
6788 var items = new List < string > ( ) { "test1" , "test2" } ;
68- var cut = Context . RenderComponent < Search > ( builder =>
89+ var cut = Context . RenderComponent < Search < string > > ( builder =>
6990 {
7091 builder . Add ( s => s . SearchButtonIcon , "fa-fw fa-solid fa-magnifying-glass" ) ;
7192 builder . Add ( s => s . SearchButtonText , "SearchText" ) ;
@@ -82,10 +103,6 @@ public async Task OnSearchClick_Ok()
82103 var menus = cut . FindAll ( ".dropdown-item" ) ;
83104 Assert . Single ( menus ) ;
84105
85- await cut . InvokeAsync ( ( ) => cut . Instance . TriggerOnChange ( "test" ) ) ;
86- Assert . Equal ( "test" , val ) ;
87- Assert . Empty ( cut . Instance . Value ) ;
88-
89106 var button = cut . Find ( ".fa-magnifying-glass" ) ;
90107 await cut . InvokeAsync ( ( ) => button . Click ( ) ) ;
91108 await Task . Delay ( 10 ) ;
@@ -98,7 +115,7 @@ public async Task OnSearchClick_Ok()
98115 public async Task OnClearClick_Ok ( )
99116 {
100117 var ret = false ;
101- var cut = Context . RenderComponent < Search > ( builder =>
118+ var cut = Context . RenderComponent < Search < string > > ( builder =>
102119 {
103120 builder . Add ( s => s . Value , "1" ) ;
104121 builder . Add ( s => s . ShowClearButton , true ) ;
0 commit comments