Skip to content

Commit a22ddae

Browse files
committed
Comment out double events
1 parent 09b34f1 commit a22ddae

File tree

6 files changed

+144
-62
lines changed

6 files changed

+144
-62
lines changed

src/Majorsoft.Blazor.Components.TestApps.Common/Components/Typeahead.razor

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -507,7 +507,7 @@ textarea {
507507
private async Task SelectedItemChanged(string text)
508508
{
509509
_selectedItem = text;
510-
await WriteEventLog("TypeaheadInput: Selected item changed");
510+
await WriteEventLog($"TypeaheadInput: Selected item changed, value: {text}");
511511
}
512512
private async Task WriteEventLog(string message)
513513
{
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
using Majorsoft.Blazor.Components.Common.JsInterop.Click;
2+
using Majorsoft.Blazor.Components.Debounce;
3+
4+
using Microsoft.Extensions.DependencyInjection;
5+
using Microsoft.Extensions.Logging;
6+
using Microsoft.VisualStudio.TestTools.UnitTesting;
7+
8+
using Moq;
9+
using Majorsoft.Blazor.Components.CommonTestsBase;
10+
using Bunit;
11+
using Majorsoft.Blazor.Components.Timer;
12+
using Majorsoft.Blazor.Components.Common.JsInterop.ElementInfo;
13+
using System.Text.Json;
14+
15+
namespace Majorsoft.Blazor.Components.Typeahead.Tests
16+
{
17+
[TestClass]
18+
public class TypeaheadInputTest : ComponentsTestBase<TypeaheadInput<string>>
19+
{
20+
private Mock<IClickBoundariesHandler> _clickBoundariesMock;
21+
private BunitJSModuleInterop _jsInteropModul;
22+
23+
private class StatesWithFlags
24+
{
25+
public string Name { get; set; }
26+
public string Flag { get; set; }
27+
}
28+
private StatesWithFlags[] _testData = null;
29+
private const string JsonData = "[{\"Name\":\"Alabama\",\"Flag\":\"5/5c/Flag_of_Alabama.svg/45px-Flag_of_Alabama.svg.png\"},{\"Name\":\"Alaska\",\"Flag\":\"e/e6/Flag_of_Alaska.svg/43px-Flag_of_Alaska.svg.png\"},{\"Name\":\"Arizona\",\"Flag\":\"9/9d/Flag_of_Arizona.svg/45px-Flag_of_Arizona.svg.png\"},{\"Name\":\"Arkansas\",\"Flag\":\"9/9d/Flag_of_Arkansas.svg/45px-Flag_of_Arkansas.svg.png\"},{\"Name\":\"California\",\"Flag\":\"0/01/Flag_of_California.svg/45px-Flag_of_California.svg.png\"},{\"Name\":\"Colorado\",\"Flag\":\"4/46/Flag_of_Colorado.svg/45px-Flag_of_Colorado.svg.png\"},{\"Name\":\"Connecticut\",\"Flag\":\"9/96/Flag_of_Connecticut.svg/39px-Flag_of_Connecticut.svg.png\"},{\"Name\":\"Delaware\",\"Flag\":\"c/c6/Flag_of_Delaware.svg/45px-Flag_of_Delaware.svg.png\"},{\"Name\":\"Florida\",\"Flag\":\"f/f7/Flag_of_Florida.svg/45px-Flag_of_Florida.svg.png\"},{\"Name\":\"Georgia\",\"Flag\":\"5/54/Flag_of_Georgia_%28U.S._state%29.svg/46px-Flag_of_Georgia_%28U.S._state%29.svg.png\"},{\"Name\":\"Hawaii\",\"Flag\":\"e/ef/Flag_of_Hawaii.svg/46px-Flag_of_Hawaii.svg.png\"},{\"Name\":\"Idaho\",\"Flag\":\"a/a4/Flag_of_Idaho.svg/38px-Flag_of_Idaho.svg.png\"},{\"Name\":\"Illinois\",\"Flag\":\"0/01/Flag_of_Illinois.svg/46px-Flag_of_Illinois.svg.png\"},{\"Name\":\"Indiana\",\"Flag\":\"a/ac/Flag_of_Indiana.svg/45px-Flag_of_Indiana.svg.png\"},{\"Name\":\"Iowa\",\"Flag\":\"a/aa/Flag_of_Iowa.svg/44px-Flag_of_Iowa.svg.png\"},{\"Name\":\"Kansas\",\"Flag\":\"d/da/Flag_of_Kansas.svg/46px-Flag_of_Kansas.svg.png\"},{\"Name\":\"Kentucky\",\"Flag\":\"8/8d/Flag_of_Kentucky.svg/46px-Flag_of_Kentucky.svg.png\"},{\"Name\":\"Louisiana\",\"Flag\":\"e/e0/Flag_of_Louisiana.svg/46px-Flag_of_Louisiana.svg.png\"},{\"Name\":\"Maine\",\"Flag\":\"3/35/Flag_of_Maine.svg/45px-Flag_of_Maine.svg.png\"},{\"Name\":\"Maryland\",\"Flag\":\"a/a0/Flag_of_Maryland.svg/45px-Flag_of_Maryland.svg.png\"},{\"Name\":\"Massachusetts\",\"Flag\":\"f/f2/Flag_of_Massachusetts.svg/46px-Flag_of_Massachusetts.svg.png\"},{\"Name\":\"Michigan\",\"Flag\":\"b/b5/Flag_of_Michigan.svg/45px-Flag_of_Michigan.svg.png\"},{\"Name\":\"Minnesota\",\"Flag\":\"b/b9/Flag_of_Minnesota.svg/46px-Flag_of_Minnesota.svg.png\"},{\"Name\":\"Mississippi\",\"Flag\":\"4/42/Flag_of_Mississippi.svg/45px-Flag_of_Mississippi.svg.png\"},{\"Name\":\"Missouri\",\"Flag\":\"5/5a/Flag_of_Missouri.svg/46px-Flag_of_Missouri.svg.png\"},{\"Name\":\"Montana\",\"Flag\":\"c/cb/Flag_of_Montana.svg/45px-Flag_of_Montana.svg.png\"},{\"Name\":\"Nebraska\",\"Flag\":\"4/4d/Flag_of_Nebraska.svg/46px-Flag_of_Nebraska.svg.png\"},{\"Name\":\"Nevada\",\"Flag\":\"f/f1/Flag_of_Nevada.svg/45px-Flag_of_Nevada.svg.png\"},{\"Name\":\"New Hampshire\",\"Flag\":\"2/28/Flag_of_New_Hampshire.svg/45px-Flag_of_New_Hampshire.svg.png\"},{\"Name\":\"New Jersey\",\"Flag\":\"9/92/Flag_of_New_Jersey.svg/45px-Flag_of_New_Jersey.svg.png\"},{\"Name\":\"New Mexico\",\"Flag\":\"c/c3/Flag_of_New_Mexico.svg/45px-Flag_of_New_Mexico.svg.png\"},{\"Name\":\"New York\",\"Flag\":\"1/1a/Flag_of_New_York.svg/46px-Flag_of_New_York.svg.png\"},{\"Name\":\"North Carolina\",\"Flag\":\"b/bb/Flag_of_North_Carolina.svg/45px-Flag_of_North_Carolina.svg.png\"},{\"Name\":\"North Dakota\",\"Flag\":\"e/ee/Flag_of_North_Dakota.svg/38px-Flag_of_North_Dakota.svg.png\"},{\"Name\":\"Ohio\",\"Flag\":\"4/4c/Flag_of_Ohio.svg/46px-Flag_of_Ohio.svg.png\"},{\"Name\":\"Oklahoma\",\"Flag\":\"6/6e/Flag_of_Oklahoma.svg/45px-Flag_of_Oklahoma.svg.png\"},{\"Name\":\"Oregon\",\"Flag\":\"b/b9/Flag_of_Oregon.svg/46px-Flag_of_Oregon.svg.png\"},{\"Name\":\"Pennsylvania\",\"Flag\":\"f/f7/Flag_of_Pennsylvania.svg/45px-Flag_of_Pennsylvania.svg.png\"},{\"Name\":\"Rhode Island\",\"Flag\":\"f/f3/Flag_of_Rhode_Island.svg/32px-Flag_of_Rhode_Island.svg.png\"},{\"Name\":\"South Carolina\",\"Flag\":\"6/69/Flag_of_South_Carolina.svg/45px-Flag_of_South_Carolina.svg.png\"},{\"Name\":\"South Dakota\",\"Flag\":\"1/1a/Flag_of_South_Dakota.svg/46px-Flag_of_South_Dakota.svg.png\"},{\"Name\":\"Tennessee\",\"Flag\":\"9/9e/Flag_of_Tennessee.svg/46px-Flag_of_Tennessee.svg.png\"},{\"Name\":\"Texas\",\"Flag\":\"f/f7/Flag_of_Texas.svg/45px-Flag_of_Texas.svg.png\"},{\"Name\":\"Utah\",\"Flag\":\"f/f6/Flag_of_Utah.svg/45px-Flag_of_Utah.svg.png\"},{\"Name\":\"Vermont\",\"Flag\":\"4/49/Flag_of_Vermont.svg/46px-Flag_of_Vermont.svg.png\"},{\"Name\":\"Virginia\",\"Flag\":\"4/47/Flag_of_Virginia.svg/44px-Flag_of_Virginia.svg.png\"},{\"Name\":\"Washington\",\"Flag\":\"5/54/Flag_of_Washington.svg/46px-Flag_of_Washington.svg.png\"},{\"Name\":\"West Virginia\",\"Flag\":\"2/22/Flag_of_West_Virginia.svg/46px-Flag_of_West_Virginia.svg.png\"},{\"Name\":\"Wisconsin\",\"Flag\":\"2/22/Flag_of_Wisconsin.svg/45px-Flag_of_Wisconsin.svg.png\"},{\"Name\":\"Wyoming\",\"Flag\":\"b/bc/Flag_of_Wyoming.svg/43px-Flag_of_Wyoming.svg.png\"}]";
30+
31+
[ClassInitialize]
32+
public void TestInit()
33+
{
34+
_testData = JsonSerializer.Deserialize<StatesWithFlags[]>(JsonData);
35+
}
36+
37+
[TestInitialize]
38+
public void Init()
39+
{
40+
var logger = new Mock<ILogger<DebounceInput>>();
41+
var logger2 = new Mock<ILogger<AdvancedTimer>>();
42+
_clickBoundariesMock = new Mock<IClickBoundariesHandler>();
43+
44+
_testContext.Services.Add(new ServiceDescriptor(typeof(ILogger<DebounceInput>), logger.Object));
45+
_testContext.Services.Add(new ServiceDescriptor(typeof(ILogger<AdvancedTimer>), logger2.Object));
46+
_testContext.Services.Add(new ServiceDescriptor(typeof(IClickBoundariesHandler), _clickBoundariesMock.Object));
47+
48+
_testContext.JSInterop.Mode = JSRuntimeMode.Strict;
49+
#if DEBUG
50+
_jsInteropModul = _testContext.JSInterop.SetupModule("./_content/Majorsoft.Blazor.Components.Common.JsInterop/elementInfo.js");
51+
#else
52+
_jsInteropModul = _testContext.JSInterop.SetupModule("./_content/Majorsoft.Blazor.Components.Common.JsInterop/elementInfo.min.js");
53+
#endif
54+
_jsInteropModul.Setup<DomRect>("getBoundingClientRect", _ => true).SetResult(new DomRect());
55+
}
56+
57+
[TestMethod]
58+
public void TypeaheadInput_should_rendered_correctly_html_attributes()
59+
{
60+
var rendered = _testContext.RenderComponent<TypeaheadInput<string>>(
61+
("id", "id1"), //HTML attributes
62+
("class", "form-control w-100") //HTML attributes
63+
);
64+
65+
var input = rendered.Find("input");
66+
67+
Assert.IsNotNull(input);
68+
input.MarkupMatches(@"<input autocomplete=""off"" id=""id1"" class=""form-control w-100"" />");
69+
}
70+
}
71+
}

src/Majorsoft.Blazor.Components.Typeahead.Tests/TypeaheadInputText.cs

Lines changed: 0 additions & 45 deletions
This file was deleted.
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
using Majorsoft.Blazor.Components.Common.JsInterop.Click;
2+
using Majorsoft.Blazor.Components.Debounce;
3+
4+
using Microsoft.Extensions.DependencyInjection;
5+
using Microsoft.Extensions.Logging;
6+
using Microsoft.VisualStudio.TestTools.UnitTesting;
7+
8+
using Moq;
9+
using Majorsoft.Blazor.Components.CommonTestsBase;
10+
using Bunit;
11+
using Majorsoft.Blazor.Components.Timer;
12+
using Majorsoft.Blazor.Components.Common.JsInterop.ElementInfo;
13+
14+
namespace Majorsoft.Blazor.Components.Typeahead.Tests
15+
{
16+
[TestClass]
17+
public class TypeaheadInputTextTest : ComponentsTestBase<TypeaheadInput<string>>
18+
{
19+
private Mock<IClickBoundariesHandler> _clickBoundariesMock;
20+
private BunitJSModuleInterop _jsInteropModul;
21+
22+
[TestInitialize]
23+
public void Init()
24+
{
25+
var logger = new Mock<ILogger<DebounceInputText>>();
26+
var logger2 = new Mock<ILogger<TypeaheadInputText<string>>>();
27+
_clickBoundariesMock = new Mock<IClickBoundariesHandler>();
28+
29+
_testContext.Services.Add(new ServiceDescriptor(typeof(ILogger<DebounceInputText>), logger.Object));
30+
_testContext.Services.Add(new ServiceDescriptor(typeof(ILogger<TypeaheadInputText<string>>), logger2.Object));
31+
_testContext.Services.Add(new ServiceDescriptor(typeof(IClickBoundariesHandler), _clickBoundariesMock.Object));
32+
33+
_testContext.JSInterop.Mode = JSRuntimeMode.Strict;
34+
#if DEBUG
35+
_jsInteropModul = _testContext.JSInterop.SetupModule("./_content/Majorsoft.Blazor.Components.Common.JsInterop/elementInfo.js");
36+
#else
37+
_jsInteropModul = _testContext.JSInterop.SetupModule("./_content/Majorsoft.Blazor.Components.Common.JsInterop/elementInfo.min.js");
38+
#endif
39+
_jsInteropModul.Setup<DomRect>("getBoundingClientRect", _ => true).SetResult(new DomRect());
40+
}
41+
42+
[TestMethod]
43+
public void TypeaheadInputText_should_rendered_correctly_html_attributes()
44+
{
45+
////TODO: needs EditContext
46+
///
47+
//var rendered = _testContext.RenderComponent<TypeaheadInputText<string>>(
48+
// ("id", "id1"), //HTML attributes
49+
// ("class", "form-control w-100") //HTML attributes
50+
// );
51+
52+
//var input = rendered.Find("input");
53+
54+
//Assert.IsNotNull(input);
55+
//input.MarkupMatches(@"<input autocomplete=""off"" id=""id1"" class=""form-control w-100"" />");
56+
}
57+
}
58+
}

src/Majorsoft.Blazor.Components.Typeahead/TypeaheadInput.razor.cs

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
using System.Text.RegularExpressions;
66
using System.Threading.Tasks;
77

8-
using Majorsoft.Blazor.Components.Common.JsInterop.Click;
98
using Majorsoft.Blazor.Components.Common.JsInterop.ElementInfo;
109
using Majorsoft.Blazor.Components.Common.JsInterop.Scroll;
1110
using Majorsoft.Blazor.Components.Core.HtmlColors;
@@ -119,13 +118,13 @@ public TItem SelectedItem
119118

120119
_selectedItem = value;
121120
Value = GetItemText(_selectedItem);
122-
if (OnSelectedItemChanged.HasDelegate) //Immediately notify listeners for model selected
123-
{
124-
InvokeAsync(async () =>
125-
{
126-
await OnSelectedItemChanged.InvokeAsync(_selectedItem);
127-
});
128-
}
121+
//if (OnSelectedItemChanged.HasDelegate) //Immediately notify listeners for model selected
122+
//{
123+
// InvokeAsync(async () =>
124+
// {
125+
// await OnSelectedItemChanged.InvokeAsync(_selectedItem);
126+
// });
127+
//}
129128
}
130129
}
131130
//[Parameter] public IEnumerable<TItem> SelectedItems {get; set; }

