Forge
csharp4405de34
1using CascadeIDE.Features.UiChrome;
2using CascadeIDE.Services;
3using Xunit;
4using System.Linq;
5
6namespace CascadeIDE.Tests;
7
8public sealed class IdeCommandPaletteMatchTests
9{
10 [Fact]
11 public void FilterAndRank_EmptyQuery_SortsByCategoryThenTitle()
12 {
13 var list = IdeCommandPaletteMatch.FilterAndRank(IdeCommandPaletteCatalog.All, "");
14 Assert.Equal(IdeCommandPaletteCatalog.All.Length, list.Count);
15 var light = list.Select((e, i) => (e, i)).First(x => x.e.PaletteId == "apply_light_theme").i;
16 var dark = list.Select((e, i) => (e, i)).First(x => x.e.PaletteId == "apply_dark_theme").i;
17 Assert.True(light >= 0 && dark >= 0);
18 Assert.True(light < dark, "В одной категории сортировка по заголовку");
19 }
20
21 [Fact]
22 public void IsEntryAvailable_DebugCommands_OnlyInDebugFamily()
23 {
24 var cont = IdeCommandPaletteCatalog.All.First(e => e.PaletteId == "debug_continue");
25 Assert.True(IdeCommandPaletteMatch.IsEntryAvailable(cont, UiModeFamily.Debug));
26 Assert.False(IdeCommandPaletteMatch.IsEntryAvailable(cont, UiModeFamily.Balanced));
27 }
28
29 [Fact]
30 public void FilterAndRank_FuzzyMatches_CommandId()
31 {
32 var list = IdeCommandPaletteMatch.FilterAndRank(IdeCommandPaletteCatalog.All, "gitst");
33 Assert.Contains(list, e => e.PaletteId == "git_status");
34 }
35}
36
View only · write via MCP/CIDE