chore: release v2.4
- Add theme system (Dark/Light palettes, ModernTheme, ThemeManager) - Add InputDialog, Spinner common view - Add DuplicatesCsvExportService - Refresh views, dialogs, and view models across tabs - Update localization strings (en/fr) - Tweak services (transfer, permissions, search, user access, ownership elevation, bulk operations) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -44,19 +44,25 @@ public class FeatureViewModelBaseTests
|
||||
public async Task ProgressValue_AndStatusMessage_UpdateViaIProgress()
|
||||
{
|
||||
var vm = new TestViewModel();
|
||||
int midProgress = -1;
|
||||
string? midStatus = null;
|
||||
|
||||
vm.OperationFunc = async (ct, progress) =>
|
||||
{
|
||||
progress.Report(new OperationProgress(50, 100, "halfway"));
|
||||
await Task.Yield();
|
||||
// Let the Progress<T> callback dispatch before sampling.
|
||||
await Task.Delay(20, ct);
|
||||
midProgress = vm.ProgressValue;
|
||||
midStatus = vm.StatusMessage;
|
||||
};
|
||||
|
||||
await vm.RunCommand.ExecuteAsync(null);
|
||||
|
||||
// Allow dispatcher to process
|
||||
await Task.Delay(20);
|
||||
|
||||
Assert.Equal(50, vm.ProgressValue);
|
||||
Assert.Equal("halfway", vm.StatusMessage);
|
||||
// Mid-operation snapshot confirms IProgress reaches bound properties.
|
||||
// Post-completion, FeatureViewModelBase snaps to 100% / "Complete"
|
||||
// so stale "Scanning X" labels don't linger after a successful run.
|
||||
Assert.Equal(50, midProgress);
|
||||
Assert.Equal("halfway", midStatus);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
||||
Reference in New Issue
Block a user