Skip to content

Commit 8d7af87

Browse files
Copilotjongalloway
andcommitted
Fix template engine to access real template cache by changing virtualizeSettings to false
Co-authored-by: jongalloway <[email protected]>
1 parent 0cdc153 commit 8d7af87

File tree

2 files changed

+87
-1
lines changed

2 files changed

+87
-1
lines changed
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
using DotNetMcp;
2+
using FluentAssertions;
3+
using Xunit;
4+
5+
namespace DotNetMcp.Tests;
6+
7+
public class TemplateEngineHelperTests
8+
{
9+
[Fact]
10+
public async Task GetInstalledTemplatesAsync_ReturnsTemplates()
11+
{
12+
// Act
13+
var result = await TemplateEngineHelper.GetInstalledTemplatesAsync();
14+
15+
// Assert
16+
result.Should().NotBeNull();
17+
result.Should().NotContain("No templates found");
18+
result.Should().Contain("Installed .NET Templates:");
19+
result.Should().Contain("Total templates:");
20+
21+
// Verify that at least common templates are present
22+
// These are part of the default .NET SDK installation
23+
result.Should().Contain("console");
24+
result.Should().Contain("classlib");
25+
}
26+
27+
[Fact]
28+
public async Task SearchTemplatesAsync_FindsConsoleTemplate()
29+
{
30+
// Act
31+
var result = await TemplateEngineHelper.SearchTemplatesAsync("console");
32+
33+
// Assert
34+
result.Should().NotBeNull();
35+
result.Should().NotContain("No templates found");
36+
result.Should().Contain("console");
37+
}
38+
39+
[Fact]
40+
public async Task GetTemplateDetailsAsync_ReturnsDetailsForConsoleTemplate()
41+
{
42+
// Act
43+
var result = await TemplateEngineHelper.GetTemplateDetailsAsync("console");
44+
45+
// Assert
46+
result.Should().NotBeNull();
47+
result.Should().NotContain("not found");
48+
result.Should().Contain("console");
49+
result.Should().Contain("Short Name");
50+
}
51+
52+
[Fact]
53+
public async Task ValidateTemplateExistsAsync_ReturnsTrueForConsoleTemplate()
54+
{
55+
// Act
56+
var result = await TemplateEngineHelper.ValidateTemplateExistsAsync("console");
57+
58+
// Assert
59+
result.Should().BeTrue();
60+
}
61+
62+
[Fact]
63+
public async Task ValidateTemplateExistsAsync_ReturnsFalseForNonExistentTemplate()
64+
{
65+
// Act
66+
var result = await TemplateEngineHelper.ValidateTemplateExistsAsync("non-existent-template-xyz123");
67+
68+
// Assert
69+
result.Should().BeFalse();
70+
}
71+
72+
[Fact]
73+
public async Task ClearCacheAsync_ClearsTheCache()
74+
{
75+
// Arrange - Load templates into cache
76+
await TemplateEngineHelper.GetInstalledTemplatesAsync();
77+
78+
// Act - Clear the cache
79+
await TemplateEngineHelper.ClearCacheAsync();
80+
81+
// Assert - Should still be able to reload templates after clearing
82+
var result = await TemplateEngineHelper.GetInstalledTemplatesAsync();
83+
result.Should().NotContain("No templates found");
84+
result.Should().Contain("Total templates:");
85+
}
86+
}

DotNetMcp/TemplateEngineHelper.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ private static async Task<IEnumerable<ITemplateInfo>> GetTemplatesCachedAsync(IL
4343
logger?.LogDebug("Template cache miss - loading templates from template engine");
4444
var engineEnvironmentSettings = new EngineEnvironmentSettings(
4545
new DefaultTemplateEngineHost("dotnet-mcp", "1.0.0"),
46-
virtualizeSettings: true);
46+
virtualizeSettings: false);
4747

4848
var templatePackageManager = new TemplatePackageManager(engineEnvironmentSettings);
4949
_templatesCache = await templatePackageManager.GetTemplatesAsync(default);

0 commit comments

Comments
 (0)