From da586070c22b2c00bb9a65b252abd9f1090f0fe8 Mon Sep 17 00:00:00 2001 From: Codev contributors Date: Fri, 9 Oct 2026 11:25:08 -0400 Subject: [PATCH] Test sidebar child drag and drop reordering --- Codev.Avalonia.Tests/MainWindowTests.cs | 64 +++++++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/Codev.Avalonia.Tests/MainWindowTests.cs b/Codev.Avalonia.Tests/MainWindowTests.cs index f239fd3d..fe8e29aa 100644 --- a/Codev.Avalonia.Tests/MainWindowTests.cs +++ b/Codev.Avalonia.Tests/MainWindowTests.cs @@ -92,6 +92,70 @@ public async Task Child_session_rows_show_running_state_can_be_reordered_and_col } } + [AvaloniaFact] + public async Task Dropping_a_child_session_on_another_child_reorders_the_rows() + { + var root = Path.Combine(Path.GetTempPath(), "Codev-auto-mode-ui", Guid.NewGuid().ToString("N")); + MainViewModel? viewModel = null; + MainWindow? window = null; + try + { + viewModel = new MainViewModel(root); + var parent = Assert.IsType(viewModel.ActiveConversation); + parent.Title = "Orchestrator parent fixture"; + var first = new Conversation + { + Title = "First child fixture", + ParentConversationId = parent.Id, + SidebarOrder = 0 + }; + var second = new Conversation + { + Title = "Second child fixture", + ParentConversationId = parent.Id, + SidebarOrder = 1 + }; + var conversations = Assert.IsType>( + typeof(MainViewModel).GetField("_conversations", BindingFlags.Instance | BindingFlags.NonPublic)?.GetValue(viewModel)); + conversations.Add(first); + conversations.Add(second); + typeof(MainViewModel).GetMethod("RebuildLists", BindingFlags.Instance | BindingFlags.NonPublic)!.Invoke(viewModel, null); + + window = new MainWindow { DataContext = viewModel }; + window.Show(); + window.UpdateLayout(); + + var targetRow = Assert.Single(window.GetVisualDescendants().OfType