Forge
csharpdeeb25a2
1using Avalonia.Headless.XUnit;
2using Avalonia.Threading;
3using CascadeIDE.Models;
4using CascadeIDE.Services;
5using CascadeIDE.ViewModels;
6using Xunit;
7
8namespace CascadeIDE.Tests;
9
10public sealed class MarkdownPreviewRoutingTests
11{
12 [AvaloniaFact]
13 public void ShowMarkdownPreviewPageCommand_NavigatesToMarkdownPreviewPage()
14 {
15 var vm = new MainWindowViewModel
16 {
17 CurrentFilePath = "note.md",
18 EditorText = "# Title"
19 };
20
21 vm.ShowMarkdownPreviewPageCommand.Execute(null);
22
23 Assert.True(vm.IsMfdRegionExpanded);
24 Assert.Equal(MfdShellPage.MarkdownPreview, vm.CurrentMfdShellPage);
25 Assert.Equal("note.md", vm.MarkdownPreviewTool.Title);
26 }
27
28 [AvaloniaFact]
29 public async Task IdeMcpAction_ShowEditorPreview_RoutesToMarkdownPreviewPage()
30 {
31 var vm = new MainWindowViewModel
32 {
33 CurrentFilePath = "note.md",
34 EditorText = "# Title"
35 };
36
37 vm.IdeMcp.ShowEditorPreview();
38 await Dispatcher.UIThread.InvokeAsync(() => { });
39
40 Assert.Equal(MfdShellPage.MarkdownPreview, vm.CurrentMfdShellPage);
41 }
42}
43
View only · write via MCP/CIDE