Forge
csharpdeeb25a2
1using CascadeIDE.Features.Chat;
2using CascadeIDE.Views.SkiaKit;
3using Xunit;
4
5namespace CascadeIDE.Tests;
6
7public sealed class ComposerSlashPreviewTests
8{
9 [Fact]
10 public void TryGetSlashLineAtCaret_returns_line_for_multiline_composer()
11 {
12 const string text = "hello\n/intercom test";
13 Assert.True(ChatSlashAutocomplete.TryGetSlashLineAtCaret(text, text.Length, out var line));
14 Assert.Equal("/intercom test", line);
15 }
16
17 [Fact]
18 public void Composer_preview_matches_ccl_builder_for_same_slash_line()
19 {
20 const string slash = "/intercom message select";
21 var service = new SlashCommandPreviewService();
22 var ccl = service.Evaluate(slash);
23 var composer = service.Evaluate(slash);
24 Assert.Equal(ccl.Kind, composer.Kind);
25 Assert.Equal(ccl.Text, composer.Text);
26 }
27
28 [Fact]
29 public void MeasureHeight_unchanged_when_slash_preview_is_chip_only()
30 {
31 var h0 = SkiaComposerStrip.MeasureHeight("x", null, 200f, 12f, 17f);
32 var h1 = SkiaComposerStrip.MeasureHeight("x", null, 200f, 12f, 17f, "Нет такой команды.", 10f);
33 Assert.Equal(h0, h1);
34 }
35}
36
View only · write via MCP/CIDE