feat(ui): WeeklyReportModalViewModel with default-range logic
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -60,6 +60,13 @@ public abstract class StubWorkerClient : IWorkerClient
|
||||
public virtual Task ContinuePlanningMergeAsync(string planningTaskId) => Task.CompletedTask;
|
||||
public virtual Task AbortPlanningMergeAsync(string planningTaskId) => Task.CompletedTask;
|
||||
public virtual Task QueuePlanningSubtasksAsync(string parentTaskId, CancellationToken ct = default) => Task.CompletedTask;
|
||||
public virtual Task<string?> GetWeekReportAsync(DateOnly start, DateOnly end) => Task.FromResult<string?>(null);
|
||||
public virtual Task<string> GenerateWeekReportAsync(DateOnly start, DateOnly end) => Task.FromResult("");
|
||||
public virtual Task<AppSettingsDto?> GetAppSettingsAsync() => Task.FromResult<AppSettingsDto?>(null);
|
||||
public virtual Task<List<DailyNoteDto>> GetDailyNotesAsync(DateOnly day) => Task.FromResult(new List<DailyNoteDto>());
|
||||
public virtual Task<DailyNoteDto?> AddDailyNoteAsync(DateOnly day, string text) => Task.FromResult<DailyNoteDto?>(null);
|
||||
public virtual Task UpdateDailyNoteAsync(string id, string text) => Task.CompletedTask;
|
||||
public virtual Task DeleteDailyNoteAsync(string id) => Task.CompletedTask;
|
||||
|
||||
protected void RaisePropertyChanged(string name) => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
|
||||
}
|
||||
|
||||
24
tests/ClaudeDo.Ui.Tests/ViewModels/WeeklyReportRangeTests.cs
Normal file
24
tests/ClaudeDo.Ui.Tests/ViewModels/WeeklyReportRangeTests.cs
Normal file
@@ -0,0 +1,24 @@
|
||||
using ClaudeDo.Ui.ViewModels.Modals;
|
||||
|
||||
namespace ClaudeDo.Ui.Tests.ViewModels;
|
||||
|
||||
public class WeeklyReportRangeTests
|
||||
{
|
||||
[Fact]
|
||||
public void DefaultRange_TodayIsStandupDay_GoesBackToPreviousStandup()
|
||||
{
|
||||
var (start, end) = WeeklyReportModalViewModel.DefaultRange(
|
||||
DayOfWeek.Wednesday, new DateOnly(2026, 6, 3));
|
||||
Assert.Equal(new DateOnly(2026, 5, 27), start);
|
||||
Assert.Equal(new DateOnly(2026, 6, 3), end);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void DefaultRange_MidWeek_StartsAtMostRecentStandup()
|
||||
{
|
||||
var (start, end) = WeeklyReportModalViewModel.DefaultRange(
|
||||
DayOfWeek.Wednesday, new DateOnly(2026, 6, 5));
|
||||
Assert.Equal(new DateOnly(2026, 6, 3), start);
|
||||
Assert.Equal(new DateOnly(2026, 6, 5), end);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user