Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/deploy-demo.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: '9.0.x'
dotnet-version: '10.0.x'

- name: Restore dependencies
run: dotnet restore BlazorFastRollingNumbers.Demo/BlazorFastRollingNumbers.Demo.csproj
Expand All @@ -38,7 +38,7 @@ jobs:
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: 'BlazorFastRollingNumbers.Demo/bin/Release/net9.0/publish/wwwroot'
path: 'BlazorFastRollingNumbers.Demo/bin/Release/net10.0/publish/wwwroot'

deploy:
needs: build
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/nuget-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: '9.0.x'
dotnet-version: '10.0.x'

- name: Restore library dependencies
run: dotnet restore BlazorFastRollingNumbers/BlazorFastRollingNumbers.csproj
Expand Down Expand Up @@ -83,7 +83,7 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: '9.0.x'
dotnet-version: '10.0.x'

- name: Restore dependencies
run: dotnet restore BlazorFastRollingNumbers/BlazorFastRollingNumbers.csproj
Expand Down Expand Up @@ -169,7 +169,7 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: '9.0.x'
dotnet-version: '10.0.x'

- name: Publish to NuGet.org
run: |
Expand Down Expand Up @@ -215,7 +215,7 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: '9.0.x'
dotnet-version: '10.0.x'

- name: Publish to GitHub Packages
run: |
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.BlazorWebAssembly">

<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<IsPackable>false</IsPackable>
Expand All @@ -11,8 +11,8 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="9.0.10" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="9.0.10" PrivateAssets="all" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="10.0.1" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="10.0.1" PrivateAssets="all" />
</ItemGroup>

<ItemGroup>
Expand All @@ -22,7 +22,7 @@
<!-- Replace BASE_HREF token in index.html during build -->
<Target Name="ReplaceBaseHref" AfterTargets="Publish">
<PropertyGroup>
<IndexHtmlPath>$(PublishDir)wwwroot\index.html</IndexHtmlPath>
<IndexHtmlPath>$(PublishDir)wwwroot/index.html</IndexHtmlPath>
</PropertyGroup>
<ReplaceFileText InputFilename="$(IndexHtmlPath)" OutputFilename="$(IndexHtmlPath)" MatchExpression="&lt;base href=&quot;/&quot; /&gt;" ReplacementText="&lt;base href=&quot;$(BaseHref)&quot; /&gt;" />
</Target>
Expand Down
7 changes: 7 additions & 0 deletions BlazorFastRollingNumbers.Demo/Pages/Home.razor
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,13 @@
}
&lt;/style&gt;</code></pre>
</div>
<h3>Accessibility</h3>
<div class="code-block">
<pre><code>&lt;BlazorFastRollingNumber
Value="@@score"
AriaLabel="@@($&quot;Score: {score}&quot;)"
AriaLive="polite" /&gt;</code></pre>
</div>
</section>

<footer>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="bunit" Version="1.40.0" />
<PackageReference Include="bunit" Version="2.5.3" />
<PackageReference Include="coverlet.collector" Version="6.0.4">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
<PackageReference Include="xunit" Version="2.9.3" />
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.5">
<PrivateAssets>all</PrivateAssets>
Expand Down
66 changes: 46 additions & 20 deletions BlazorFastRollingNumbers.Tests/RollingNumberTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@

namespace BlazorFastRollingNumbers.Tests;

