Files
step3/api/QuestionsApi.Tests/DashboardTests.cs
T
2026-07-18 23:45:38 -05:00

31 lines
956 B
C#

using QuestionsApi.Services;
using Xunit;
namespace QuestionsApi.Tests;
public sealed class DashboardTests
{
[Fact]
public void PercentageRoundsToNearestWholeNumber()
{
Assert.Equal(67, DashboardStore.Percentage(2, 3));
Assert.Equal(0, DashboardStore.Percentage(0, 0));
}
[Fact]
public void StreakIncludesYesterdayWhenUserHasNotStudiedToday()
{
var today = new DateTime(2026, 7, 18, 0, 0, 0, DateTimeKind.Utc);
var dates = new[] { today.AddDays(-1), today.AddDays(-2), today.AddDays(-3), today.AddDays(-5) };
Assert.Equal(3, DashboardStore.CalculateCurrentStreak(dates, today));
}
[Fact]
public void StreakStopsAtFirstMissingDay()
{
var today = new DateTime(2026, 7, 18, 0, 0, 0, DateTimeKind.Utc);
var dates = new[] { today, today.AddDays(-1), today.AddDays(-3) };
Assert.Equal(2, DashboardStore.CalculateCurrentStreak(dates, today));
}
}