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