BoardOil.Dev.Tests/DevDatabasePathsTests.cs
Rama main · réplica de lectura del repositorio original.
using BoardOil.Dev;
using Xunit;
namespace BoardOil.Dev.Tests;
public sealed class DevDatabasePathsTests
{
[Fact]
public void ResolveBranchDatabasePathShouldUseSharedPathOnMainBranch()
{
// Arrange
var repoRoot = Path.Combine(Path.DirectorySeparatorChar.ToString(), "repo");
// Act
var result = DevDatabasePaths.ResolveBranchDatabasePath(repoRoot, "main", "main");
// Assert
Assert.Equal(Path.Combine(repoRoot, ".data", "dev", "boardoil.dev.db"), result);
}
[Fact]
public void ResolveBranchDatabasePathShouldUseSanitisedBranchDirectory()
{
// Arrange
var repoRoot = Path.Combine(Path.DirectorySeparatorChar.ToString(), "repo");
// Act
var result = DevDatabasePaths.ResolveBranchDatabasePath(
repoRoot,
"feature/702 local orchestrator",
"main");
// Assert
Assert.Equal(
Path.Combine(
repoRoot,
".data",
"dev",
"branches",
"feature_702_local_orchestrator",
"boardoil.dev.db"),
result);
}
[Theory]
[InlineData("feature///thing", "feature_thing")]
[InlineData("___", "unknown")]
[InlineData("detached-a1b2c3d", "detached-a1b2c3d")]
public void SanitiseBranchNameShouldProduceStableDirectoryName(string branchName, string expected)
{
// Act
var result = DevDatabasePaths.SanitiseBranchName(branchName);
// Assert
Assert.Equal(expected, result);
}
}