Adds specs

This commit is contained in:
2026-05-13 21:39:02 -04:00
parent 34c8232427
commit 65bf75cdf2
8 changed files with 375 additions and 3 deletions
+69
View File
@@ -0,0 +1,69 @@
module GitSafetySpec (spec) where
import Converge (checkIndicatorFiles, isInMiddleOfOperation)
import Test.Hspec
import TestHelper
spec :: Spec
spec = do
describe "isInMiddleOfOperation" $ do
it "returns False when no operation is in progress" $ do
withTempGitRepo $ \repo -> do
result <- isInMiddleOfOperation repo
result `shouldBe` False
describe "merge detection" $ do
it "returns True when MERGE_HEAD exists" $ do
withTempGitRepo $ \repo -> do
createMergeHead repo
result <- isInMiddleOfOperation repo
result `shouldBe` True
describe "revert detection" $ do
it "returns True when REVERT_HEAD exists" $ do
withTempGitRepo $ \repo -> do
createRevertHead repo
result <- isInMiddleOfOperation repo
result `shouldBe` True
describe "cherry-pick detection" $ do
it "returns True when CHERRY_PICK_HEAD exists" $ do
withTempGitRepo $ \repo -> do
createCherryPickHead repo
result <- isInMiddleOfOperation repo
result `shouldBe` True
describe "bisect detection" $ do
it "returns True when BISECT_LOG exists" $ do
withTempGitRepo $ \repo -> do
createBisectLog repo
result <- isInMiddleOfOperation repo
result `shouldBe` True
describe "rebase detection" $ do
it "returns True when rebase-apply directory exists" $ do
withTempGitRepo $ \repo -> do
createRebaseApply repo
result <- isInMiddleOfOperation repo
result `shouldBe` True
it "returns True when rebase-merge directory exists" $ do
withTempGitRepo $ \repo -> do
createRebaseMerge repo
result <- isInMiddleOfOperation repo
result `shouldBe` True
describe "sequencer detection" $ do
it "returns True when sequencer directory exists" $ do
withTempGitRepo $ \repo -> do
createSequencer repo
result <- isInMiddleOfOperation repo
result `shouldBe` True
describe "checkIndicatorFiles" $ do
it "returns False for a clean git directory" $ do
withTempGitRepo $ \repo -> do
dir <- gitDir repo
result <- checkIndicatorFiles dir
result `shouldBe` False