Adds specs
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user