src/Majorsoft.Blazor.Components.Typeahead/TypeaheadInputText.razor.cs

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
using System.Text.RegularExpressions;
66
using System.Threading.Tasks;
77

8-
using Majorsoft.Blazor.Components.Common.JsInterop.Click;
98
using Majorsoft.Blazor.Components.Common.JsInterop.ElementInfo;
109
using Majorsoft.Blazor.Components.Common.JsInterop.Scroll;
1110
using Majorsoft.Blazor.Components.Core.HtmlColors;
@@ -119,13 +118,13 @@ public TItem SelectedItem
119118

120119
_selectedItem = value;
121120
Value = GetItemText(_selectedItem);
122-
if (OnSelectedItemChanged.HasDelegate) //Immediately notify listeners for model selected
123-
{
124-
InvokeAsync(async () =>
125-
{
126-
await OnSelectedItemChanged.InvokeAsync(_selectedItem);
127-
});
128-
}
121+
//if (OnSelectedItemChanged.HasDelegate) //Immediately notify listeners for model selected
122+
//{
123+
// InvokeAsync(async () =>
124+
// {
125+
// await OnSelectedItemChanged.InvokeAsync(_selectedItem);
126+
// });
127+
//}
129128
}
130129
}
131130
//[Parameter] public IEnumerable<TItem> SelectedItems {get; set; }

0 commit comments

Comments
 (0)