Files
converge/test/GitSafetySpec.hs
T
2026-05-13 22:15:55 -04:00

69 lines
2.5 KiB
Haskell

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