Skip to content

Testability: ViewModels directly use Mouse.OverrideCursor — fails without WPF context #431

@Christophe-Rogiers

Description

@Christophe-Rogiers

Description

Multiple ViewModels directly manipulate Mouse.OverrideCursor:

  • MainViewModel.cs (lines 525, 601)
  • ConsoleViewModel.cs (lines 514, 541)
  • PerformanceViewModel.cs (lines 425, 456)
  • DependenciesViewModel.cs (lines 352, 377)
  • LogsViewModel.cs (lines 331, 371)
Mouse.OverrideCursor = Cursors.Wait;
// ... operation ...
Mouse.OverrideCursor = null;

Mouse.OverrideCursor is a WPF static property that throws in test contexts without a Dispatcher.

Suggested fix

Abstract cursor management behind an ICursorService:

public interface ICursorService
{
    IDisposable SetWaitCursor();
}

Metadata

Metadata

Assignees

Labels

testsChanges to test code and coverage

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions