| 1 | using CascadeIDE.Features.Chat; |
| 2 | using CascadeIDE.Views.SkiaKit; |
| 3 | using Xunit; |
| 4 | |
| 5 | namespace CascadeIDE.Tests; |
| 6 | |
| 7 | public 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 | |