Ctrl K
ComunidadGuías…

BoardOil.Dev.Tests/DevDatabasePathsTests.cs

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
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);
    }
}