feat(ui): detach a monitor into its own window
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
using ClaudeDo.Data;
|
||||
using ClaudeDo.Ui.Services;
|
||||
using ClaudeDo.Ui.ViewModels;
|
||||
using ClaudeDo.Ui.ViewModels.Islands;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Xunit;
|
||||
|
||||
@@ -130,4 +131,25 @@ public class MissionControlViewModelTests : IDisposable
|
||||
|
||||
Assert.Equal("t1", revealed);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Detach_RemovesFromGrid_ThenReDockRestores()
|
||||
{
|
||||
var worker = new FakeWorker();
|
||||
using var vm = BuildVm(worker);
|
||||
TaskMonitorViewModel? detached = null;
|
||||
Action? reDock = null;
|
||||
vm.ShowDetached = (m, rd) => { detached = m; reDock = rd; };
|
||||
|
||||
worker.RaiseTaskStarted("slot-1", "t1", DateTime.UtcNow);
|
||||
var monitor = vm.Monitors[0];
|
||||
|
||||
monitor.DetachCommand.Execute(null);
|
||||
Assert.Empty(vm.Monitors);
|
||||
Assert.Same(monitor, detached);
|
||||
|
||||
reDock!.Invoke();
|
||||
Assert.Single(vm.Monitors);
|
||||
Assert.Same(monitor, vm.Monitors[0]);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user