Skip to content

Commit 4947d84

Browse files
committed
add first tests
1 parent b4d1391 commit 4947d84

3 files changed

Lines changed: 93 additions & 0 deletions

File tree

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<MudStaticRadioGroup @bind-Value="SelectedValue">
2+
<MudStaticRadio Value="@("A")">
3+
Option A
4+
</MudStaticRadio>
5+
6+
<MudStaticRadio Value="@("B")">
7+
Option B
8+
</MudStaticRadio>
9+
</MudStaticRadioGroup>
10+
11+
@code {
12+
private string SelectedValue { get; set; } = "A";
13+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<MudStaticRadioGroup T="string" @bind-Value="SelectedValue">
2+
<MudStaticRadio Value="@("A")">
3+
Option A
4+
</MudStaticRadio>
5+
</MudStaticRadioGroup>
6+
7+
@code {
8+
private string SelectedValue { get; set; } = "A";
9+
}
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
using FluentAssertions;
2+
using Microsoft.AspNetCore.Components.Rendering;
3+
using Microsoft.AspNetCore.Components;
4+
using MudBlazor.StaticInput;
5+
using StaticInput.UnitTests.Fixtures;
6+
using Bunit;
7+
using AngleSharp.Dom;
8+
using StaticInput.UnitTests.Viewer.Components.Tests.Radio;
9+
10+
namespace StaticInput.UnitTests.Components
11+
{
12+
public partial class RadioTests(ContextFixture contextFixture) : BaseComponentTest(contextFixture)
13+
{
14+
[Fact]
15+
public void MudStaticRadioGroup_Should_Render_RadioGroup()
16+
{
17+
IRenderedComponent<MudStaticRadioGroup<string>> comp = Context.RenderComponent<MudStaticRadioGroup<string>>();
18+
19+
comp.Markup.Replace(" ", string.Empty).Should()
20+
.Contain("mud-radio-group")
21+
.And.Contain(@"role=""radiogroup""");
22+
}
23+
24+
[Fact]
25+
public void MudStaticRadio_Should_Render_Radio()
26+
{
27+
IRenderedComponent<RadioSingleTest> comp = Context.RenderComponent<RadioSingleTest>();
28+
29+
comp.Markup.Replace(" ", string.Empty).Should()
30+
.Contain("mud-radio")
31+
.And.Contain("input")
32+
.And.Contain("mud-radio-input")
33+
.And.Contain(@"role=""radio""");
34+
}
35+
36+
[Fact]
37+
public void MudStaticRadio_Should_Have_Correct_Checked_State()
38+
{
39+
IRenderedComponent<RadioGroupTest> comp = Context.RenderComponent<RadioGroupTest>();
40+
41+
IRefreshableElementCollection<IElement> radios = comp.FindAll("input[type='radio']");
42+
IElement? radioA = radios.FirstOrDefault(r => r.GetAttribute("value") == "A");
43+
IElement? radioB = radios.FirstOrDefault(r => r.GetAttribute("value") == "B");
44+
45+
radioA.Should().NotBeNull();
46+
radioB.Should().NotBeNull();
47+
48+
radioA.HasAttribute("checked").Should().BeTrue();
49+
radioB.HasAttribute("checked").Should().BeFalse();
50+
}
51+
52+
[Fact]
53+
public void MudStaticRadio_Icon_Should_Reflect_Checked_State()
54+
{
55+
IRenderedComponent<RadioGroupTest> comp = Context.RenderComponent<RadioGroupTest>();
56+
57+
IRefreshableElementCollection<IElement> radioInputs = comp.FindAll("input[type='radio']");
58+
IElement radioA = radioInputs.First(r => r.GetAttribute("value") == "A");
59+
IElement radioB = radioInputs.First(r => r.GetAttribute("value") == "B");
60+
61+
IElement? iconA = radioA.ParentElement.QuerySelector(".mud-icon-root");
62+
IElement? iconB = radioB.ParentElement.QuerySelector(".mud-icon-root");
63+
64+
iconA.Should().NotBeNull("L'icône de la radio A doit être rendue.");
65+
iconB.Should().NotBeNull("L'icône de la radio B doit être rendue.");
66+
67+
iconA.InnerHtml.Should().Contain("M12 7c-2.76", "car la radio A est cochée");
68+
iconB.InnerHtml.Should().Contain("M12 2C6.48", "car la radio B est décochée");
69+
}
70+
}
71+
}

0 commit comments

Comments
 (0)