public class BlazorFastRollingNumberTests : TestContext
public class BlazorFastRollingNumberTests : BunitContext
{
[Fact]
public void BlazorFastBlazorFastRollingNumber_RendersPositiveNumber()
public void BlazorFastRollingNumber_RendersPositiveNumber()
{
// Arrange & Act
var cut = RenderComponent<BlazorFastRollingNumber>(parameters => parameters
var cut = Render<BlazorFastRollingNumber>(parameters => parameters
.Add(p => p.Value, 123));

// Assert
Expand All @@ -25,7 +25,7 @@ public void BlazorFastBlazorFastRollingNumber_RendersPositiveNumber()
public void BlazorFastRollingNumber_RendersNegativeNumber()
{
// Arrange & Act
var cut = RenderComponent<BlazorFastRollingNumber>(parameters => parameters
var cut = Render<BlazorFastRollingNumber>(parameters => parameters
.Add(p => p.Value, -456));

// Assert
Expand All @@ -41,7 +41,7 @@ public void BlazorFastRollingNumber_RendersNegativeNumber()
public void BlazorFastRollingNumber_RendersZero()
{
// Arrange & Act
var cut = RenderComponent<BlazorFastRollingNumber>(parameters => parameters
var cut = Render<BlazorFastRollingNumber>(parameters => parameters
.Add(p => p.Value, 0));

// Assert
Expand All @@ -53,7 +53,7 @@ public void BlazorFastRollingNumber_RendersZero()
public void BlazorFastRollingNumber_RespectsMinimumDigits()
{
// Arrange & Act
var cut = RenderComponent<BlazorFastRollingNumber>(parameters => parameters
var cut = Render<BlazorFastRollingNumber>(parameters => parameters
.Add(p => p.Value, 5)
.Add(p => p.MinimumDigits, 4));

Expand All @@ -67,15 +67,28 @@ public void BlazorFastRollingNumber_RespectsMinimumDigits()
Assert.Equal(3, paddingCount);
}

[Fact]
public void BlazorFastRollingNumber_ClampsVeryLargeMinimumDigits()
{
// Arrange & Act
var cut = Render<BlazorFastRollingNumber>(parameters => parameters
.Add(p => p.Value, 5)
.Add(p => p.MinimumDigits, 1000));

// Assert
var digits = cut.FindAll(".bfrn__digit");
Assert.Equal(32, digits.Count);
}

[Fact]
public void BlazorFastRollingNumber_UpdatesWhenValueChanges()
{
// Arrange
var cut = RenderComponent<BlazorFastRollingNumber>(parameters => parameters
var cut = Render<BlazorFastRollingNumber>(parameters => parameters
.Add(p => p.Value, 100));

// Act
cut.SetParametersAndRender(parameters => parameters
cut.Render(parameters => parameters
.Add(p => p.Value, 999));

// Assert
Expand All @@ -91,7 +104,7 @@ public void BlazorFastRollingNumber_UpdatesWhenValueChanges()
public void BlazorFastRollingNumber_HandlesMaxInt()
{
// Arrange & Act
var cut = RenderComponent<BlazorFastRollingNumber>(parameters => parameters
var cut = Render<BlazorFastRollingNumber>(parameters => parameters
.Add(p => p.Value, int.MaxValue));

// Assert
Expand All @@ -103,7 +116,7 @@ public void BlazorFastRollingNumber_HandlesMaxInt()
public void BlazorFastRollingNumber_HandlesMinInt()
{
// Arrange & Act
var cut = RenderComponent<BlazorFastRollingNumber>(parameters => parameters
var cut = Render<BlazorFastRollingNumber>(parameters => parameters
.Add(p => p.Value, int.MinValue));

// Assert
Expand All @@ -119,7 +132,7 @@ public void BlazorFastRollingNumber_HandlesMinInt()
public void BlazorFastRollingNumber_HasCorrectCssClasses()
{
// Arrange & Act
var cut = RenderComponent<BlazorFastRollingNumber>(parameters => parameters
var cut = Render<BlazorFastRollingNumber>(parameters => parameters
.Add(p => p.Value, 42));

// Assert
Expand All @@ -141,7 +154,7 @@ public void BlazorFastRollingNumber_HasCorrectCssClasses()
public void BlazorFastRollingNumber_ScaleContainsAllDigitsAndMinus()
{
// Arrange & Act
var cut = RenderComponent<BlazorFastRollingNumber>(parameters => parameters
var cut = Render<BlazorFastRollingNumber>(parameters => parameters
.Add(p => p.Value, 1));

// Assert
Expand All @@ -165,7 +178,7 @@ public void BlazorFastRollingNumber_ScaleContainsAllDigitsAndMinus()
public void BlazorFastRollingNumber_CorrectDigitCount(int value, int expectedDigits)
{
// Arrange & Act
var cut = RenderComponent<BlazorFastRollingNumber>(parameters => parameters
var cut = Render<BlazorFastRollingNumber>(parameters => parameters
.Add(p => p.Value, value));

// Assert
Expand All @@ -180,7 +193,7 @@ public void BlazorFastRollingNumber_CorrectDigitCount(int value, int expectedDig
public void BlazorFastRollingNumber_CorrectDigitCountForNegative(int value, int expectedDigits)
{
// Arrange & Act
var cut = RenderComponent<BlazorFastRollingNumber>(parameters => parameters
var cut = Render<BlazorFastRollingNumber>(parameters => parameters
.Add(p => p.Value, value));

// Assert
Expand All @@ -192,14 +205,14 @@ public void BlazorFastRollingNumber_CorrectDigitCountForNegative(int value, int
public void BlazorFastRollingNumber_AnimationTriggersOnValueChange()
{
// Arrange
var cut = RenderComponent<BlazorFastRollingNumber>(parameters => parameters
var cut = Render<BlazorFastRollingNumber>(parameters => parameters
.Add(p => p.Value, 100));

var firstDigit = cut.Find(".bfrn__digit");
var initialStyle = firstDigit.GetAttribute("style");

// Act - Change value
cut.SetParametersAndRender(parameters => parameters
cut.Render(parameters => parameters
.Add(p => p.Value, 200));

// Assert - Style should change (different offset)
Expand All @@ -211,15 +224,15 @@ public void BlazorFastRollingNumber_AnimationTriggersOnValueChange()
public void BlazorFastRollingNumber_NoAnimationWhenValueUnchanged()
{
// Arrange
var cut = RenderComponent<BlazorFastRollingNumber>(parameters => parameters
var cut = Render<BlazorFastRollingNumber>(parameters => parameters
.Add(p => p.Value, 100)
.Add(p => p.MinimumDigits, 5));

var firstDigit = cut.Find(".bfrn__digit");
var initialStyle = firstDigit.GetAttribute("style");

// Act - Change only MinimumDigits, not Value
cut.SetParametersAndRender(parameters => parameters
cut.Render(parameters => parameters
.Add(p => p.Value, 100)
.Add(p => p.MinimumDigits, 6));

Expand All @@ -228,11 +241,24 @@ public void BlazorFastRollingNumber_NoAnimationWhenValueUnchanged()
Assert.Equal(initialStyle, newStyle);
}

[Fact]
public void BlazorFastRollingNumber_RendersAriaLabelWhenProvided()
{
// Arrange & Act
var cut = Render<BlazorFastRollingNumber>(parameters => parameters
.Add(p => p.Value, 42)
.Add(p => p.AriaLabel, "Score: 42"));

// Assert
var wrapper = cut.Find(".bfrn");
Assert.Equal("Score: 42", wrapper.GetAttribute("aria-label"));
}

[Fact]
public void BlazorFastRollingNumber_SupportsCustomEasing()
{
// Arrange & Act
var cut = RenderComponent<BlazorFastRollingNumber>(parameters => parameters
var cut = Render<BlazorFastRollingNumber>(parameters => parameters
.Add(p => p.Value, 123)
.Add(p => p.Easing, "cubic-bezier(0.4, 0, 0.2, 1)"));

Expand All @@ -246,7 +272,7 @@ public void BlazorFastRollingNumber_SupportsCustomEasing()
public void BlazorFastRollingNumber_SupportsCustomDuration()
{
// Arrange & Act
var cut = RenderComponent<BlazorFastRollingNumber>(parameters => parameters
var cut = Render<BlazorFastRollingNumber>(parameters => parameters
.Add(p => p.Value, 123)
.Add(p => p.Duration, "0.5s"));

Expand Down
Loading