diff --git a/src/Core/Components/Search/FluentSearch.razor.css b/src/Core/Components/Search/FluentSearch.razor.css new file mode 100644 index 0000000000..f12625492e --- /dev/null +++ b/src/Core/Components/Search/FluentSearch.razor.css @@ -0,0 +1,4 @@ +fluent-search[readonly]::part(clear-button), +fluent-search[disabled]::part(clear-button) { + pointer-events: none; +} diff --git a/tests/Core/Search/FluentSearchTests.FluentSearch_AdditionalAttributes.verified.html b/tests/Core/Search/FluentSearchTests.FluentSearch_AdditionalAttributes.verified.html new file mode 100644 index 0000000000..8f0b4527a3 --- /dev/null +++ b/tests/Core/Search/FluentSearchTests.FluentSearch_AdditionalAttributes.verified.html @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/tests/Core/Search/FluentSearchTests.FluentSearch_AppearanceAttribute-Filled.verified.html b/tests/Core/Search/FluentSearchTests.FluentSearch_AppearanceAttribute-Filled.verified.html new file mode 100644 index 0000000000..bf77e1e7e3 --- /dev/null +++ b/tests/Core/Search/FluentSearchTests.FluentSearch_AppearanceAttribute-Filled.verified.html @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/tests/Core/Search/FluentSearchTests.FluentSearch_AppearanceAttribute-Outline.verified.html b/tests/Core/Search/FluentSearchTests.FluentSearch_AppearanceAttribute-Outline.verified.html new file mode 100644 index 0000000000..aba6d27ff2 --- /dev/null +++ b/tests/Core/Search/FluentSearchTests.FluentSearch_AppearanceAttribute-Outline.verified.html @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/tests/Core/Search/FluentSearchTests.FluentSearch_AutoFocusAttribute.verified.html b/tests/Core/Search/FluentSearchTests.FluentSearch_AutoFocusAttribute.verified.html new file mode 100644 index 0000000000..e057878b59 --- /dev/null +++ b/tests/Core/Search/FluentSearchTests.FluentSearch_AutoFocusAttribute.verified.html @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/tests/Core/Search/FluentSearchTests.FluentSearch_ChildContent.verified.html b/tests/Core/Search/FluentSearchTests.FluentSearch_ChildContent.verified.html new file mode 100644 index 0000000000..97679751ef --- /dev/null +++ b/tests/Core/Search/FluentSearchTests.FluentSearch_ChildContent.verified.html @@ -0,0 +1,4 @@ + + +
Child content
+
\ No newline at end of file diff --git a/tests/Core/Search/FluentSearchTests.FluentSearch_DataListAttribute.verified.html b/tests/Core/Search/FluentSearchTests.FluentSearch_DataListAttribute.verified.html new file mode 100644 index 0000000000..84e78cd804 --- /dev/null +++ b/tests/Core/Search/FluentSearchTests.FluentSearch_DataListAttribute.verified.html @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/tests/Core/Search/FluentSearchTests.FluentSearch_Default.verified.html b/tests/Core/Search/FluentSearchTests.FluentSearch_Default.verified.html new file mode 100644 index 0000000000..aba6d27ff2 --- /dev/null +++ b/tests/Core/Search/FluentSearchTests.FluentSearch_Default.verified.html @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/tests/Core/Search/FluentSearchTests.FluentSearch_DisabledAttribute.verified.html b/tests/Core/Search/FluentSearchTests.FluentSearch_DisabledAttribute.verified.html new file mode 100644 index 0000000000..81abd05836 --- /dev/null +++ b/tests/Core/Search/FluentSearchTests.FluentSearch_DisabledAttribute.verified.html @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/tests/Core/Search/FluentSearchTests.FluentSearch_IdAttribute-[empty].verified.html b/tests/Core/Search/FluentSearchTests.FluentSearch_IdAttribute-[empty].verified.html new file mode 100644 index 0000000000..4cb46fcfd5 --- /dev/null +++ b/tests/Core/Search/FluentSearchTests.FluentSearch_IdAttribute-[empty].verified.html @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/tests/Core/Search/FluentSearchTests.FluentSearch_IdAttribute-[null].verified.html b/tests/Core/Search/FluentSearchTests.FluentSearch_IdAttribute-[null].verified.html new file mode 100644 index 0000000000..b869798d96 --- /dev/null +++ b/tests/Core/Search/FluentSearchTests.FluentSearch_IdAttribute-[null].verified.html @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/tests/Core/Search/FluentSearchTests.FluentSearch_IdAttribute-[space].verified.html b/tests/Core/Search/FluentSearchTests.FluentSearch_IdAttribute-[space].verified.html new file mode 100644 index 0000000000..fc4ceca38e --- /dev/null +++ b/tests/Core/Search/FluentSearchTests.FluentSearch_IdAttribute-[space].verified.html @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/tests/Core/Search/FluentSearchTests.FluentSearch_IdAttribute-id-value.verified.html b/tests/Core/Search/FluentSearchTests.FluentSearch_IdAttribute-id-value.verified.html new file mode 100644 index 0000000000..aba6d27ff2 --- /dev/null +++ b/tests/Core/Search/FluentSearchTests.FluentSearch_IdAttribute-id-value.verified.html @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/tests/Core/Search/FluentSearchTests.FluentSearch_MaxLengthAttribute.verified.html b/tests/Core/Search/FluentSearchTests.FluentSearch_MaxLengthAttribute.verified.html new file mode 100644 index 0000000000..0387a3c931 --- /dev/null +++ b/tests/Core/Search/FluentSearchTests.FluentSearch_MaxLengthAttribute.verified.html @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/tests/Core/Search/FluentSearchTests.FluentSearch_MinLengthAttribute.verified.html b/tests/Core/Search/FluentSearchTests.FluentSearch_MinLengthAttribute.verified.html new file mode 100644 index 0000000000..0ce3e2ec82 --- /dev/null +++ b/tests/Core/Search/FluentSearchTests.FluentSearch_MinLengthAttribute.verified.html @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/tests/Core/Search/FluentSearchTests.FluentSearch_NameAttribute.verified.html b/tests/Core/Search/FluentSearchTests.FluentSearch_NameAttribute.verified.html new file mode 100644 index 0000000000..40289f32e0 --- /dev/null +++ b/tests/Core/Search/FluentSearchTests.FluentSearch_NameAttribute.verified.html @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/tests/Core/Search/FluentSearchTests.FluentSearch_PatternAttribute.verified.html b/tests/Core/Search/FluentSearchTests.FluentSearch_PatternAttribute.verified.html new file mode 100644 index 0000000000..5a3a5646b3 --- /dev/null +++ b/tests/Core/Search/FluentSearchTests.FluentSearch_PatternAttribute.verified.html @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/tests/Core/Search/FluentSearchTests.FluentSearch_PlaceholderAttribute.verified.html b/tests/Core/Search/FluentSearchTests.FluentSearch_PlaceholderAttribute.verified.html new file mode 100644 index 0000000000..f29d7da8bf --- /dev/null +++ b/tests/Core/Search/FluentSearchTests.FluentSearch_PlaceholderAttribute.verified.html @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/tests/Core/Search/FluentSearchTests.FluentSearch_ReadOnlyAttribute.verified.html b/tests/Core/Search/FluentSearchTests.FluentSearch_ReadOnlyAttribute.verified.html new file mode 100644 index 0000000000..30bcb1a7af --- /dev/null +++ b/tests/Core/Search/FluentSearchTests.FluentSearch_ReadOnlyAttribute.verified.html @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/tests/Core/Search/FluentSearchTests.FluentSearch_RequiredAttribute.verified.html b/tests/Core/Search/FluentSearchTests.FluentSearch_RequiredAttribute.verified.html new file mode 100644 index 0000000000..104d87b054 --- /dev/null +++ b/tests/Core/Search/FluentSearchTests.FluentSearch_RequiredAttribute.verified.html @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/tests/Core/Search/FluentSearchTests.FluentSearch_SizeAttribute.verified.html b/tests/Core/Search/FluentSearchTests.FluentSearch_SizeAttribute.verified.html new file mode 100644 index 0000000000..3869f9f5f8 --- /dev/null +++ b/tests/Core/Search/FluentSearchTests.FluentSearch_SizeAttribute.verified.html @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/tests/Core/Search/FluentSearchTests.FluentSearch_SpellcheckAttribute.verified.html b/tests/Core/Search/FluentSearchTests.FluentSearch_SpellcheckAttribute.verified.html new file mode 100644 index 0000000000..1325848125 --- /dev/null +++ b/tests/Core/Search/FluentSearchTests.FluentSearch_SpellcheckAttribute.verified.html @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/tests/Core/Search/FluentSearchTests.FluentSearch_ValueAttribute-[empty].verified.html b/tests/Core/Search/FluentSearchTests.FluentSearch_ValueAttribute-[empty].verified.html new file mode 100644 index 0000000000..60b0b76bb5 --- /dev/null +++ b/tests/Core/Search/FluentSearchTests.FluentSearch_ValueAttribute-[empty].verified.html @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/tests/Core/Search/FluentSearchTests.FluentSearch_ValueAttribute-[null].verified.html b/tests/Core/Search/FluentSearchTests.FluentSearch_ValueAttribute-[null].verified.html new file mode 100644 index 0000000000..aba6d27ff2 --- /dev/null +++ b/tests/Core/Search/FluentSearchTests.FluentSearch_ValueAttribute-[null].verified.html @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/tests/Core/Search/FluentSearchTests.FluentSearch_ValueAttribute-[space].verified.html b/tests/Core/Search/FluentSearchTests.FluentSearch_ValueAttribute-[space].verified.html new file mode 100644 index 0000000000..2705c17f01 --- /dev/null +++ b/tests/Core/Search/FluentSearchTests.FluentSearch_ValueAttribute-[space].verified.html @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/tests/Core/Search/FluentSearchTests.FluentSearch_ValueAttribute-some-value.verified.html b/tests/Core/Search/FluentSearchTests.FluentSearch_ValueAttribute-some-value.verified.html new file mode 100644 index 0000000000..35a6644073 --- /dev/null +++ b/tests/Core/Search/FluentSearchTests.FluentSearch_ValueAttribute-some-value.verified.html @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/tests/Core/Search/FluentSearchTests.FluentSearch_WithLabel.verified.html b/tests/Core/Search/FluentSearchTests.FluentSearch_WithLabel.verified.html new file mode 100644 index 0000000000..3254a0598e --- /dev/null +++ b/tests/Core/Search/FluentSearchTests.FluentSearch_WithLabel.verified.html @@ -0,0 +1,4 @@ + + + \ No newline at end of file diff --git a/tests/Core/Search/FluentSearchTests.cs b/tests/Core/Search/FluentSearchTests.cs new file mode 100644 index 0000000000..b3d8558ac8 --- /dev/null +++ b/tests/Core/Search/FluentSearchTests.cs @@ -0,0 +1,278 @@ +using Bunit; +using Microsoft.Extensions.DependencyInjection; +using Xunit; + +namespace Microsoft.FluentUI.AspNetCore.Components.Tests.Search; + +public class FluentSearchTests : TestContext +{ + public FluentSearchTests() + { + JSInterop.Mode = JSRuntimeMode.Loose; + Services.AddSingleton(LibraryConfiguration.ForUnitTests); + } + + + [Fact] + public void FluentSearch_Default() + { + //Arrange + var cut = RenderComponent(); + + //Act + + //Assert + cut.Verify(); + } + + [Fact] + public void FluentSearch_WithLabel() + { + //Arrange + string label = "With a label"; + var cut = RenderComponent(parameters => + { + parameters.Add(s => s.Label, label); + }); + + //Act + + //Assert + cut.Verify(); + } + + [Theory] + [InlineData(FluentInputAppearance.Outline)] + [InlineData(FluentInputAppearance.Filled)] + public void FluentSearch_AppearanceAttribute(FluentInputAppearance appearance) + { + // Arrange & Act + var cut = RenderComponent(parameters => + { + parameters.Add(p => p.Appearance, appearance); + }); + + // Assert + cut.Verify(suffix: appearance.ToString()); + } + + [Fact] + public void FluentSearch_MaxLengthAttribute() + { + // Arrange & Act + var cut = RenderComponent(parameters => + { + parameters.Add(p => p.Maxlength, 10); + }); + + // Assert + cut.Verify(); + } + + [Fact] + public void FluentSearch_MinLengthAttribute() + { + // Arrange & Act + var cut = RenderComponent(parameters => + { + parameters.Add(p => p.Minlength, 5); + }); + + // Assert + cut.Verify(); + } + + [Fact] + public void FluentSearch_PatternAttribute() + { + // Arrange & Act + var cut = RenderComponent(parameters => + { + parameters.Add(p => p.Pattern, "[A-Za-z]{3}"); + }); + + // Assert + cut.Verify(); + } + + [Fact] + public void FluentSearch_SizeAttribute() + { + // Arrange & Act + var cut = RenderComponent(parameters => + { + parameters.Add(p => p.Size, 10); + }); + + // Assert + cut.Verify(); + } + + [Fact] + public void FluentSearch_SpellcheckAttribute() + { + // Arrange & Act + var cut = RenderComponent(parameters => + { + parameters.Add(p => p.Spellcheck, true); + }); + + // Assert + cut.Verify(); + } + + + [Fact] + public void FluentSearch_DataListAttribute() + { + // Arrange & Act + var cut = RenderComponent(parameters => + { + parameters.Add(p => p.DataList, "datalist-id"); + }); + + // Assert + cut.Verify(); + } + + [Fact] + public void FluentSearch_ChildContent() + { + // Arrange & Act + + var cut = RenderComponent(parameters => + { + parameters.AddChildContent("
Child content
"); + }); + + // Assert + cut.Verify(); + } + + [Theory] + [InlineData("id-value")] + [InlineData(null)] + [InlineData("")] + [InlineData(" ")] + public void FluentSearch_IdAttribute(string id) + { + // Arrange & Act + var cut = RenderComponent(parameters => + { + parameters.Add(p => p.Id, id); + }); + + // Assert + cut.Verify(suffix: id); + } + + [Theory] + [InlineData("some-value")] + [InlineData(null)] + [InlineData("")] + [InlineData(" ")] + public void FluentSearch_ValueAttribute(string value) + { + // Arrange & Act + var cut = RenderComponent(parameters => + { + parameters.Add(p => p.Value, value); + }); + + // Assert + cut.Verify(suffix: value); + } + + [Fact] + public void FluentSearch_RequiredAttribute() + { + // Arrange & Act + var cut = RenderComponent(parameters => + { + parameters.Add(p => p.Required, true); + }); + + // Assert + cut.Verify(); + } + + [Fact] + public void FluentSearch_DisabledAttribute() + { + // Arrange & Act + var cut = RenderComponent(parameters => + { + parameters.Add(p => p.Disabled, true); + }); + + // Assert + cut.Verify(); + } + + [Fact] + public void FluentSearch_ReadOnlyAttribute() + { + // Arrange & Act + var cut = RenderComponent(parameters => + { + parameters.Add(p => p.ReadOnly, true); + }); + + // Assert + cut.Verify(); + } + + [Fact] + public void FluentSearch_AutoFocusAttribute() + { + // Arrange & Act + var cut = RenderComponent(parameters => + { + parameters.Add(p => p.Autofocus, true); + }); + + // Assert + cut.Verify(); + } + + [Fact] + public void FluentSearch_PlaceholderAttribute() + { + // Arrange & Act + var cut = RenderComponent(parameters => + { + parameters.Add(p => p.Placeholder, "Enter text here"); + }); + + // Assert + cut.Verify(); + } + + [Fact] + public void FluentSearch_NameAttribute() + { + // Arrange & Act + var cut = RenderComponent(parameters => + { + parameters.Add(p => p.Name, "name"); + }); + + // Assert + cut.Verify(); + } + + [Fact] + public void FluentSearch_AdditionalAttributes() + { + // Arrange & Act + var cut = RenderComponent(parameters => + { + parameters.AddUnmatched("additional-attribute-name", "additional-attribute-value"); + }); + + // Assert + cut.Verify(); + } + +} + diff --git a/tests/Core/_ToDo/Search/FluentSearchTests.cs b/tests/Core/_ToDo/Search/FluentSearchTests.cs deleted file mode 100644 index 912dd2f62d..0000000000 --- a/tests/Core/_ToDo/Search/FluentSearchTests.cs +++ /dev/null @@ -1,35 +0,0 @@ -using Bunit; -using Xunit; - -namespace Microsoft.FluentUI.AspNetCore.Components.Tests.Search; -public class FluentSearchTests : TestBase -{ - [Fact(Skip = "Need to figure out how to do this test")] - public void FluentSearch_Default() - { - //Arrange - var childContent = "render me"; - string dataList = default!; - int? maxlength = default!; - int? minlength = default!; - string pattern = default!; - int? size = default!; - bool? spellcheck = default!; - FluentInputAppearance appearance = default!; - var cut = TestContext.RenderComponent(parameters => parameters - .Add(p => p.DataList, dataList) - .Add(p => p.Maxlength, maxlength) - .Add(p => p.Minlength, minlength) - .Add(p => p.Pattern, pattern) - .Add(p => p.Size, size) - .Add(p => p.Spellcheck, spellcheck) - .Add(p => p.Appearance, appearance) - .AddChildContent(childContent) - ); - //Act - - //Assert - cut.Verify(); - } -} -