57 lines
1.6 KiB
C#
57 lines
1.6 KiB
C#
using Sdt.Config;
|
|
using Xunit;
|
|
|
|
namespace DevTool.Tests;
|
|
|
|
public sealed class WorkspaceLoaderTests
|
|
{
|
|
[Fact]
|
|
public void FindAndLoad_DoesNotThrow_WhenAutoDiscoverHitsStrictLegacyProject()
|
|
{
|
|
var root = Path.Combine(Path.GetTempPath(), "sdt-workspace-" + Guid.NewGuid().ToString("N"));
|
|
Directory.CreateDirectory(root);
|
|
File.WriteAllText(Path.Combine(root, "devtool.json"), """
|
|
{
|
|
"name": "legacy",
|
|
"version": "0.1.0",
|
|
"targets": [
|
|
{
|
|
"id": "build",
|
|
"label": "Build",
|
|
"group": "Build",
|
|
"command": "dotnet",
|
|
"args": ["build"],
|
|
"workingDir": ".",
|
|
"dependsOn": []
|
|
}
|
|
],
|
|
"workflows": []
|
|
}
|
|
""");
|
|
|
|
Environment.SetEnvironmentVariable("SDT_LEGACY_MODE", null);
|
|
var result = WorkspaceLoader.FindAndLoad(root);
|
|
Assert.Null(result);
|
|
}
|
|
|
|
[Fact]
|
|
public void ResolveProjectRoot_AcceptsAbsolutePaths()
|
|
{
|
|
var root = Path.GetFullPath(Path.Combine(Path.GetTempPath(), "ws-" + Guid.NewGuid().ToString("N")));
|
|
var abs = Path.GetFullPath(Path.Combine(Path.GetTempPath(), "proj-" + Guid.NewGuid().ToString("N")));
|
|
var project = new WorkspaceProject { Path = abs };
|
|
|
|
var resolved = WorkspaceLoader.ResolveProjectRoot(root, project);
|
|
Assert.Equal(abs, resolved, ignoreCase: OperatingSystem.IsWindows());
|
|
}
|
|
|
|
[Fact]
|
|
public void WorkspaceProject_AdditionalFields_DefaultsAreSafe()
|
|
{
|
|
var project = new WorkspaceProject();
|
|
Assert.Empty(project.Tags);
|
|
Assert.Empty(project.ToolFamilies);
|
|
Assert.False(project.Disabled);
|
|
}
|
|
}
|