Forge
csharpcf25d736
1using CascadeIDE.Models;
2using CascadeIDE.Services;
3using Xunit;
4
5namespace CascadeIDE.Tests;
6
7public sealed class McpAgentNotesServiceKbBaseTests
8{
9 [Fact]
10 public void ReadKnowledgeFile_LoadsEmbeddedSmoke_WhenRuntimeNotConfigured()
11 {
12 AgentNotesRuntimeLoader.Reset();
13 using var stream = typeof(KbBaseEmbeddedBundleProvisioner).Assembly.GetManifestResourceStream(
14 KbBaseEmbeddedBundleProvisioner.ResourceName);
15 if (stream is null)
16 return; // KbBase/kb-base-cide.zip optional in checkout — см. tools/publish-kb-base-embed.ps1
17
18 var embeddedRoot = KbBaseEmbeddedBundleProvisioner.TryGetEmbeddedCanonRoot();
19 if (embeddedRoot is null)
20 return;
21
22 var smokePath = Path.Combine(embeddedRoot, "knowledge", "kb-base-cide-smoke.md");
23 if (!File.Exists(smokePath))
24 return; // zip без smoke-файла в этой сборке
25
26 var svc = new McpAgentNotesService(() => new CascadeIdeSettings());
27 var text = svc.ReadKnowledgeFile("kb-base-cide-smoke.md").Trim();
28
29 Assert.Equal("kb-base-cide-smoke", text);
30 }
31}
32
View only · write via MCP/CIDE