feat(git): add IsMidMergeAsync
This commit is contained in:
@@ -49,4 +49,27 @@ public class GitServiceMergeTests : IDisposable
|
||||
Assert.Contains("feature/x", branches);
|
||||
Assert.True(branches.Any(b => b == "main" || b == "master"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task IsMidMergeAsync_FreshRepo_ReturnsFalse()
|
||||
{
|
||||
if (!GitRepoFixture.IsGitAvailable()) return;
|
||||
var repo = NewRepo();
|
||||
var git = new GitService();
|
||||
|
||||
Assert.False(await git.IsMidMergeAsync(repo.RepoDir));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task IsMidMergeAsync_MergeHeadPresent_ReturnsTrue()
|
||||
{
|
||||
if (!GitRepoFixture.IsGitAvailable()) return;
|
||||
var repo = NewRepo();
|
||||
// Simulate a mid-merge state by dropping a MERGE_HEAD file.
|
||||
var mergeHead = Path.Combine(repo.RepoDir, ".git", "MERGE_HEAD");
|
||||
File.WriteAllText(mergeHead, "0000000000000000000000000000000000000000\n");
|
||||
|
||||
var git = new GitService();
|
||||
Assert.True(await git.IsMidMergeAsync(repo.RepoDir));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user