Skip to content

Commit

Permalink
chore: Add Breadcrumb component unit tests and test context base classes
Browse files Browse the repository at this point in the history
  • Loading branch information
yagizhanNY committed May 26, 2024
1 parent 3436c91 commit 77b3f94
Show file tree
Hide file tree
Showing 3 changed files with 90 additions and 1 deletion.
18 changes: 18 additions & 0 deletions SiemensIXBlazor.Tests/Breadcrumb/BreadcrumbItemTests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
using Bunit;
using SiemensIXBlazor.Components;

namespace SiemensIXBlazor.Tests
{
public class BreadcrumbItemTests: TestContextBase
{
[Fact]
public void BreadcrumbItemRendersWithoutCrashing()
{
// Arrange
var cut = RenderComponent<BreadcrumbItem>();

// Assert
cut.MarkupMatches("<ix-breadcrumb-item ></ix-breadcrumb-item>");
}
}
}
70 changes: 70 additions & 0 deletions SiemensIXBlazor.Tests/Breadcrumb/BreadcrumbTests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
namespace SiemensIXBlazor.Tests
{
using Bunit;
using Microsoft.AspNetCore.Components;
using SiemensIXBlazor.Components;

public class BreadcrumbTests : TestContextBase
{
[Fact]
public void BreadcrumbRendersWithoutCrashing()
{
// Arrange
var cut = RenderComponent<Breadcrumb>(parameters => {
parameters.Add(p => p.Id, "testId");
parameters.Add(p => p.Ghost, true);
parameters.Add(p => p.AriaLabelPreviousButton, "previous");
parameters.Add(p => p.NextItems, ["Data"]);
parameters.Add(p => p.VisibleItemCount, 9);
});

// Assert
cut.MarkupMatches("<ix-breadcrumb ghost='true' nextitems=\"['Data'])\" visibleitemcount='9' id='testId' aria-label-previous-button='previous'></ix-breadcrumb>");
}

[Fact]
public void BreadcrumbRendersChildContent()
{
// Arrange
var expectedContent = "Expected content";

// Act
var cut = RenderComponent<Breadcrumb>(parameters => parameters
.Add(p => p.ChildContent, builder =>
{
builder.AddContent(0, expectedContent);
}));

// Assert
Assert.Contains(expectedContent, cut.Markup);
}

[Fact]
public void ItemClickedEventTriggeredCorrectly()
{
// Arrange
var eventTriggered = false;
var cut = RenderComponent<Breadcrumb>(parameters => parameters.Add(p => p.ItemClicked, EventCallback.Factory.Create<string>(this, () => eventTriggered = true)));

// Act
cut.Instance.ItemClicked.InvokeAsync("test");

// Assert
Assert.True(eventTriggered);
}

[Fact]
public void NextItemClickedEventTriggeredCorrectly()
{
// Arrange
var eventTriggered = false;
var cut = RenderComponent<Breadcrumb>(parameters => parameters.Add(p => p.NextItemClicked, EventCallback.Factory.Create<string>(this, () => eventTriggered = true)));

// Act
cut.Instance.NextItemClicked.InvokeAsync("test");

// Assert
Assert.True(eventTriggered);
}
}
}
3 changes: 2 additions & 1 deletion SiemensIXBlazor/Components/Breadcrumb/Breadcrumb.razor
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,12 @@
*@

@using Microsoft.JSInterop;
@using System.Text.Json
@inject IJSRuntime JSRuntime
@inherits IXBaseComponent

@namespace SiemensIXBlazor.Components

<ix-breadcrumb @attributes="UserAttributes" class="@Class" style="@Style" ghost="@Ghost.ToString().ToLower()" nextItems="@NextItems" visibleItemCount="@VisibleItemCount" id="@Id" aria-label-previous-button="@AriaLabelPreviousButton">
<ix-breadcrumb @attributes="UserAttributes" class="@Class" style="@Style" ghost="@Ghost.ToString().ToLower()" nextItems="@(JsonSerializer.Serialize(NextItems).Replace('"', '\'')))" visibleItemCount="@VisibleItemCount" id="@Id" aria-label-previous-button="@AriaLabelPreviousButton">
@ChildContent
</ix-breadcrumb>

0 comments on commit 77b3f94

Please sign in to comment.