Forge
csharpdeeb25a2
1using CascadeIDE.Services.Intercom;
2using Xunit;
3
4namespace CascadeIDE.Tests;
5
6public sealed class IntercomAttachScopeTests
7{
8 [Fact]
9 public void ResolveSolutionPath_prefers_live_over_session_meta()
10 {
11 var root = CreateTempDir();
12 var slnx = Path.Combine(root, "App.slnx");
13 File.WriteAllText(slnx, "");
14 var resolved = IntercomAttachScope.ResolveSolutionPath(root, slnx, "Other.sln");
15 Assert.Equal(slnx, resolved, ignoreCase: true);
16 }
17
18 [Fact]
19 public void ResolveSolutionPath_uses_session_meta_when_live_empty()
20 {
21 var root = CreateTempDir();
22 var slnx = Path.Combine(root, "CascadeIDE.slnx");
23 File.WriteAllText(slnx, "");
24
25 var resolved = IntercomAttachScope.ResolveSolutionPath(root, null, "CascadeIDE.slnx");
26 Assert.Equal(slnx, resolved, ignoreCase: true);
27 }
28
29 [Fact]
30 public void TryDiscoverSolutionPathRelative_finds_single_slnx()
31 {
32 var root = CreateTempDir();
33 File.WriteAllText(Path.Combine(root, "Only.slnx"), "");
34
35 var rel = IntercomAttachScope.TryDiscoverSolutionPathRelative(root);
36 Assert.Equal("Only.slnx", rel);
37 }
38
39 private static string CreateTempDir()
40 {
41 var path = Path.Combine(Path.GetTempPath(), "intercom-scope-" + Guid.NewGuid().ToString("N"));
42 Directory.CreateDirectory(path);
43 return path;
44 }
45}
46
View only · write via MCP/CIDE