Forge
csharpdeeb25a2
1using CascadeIDE.Features.Chat;
2using Xunit;
3
4namespace CascadeIDE.Tests;
5
6public sealed class ChatSlashIntercomResultTests
7{
8 [Fact]
9 public async Task TryRun_TopicCreateEmpty_Fails()
10 {
11 var runner = new ChatSlashCommandRunner(
12 (_, _, _) => Task.FromResult(""),
13 getChatSurfaceSnapshot: () => ChatSurfaceSnapshot.Empty,
14 selectChatThread: _ => { },
15 setChatOverviewMode: _ => { },
16 createTopicWithTitle: title =>
17 string.IsNullOrWhiteSpace(title)
18 ? TopicCreateResult.Fail("Укажи заголовок: /intercom topic create <название>")
19 : TopicCreateResult.Ok("ok"));
20
21 var result = await runner.TryRunAsync("/intercom topic create ");
22
23 Assert.True(result.Handled);
24 Assert.False(result.Success);
25 Assert.Contains("Укажи заголовок", result.DetailText ?? "");
26 }
27
28 [Fact]
29 public async Task TryRun_TopicOpenUnknown_Fails()
30 {
31 var runner = new ChatSlashCommandRunner(
32 (_, _, _) => Task.FromResult(""),
33 getChatSurfaceSnapshot: () => ChatSurfaceSnapshot.Empty,
34 selectChatThread: _ => { },
35 setChatOverviewMode: _ => { });
36
37 var result = await runner.TryRunAsync("/intercom topic open missing");
38
39 Assert.True(result.Handled);
40 Assert.False(result.Success);
41 }
42}
43
View only · write via MCP/CIDE