Skip to content

Commit cb4ed20

Browse files
committed
Added trim behaviour and tests for searchinput
1 parent 38a3b91 commit cb4ed20

File tree

3 files changed

+62
-7
lines changed

3 files changed

+62
-7
lines changed
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
using Bunit;
2+
using FluentAssertions;
3+
using LinkDotNet.Blog.Web.Shared;
4+
using Xunit;
5+
6+
namespace LinkDotNet.Blog.UnitTests.Web.Shared
7+
{
8+
public class SearchInputTests : TestContext
9+
{
10+
[Fact]
11+
public void ShouldReturnEnteredText()
12+
{
13+
var enteredString = string.Empty;
14+
var cut = RenderComponent<SearchInput>(p => p.Add(s => s.SearchEntered, s => enteredString = s));
15+
cut.Find("input").Change("Test");
16+
17+
cut.Find("button").Click();
18+
19+
enteredString.Should().Be("Test");
20+
}
21+
22+
[Theory]
23+
[InlineData("")]
24+
[InlineData(" ")]
25+
[InlineData("\t")]
26+
public void ShouldNotReturnValueWhenOnlyWhitespaces(string input)
27+
{
28+
var wasInvoked = false;
29+
var cut = RenderComponent<SearchInput>(p => p.Add(s => s.SearchEntered, _ => wasInvoked = true));
30+
cut.Find("input").Change(input);
31+
32+
cut.Find("button").Click();
33+
34+
wasInvoked.Should().BeFalse();
35+
}
36+
37+
[Fact]
38+
public void ShouldTrimData()
39+
{
40+
var enteredString = string.Empty;
41+
var cut = RenderComponent<SearchInput>(p => p.Add(s => s.SearchEntered, s => enteredString = s));
42+
cut.Find("input").Change(" Test 1 ");
43+
44+
cut.Find("button").Click();
45+
46+
enteredString.Should().Be("Test 1");
47+
}
48+
}
49+
}

LinkDotNet.Blog.Web/Shared/NavMenu.razor

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,6 @@
3131
@code {
3232
private void NavigateToSearchPage(string searchTerm)
3333
{
34-
if (string.IsNullOrWhiteSpace(searchTerm))
35-
{
36-
return;
37-
}
38-
39-
navigationManager.NavigateTo($"search/{Uri.EscapeDataString(searchTerm.Trim())}");
34+
navigationManager.NavigateTo($"search/{searchTerm}");
4035
}
4136
}

LinkDotNet.Blog.Web/Shared/SearchInput.razor

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,18 @@
1111

1212
private async Task CallSearchEntered()
1313
{
14-
await SearchEntered.InvokeAsync(searchTerm);
14+
if (string.IsNullOrWhiteSpace(searchTerm))
15+
{
16+
return;
17+
}
18+
19+
var trimmed = searchTerm.Trim();
20+
if (trimmed == string.Empty)
21+
{
22+
return;
23+
}
24+
25+
await SearchEntered.InvokeAsync(trimmed);
1526
}
1627

1728
}

0 commit comments

Comments
 (0)