git-brunch-1.5.0.0: test/Spec.hs
import Git
import Test.Hspec
main :: IO ()
main = hspec $ describe "Git.toBranch" $ do
it "returns a remote branch is starts with remote"
$ toBranches "remotes/origin/master"
`shouldBe` [BranchRemote "origin" "master"]
it "ignores leading spaces"
$ toBranches " master"
`shouldBe` [BranchLocal "master"]
it "detects current branch by asterik"
$ toBranches "* master"
`shouldBe` [BranchCurrent "master"]
it "returns a local branch"
$ toBranches "master"
`shouldBe` [BranchLocal "master"]
it "returns a branch with head in name"
$ toBranches "updateHead"
`shouldBe` [BranchLocal "updateHead"]
it "ignores HEAD" $ toBranches "HEAD" `shouldBe` []
it "ignores origin/HEAD" $ toBranches "origin/HEAD" `shouldBe` []
it "ignores detatched HEAD"
$ toBranches "* (HEAD detached at f01a202)"
`shouldBe` []
it "ignores 'no branch' during rebase"
$ toBranches "* (no branch, rebasing branch-name)"
`shouldBe` []
it "parses sample output"
$ toBranches sampleOutput
`shouldBe` [ BranchLocal "experimental/failing-debug-log-demo"
, BranchLocal "gh-pages"
, BranchLocal "master"
, BranchLocal "wip/delete-as-action"
, BranchRemote "origin" "experimental/failing-debug-log-demo"
, BranchRemote "origin" "gh-pages"
, BranchRemote "origin" "master"
]
sampleOutput :: String
sampleOutput =
"* (HEAD detached at f01a202)\n"
++ " experimental/failing-debug-log-demo\n"
++ " gh-pages\n"
++ " master\n"
++ " wip/delete-as-action\n"
++ " remotes/origin/HEAD -> origin/master\n"
++ " remotes/origin/experimental/failing-debug-log-demo\n"
++ " remotes/origin/gh-pages\n"
++ " remotes/origin/master"