Forge
csharp4405de34
1using CascadeIDE.Features.Workspace;
2using CascadeIDE.Services;
3using Xunit;
4
5namespace CascadeIDE.Tests;
6
7public sealed class WorkspaceFeatureResolverTests
8{
9 [Fact]
10 public void ResolveFeature_longest_prefix_wins()
11 {
12 var w = new RepositoryWorkspaceToml
13 {
14 Workspace = new RepositoryWorkspaceSectionToml
15 {
16 Features = new RepositoryFeaturesToml
17 {
18 Feature =
19 [
20 new RepositoryFeatureToml
21 {
22 Id = "ui",
23 Title = "UI",
24 Paths = ["Features/"],
25 Docs = ["docs/adr/0006-presentation-layers-and-feature-slices.md"]
26 },
27 new RepositoryFeatureToml
28 {
29 Id = "uichrome",
30 Title = "UiChrome",
31 Paths = ["Features/UiChrome/"],
32 Docs = ["docs/adr/0010-ui-mode-catalog.md"]
33 },
34 ]
35 }
36 }
37 };
38
39 var f = WorkspaceFeatureResolver.ResolveFeatureFromWorkspaceToml(
40 w,
41 repositoryRootDirectory: "D:/w",
42 absoluteFilePath: "D:/w/Features/UiChrome/UiModeCatalog.cs");
43
44 Assert.NotNull(f);
45 Assert.Equal("uichrome", f!.Id);
46 Assert.Contains("docs/adr/0010-ui-mode-catalog.md", f.Docs);
47 Assert.Contains("Feature: UiChrome (uichrome)", WorkspaceFeatureResolver.BuildFeatureLine(f));
48 }
49}
50
51
View only · write via MCP/CIDE