packages feed

githud 2.0.1 → 2.0.2

raw patch · 3 files changed

+94/−94 lines, 3 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

githud.cabal view
@@ -1,5 +1,5 @@ name:                githud-version:             2.0.1+version:             2.0.2 synopsis:            More efficient replacement to the great git-radar description:         Please see README.md (used to be gitHUD) homepage:            http://github.com/gbataille/gitHUD#readme
src/GitHUD/Terminal/Base.hs view
@@ -70,4 +70,4 @@ terminalStartCode  NoColor  _      = terminalEndCode  terminalEndCode :: String-terminalEndCode = "\x1b[39m"+terminalEndCode = "\x1b[0;39m"
test/Test/GitHUD/Terminal/Prompt.hs view
@@ -30,9 +30,9 @@ testResetPromptAtBeginning :: TestTree testResetPromptAtBeginning = testGroup "#resetPromptAtBeginning"  [   testCase "Should start the prompt with a reset color control sequence" $-       testWriterWithConfig (zeroOutputConfig ZSH) resetPromptAtBeginning @?= "%{\x1b[39m%}"+       testWriterWithConfig (zeroOutputConfig ZSH) resetPromptAtBeginning @?= "%{\x1b[0;39m%}"    , testCase "Should start the prompt with a reset color control sequence" $-       testWriterWithConfig (zeroOutputConfig Other) resetPromptAtBeginning @?= "\x1b[39m"+       testWriterWithConfig (zeroOutputConfig Other) resetPromptAtBeginning @?= "\x1b[0;39m"  ]  testAddGitRepoIndicator :: TestTree@@ -87,12 +87,12 @@       , testCase "ZSH: with no upstream" $           testWriterWithConfig             (zeroOutputConfig ZSH) addNoTrackedUpstreamIndicator-          @?= "%{\x1b[1;31m%}upstream%{\x1b[39m%} %{\x1b[1;31m%}\9889%{\x1b[39m%} "+          @?= "%{\x1b[1;31m%}upstream%{\x1b[0;39m%} %{\x1b[1;31m%}\9889%{\x1b[0;39m%} "        , testCase "Other: with no upstream" $           testWriterWithConfig             (zeroOutputConfig Other) addNoTrackedUpstreamIndicator-          @?= "\x1b[1;31mupstream\x1b[39m \x1b[1;31m\9889\x1b[39m "+          @?= "\x1b[1;31mupstream\x1b[0;39m \x1b[1;31m\9889\x1b[0;39m "       ]     , testGroup "Custom Config"       [ testCase "ZSH: with an upstream" $@@ -111,13 +111,13 @@           testWriterWithConfig             (buildOutputConfig ZSH (zeroGitRepoState) customConfigNoTrackedUpstreamIndicator)             addNoTrackedUpstreamIndicator-          @?= "%{\x1b[36m%}foo%{\x1b[39m%} %{\x1b[32m%}bar%{\x1b[39m%} "+          @?= "%{\x1b[36m%}foo%{\x1b[0;39m%} %{\x1b[32m%}bar%{\x1b[0;39m%} "        , testCase "Other: with no upstream" $           testWriterWithConfig             (buildOutputConfig Other (zeroGitRepoState) customConfigNoTrackedUpstreamIndicator)             addNoTrackedUpstreamIndicator-          @?= "\x1b[36mfoo\x1b[39m \x1b[32mbar\x1b[39m "+          @?= "\x1b[36mfoo\x1b[0;39m \x1b[32mbar\x1b[0;39m "       ]   ] @@ -134,53 +134,53 @@   [ testGroup "Default Config"     [ testCase "ZSH: commits to pull" $         testMergeBranchCommitsToPull ZSH defaultConfig @?=-        "\120366 %{\x1b[1;32m%}\8594%{\x1b[39m%} 2 "+        "\120366 %{\x1b[1;32m%}\8594%{\x1b[0;39m%} 2 "      , testCase "ZSH: commits to push" $         testMergeBranchCommitsToPush ZSH defaultConfig @?=-        "\120366 %{\x1b[1;32m%}\8592%{\x1b[39m%} 2 "+        "\120366 %{\x1b[1;32m%}\8592%{\x1b[0;39m%} 2 "      , testCase "ZSH: commits to pull and to push" $         testMergeBranchCommitsToPushAndPull ZSH defaultConfig @?=-        "\120366 4%{\x1b[1;32m%}\8644%{\x1b[39m%}4 "+        "\120366 4%{\x1b[1;32m%}\8644%{\x1b[0;39m%}4 "      , testCase "Other: commits to pull" $         testMergeBranchCommitsToPull Other defaultConfig @?=-        "\120366 \x1b[1;32m\8594\x1b[39m 2 "+        "\120366 \x1b[1;32m\8594\x1b[0;39m 2 "      , testCase "Other: commits to push" $         testMergeBranchCommitsToPush Other defaultConfig @?=-        "\120366 \x1b[1;32m\8592\x1b[39m 2 "+        "\120366 \x1b[1;32m\8592\x1b[0;39m 2 "      , testCase "Other: commits to pull and to push" $         testMergeBranchCommitsToPushAndPull Other defaultConfig @?=-        "\120366 4\x1b[1;32m\8644\x1b[39m4 "+        "\120366 4\x1b[1;32m\8644\x1b[0;39m4 "     ]      , testGroup "Custom Config"         [ testCase "ZSH: commits to pull" $             testMergeBranchCommitsToPull ZSH customConfigMergeBranchCommits @?=-            "foo %{\x1b[1;32m%}pull%{\x1b[39m%} 2 "+            "foo %{\x1b[1;32m%}pull%{\x1b[0;39m%} 2 "          , testCase "ZSH: commits to push" $             testMergeBranchCommitsToPush ZSH customConfigMergeBranchCommits @?=-            "foo %{\x1b[1;32m%}push%{\x1b[39m%} 2 "+            "foo %{\x1b[1;32m%}push%{\x1b[0;39m%} 2 "          , testCase "ZSH: commits to pull and to push" $             testMergeBranchCommitsToPushAndPull ZSH customConfigMergeBranchCommits @?=-            "foo 4%{\x1b[1;32m%}pull-push%{\x1b[39m%}4 "+            "foo 4%{\x1b[1;32m%}pull-push%{\x1b[0;39m%}4 "          , testCase "Other: commits to pull" $             testMergeBranchCommitsToPull Other customConfigMergeBranchCommits @?=-            "foo \x1b[1;32mpull\x1b[39m 2 "+            "foo \x1b[1;32mpull\x1b[0;39m 2 "          , testCase "Other: commits to push" $             testMergeBranchCommitsToPush Other customConfigMergeBranchCommits @?=-            "foo \x1b[1;32mpush\x1b[39m 2 "+            "foo \x1b[1;32mpush\x1b[0;39m 2 "          , testCase "Other: commits to pull and to push" $             testMergeBranchCommitsToPushAndPull Other customConfigMergeBranchCommits @?=-            "foo 4\x1b[1;32mpull-push\x1b[39m4 "+            "foo 4\x1b[1;32mpull-push\x1b[0;39m4 "         ]   ] @@ -202,86 +202,86 @@           testWriterWithConfig             (buildOutputConfig ZSH (zeroGitRepoState { gitLocalBranch = "foo" }) defaultConfig)             addLocalBranchName-          @?= "[%{\x1b[39m%}foo%{\x1b[39m%}] "+          @?= "[%{\x1b[0;39m%}foo%{\x1b[0;39m%}] "          , testCase "Other: should display the name of the current branch if we are at the HEAD of any" $           testWriterWithConfig             (buildOutputConfig Other (zeroGitRepoState { gitLocalBranch = "foo" }) defaultConfig)             addLocalBranchName-          @?= "[\x1b[39mfoo\x1b[39m] "+          @?= "[\x1b[0;39mfoo\x1b[0;39m] "          , testCase "ZSH: should display the current commit tag if we are not on one" $           testWriterWithConfig             (buildOutputConfig ZSH (zeroGitRepoState { gitCommitTag = "v1.1.1" }) defaultConfig)             addLocalBranchName-          @?= "[%{\x1b[1;33m%}detached@v1.1.1%{\x1b[39m%}] "+          @?= "[%{\x1b[1;33m%}detached@v1.1.1%{\x1b[0;39m%}] "          , testCase "Other: should display the current commit tog if we are on one" $           testWriterWithConfig             (buildOutputConfig Other (zeroGitRepoState { gitCommitTag = "v1.1.1" }) defaultConfig)             addLocalBranchName-          @?= "[\x1b[1;33mdetached@v1.1.1\x1b[39m] "+          @?= "[\x1b[1;33mdetached@v1.1.1\x1b[0;39m] "          , testCase "ZSH: should display the current commit SHA if we are not on a branch's HEAD" $           testWriterWithConfig             (buildOutputConfig ZSH (zeroGitRepoState { gitCommitShortSHA = "3d25ef" }) defaultConfig)             addLocalBranchName-          @?= "[%{\x1b[1;33m%}detached@3d25ef%{\x1b[39m%}] "+          @?= "[%{\x1b[1;33m%}detached@3d25ef%{\x1b[0;39m%}] "          , testCase "Other: should display the current commit SHA if we are not on a branch's HEAD" $           testWriterWithConfig             (buildOutputConfig Other (zeroGitRepoState { gitCommitShortSHA = "3d25ef" }) defaultConfig)             addLocalBranchName-          @?= "[\x1b[1;33mdetached@3d25ef\x1b[39m] "+          @?= "[\x1b[1;33mdetached@3d25ef\x1b[0;39m] "          , testCase "ZSH: should prefer the current tag over the commit SHA if we are not on a branch's HEAD" $           testWriterWithConfig             (buildOutputConfig ZSH (zeroGitRepoState { gitCommitShortSHA = "3d25ef", gitCommitTag = "v1.2.3" }) defaultConfig)             addLocalBranchName-          @?= "[%{\x1b[1;33m%}detached@v1.2.3%{\x1b[39m%}] "+          @?= "[%{\x1b[1;33m%}detached@v1.2.3%{\x1b[0;39m%}] "          , testCase "Other: should prefer the current tag over the commit SHA if we are not on a branch's HEAD" $           testWriterWithConfig             (buildOutputConfig Other (zeroGitRepoState { gitCommitShortSHA = "3d25ef", gitCommitTag = "v1.2.3" }) defaultConfig)             addLocalBranchName-          @?= "[\x1b[1;33mdetached@v1.2.3\x1b[39m] "+          @?= "[\x1b[1;33mdetached@v1.2.3\x1b[0;39m] "     ]     , testGroup "Custom Config"     [   testCase "ZSH: should display the name of the current branch if we are at the HEAD of any" $           testWriterWithConfig             (buildOutputConfig ZSH (zeroGitRepoState { gitLocalBranch = "foo" }) customConfigLocalBranchName)             addLocalBranchName-          @?= "{%{\x1b[36m%}foo%{\x1b[39m%}} "+          @?= "{%{\x1b[36m%}foo%{\x1b[0;39m%}} "          , testCase "Other: should display the name of the current branch if we are at the HEAD of any" $           testWriterWithConfig             (buildOutputConfig Other (zeroGitRepoState { gitLocalBranch = "foo" }) customConfigLocalBranchName)             addLocalBranchName-          @?= "{\x1b[36mfoo\x1b[39m} "+          @?= "{\x1b[36mfoo\x1b[0;39m} "          , testCase "ZSH: should display the current commit tag if we are not on one" $           testWriterWithConfig             (buildOutputConfig ZSH (zeroGitRepoState { gitCommitTag = "v1.1.1" }) customConfigLocalBranchName)             addLocalBranchName-          @?= "{%{\x1b[35m%}det#!v1.1.1%{\x1b[39m%}} "+          @?= "{%{\x1b[35m%}det#!v1.1.1%{\x1b[0;39m%}} "          , testCase "Other: should display the current commit tog if we are on one" $           testWriterWithConfig             (buildOutputConfig Other (zeroGitRepoState { gitCommitTag = "v1.1.1" }) customConfigLocalBranchName)             addLocalBranchName-          @?= "{\x1b[35mdet#!v1.1.1\x1b[39m} "+          @?= "{\x1b[35mdet#!v1.1.1\x1b[0;39m} "          , testCase "ZSH: should display the current commit SHA if we are not on a branch's HEAD" $           testWriterWithConfig             (buildOutputConfig ZSH (zeroGitRepoState { gitCommitShortSHA = "3d25ef" }) customConfigLocalBranchName)             addLocalBranchName-          @?= "{%{\x1b[35m%}det#!3d25ef%{\x1b[39m%}} "+          @?= "{%{\x1b[35m%}det#!3d25ef%{\x1b[0;39m%}} "          , testCase "Other: should display the current commit SHA if we are not on a branch's HEAD" $           testWriterWithConfig             (buildOutputConfig Other (zeroGitRepoState { gitCommitShortSHA = "3d25ef" }) customConfigLocalBranchName)             addLocalBranchName-          @?= "{\x1b[35mdet#!3d25ef\x1b[39m} "+          @?= "{\x1b[35mdet#!3d25ef\x1b[0;39m} "     ]   ] @@ -303,52 +303,52 @@   [   testGroup "Default Config"       [ testCase "ZSH: commits to pull" $           testCommitsToPull ZSH defaultConfig @?=-          "2%{\x1b[1;31m%}\8595%{\x1b[39m%} "+          "2%{\x1b[1;31m%}\8595%{\x1b[0;39m%} "        , testCase "ZSH: commits to push" $           testCommitsToPush ZSH defaultConfig @?=-          "2%{\x1b[1;32m%}\8593%{\x1b[39m%} "+          "2%{\x1b[1;32m%}\8593%{\x1b[0;39m%} "        , testCase "ZSH: commits to pull and to push" $           testCommitsToPushAndPull ZSH defaultConfig @?=-          "4%{\x1b[1;32m%}⥯%{\x1b[39m%}4 "+          "4%{\x1b[1;32m%}⥯%{\x1b[0;39m%}4 "        , testCase "Other: commits to pull" $           testCommitsToPull Other defaultConfig @?=-          "2\x1b[1;31m\8595\x1b[39m "+          "2\x1b[1;31m\8595\x1b[0;39m "        , testCase "Other: commits to push" $           testCommitsToPush Other defaultConfig @?=-          "2\x1b[1;32m\8593\x1b[39m "+          "2\x1b[1;32m\8593\x1b[0;39m "        , testCase "Other: commits to pull and to push" $           testCommitsToPushAndPull Other defaultConfig @?=-          "4\x1b[1;32m⥯\x1b[39m4 "+          "4\x1b[1;32m⥯\x1b[0;39m4 "       ]     , testGroup "Custom Config"       [ testCase "ZSH: commits to pull" $           testCommitsToPull ZSH customConfigLocalCommits @?=-          "2%{\x1b[35m%}pull%{\x1b[39m%} "+          "2%{\x1b[35m%}pull%{\x1b[0;39m%} "        , testCase "ZSH: commits to push" $           testCommitsToPush ZSH customConfigLocalCommits @?=-          "2%{\x1b[36m%}push%{\x1b[39m%} "+          "2%{\x1b[36m%}push%{\x1b[0;39m%} "        , testCase "ZSH: commits to pull and to push" $           testCommitsToPushAndPull ZSH customConfigLocalCommits @?=-          "4%{\x1b[37m%}push-pull%{\x1b[39m%}4 "+          "4%{\x1b[37m%}push-pull%{\x1b[0;39m%}4 "        , testCase "Other: commits to pull" $           testCommitsToPull Other customConfigLocalCommits @?=-          "2\x1b[35mpull\x1b[39m "+          "2\x1b[35mpull\x1b[0;39m "        , testCase "Other: commits to push" $           testCommitsToPush Other customConfigLocalCommits @?=-          "2\x1b[36mpush\x1b[39m "+          "2\x1b[36mpush\x1b[0;39m "        , testCase "Other: commits to pull and to push" $           testCommitsToPushAndPull Other customConfigLocalCommits @?=-          "4\x1b[37mpush-pull\x1b[39m4 "+          "4\x1b[37mpush-pull\x1b[0;39m4 "       ]   ] @@ -384,113 +384,113 @@ testAddRepoState = testGroup "#addRepoState"   [   testGroup "Default Config"         [ testCase "ZSH: with Local Add Changes" $-            testLocalAddChange ZSH defaultConfig @?= "2%{\x1b[1;37m%}A%{\x1b[39m%} "+            testLocalAddChange ZSH defaultConfig @?= "2%{\x1b[1;37m%}A%{\x1b[0;39m%} "            , testCase "ZSH: with Local Mod Changes" $-            testLocalModChange ZSH defaultConfig @?= "2%{\x1b[1;31m%}M%{\x1b[39m%} "+            testLocalModChange ZSH defaultConfig @?= "2%{\x1b[1;31m%}M%{\x1b[0;39m%} "            , testCase "ZSH: with Local Del Changes" $-            testLocalDelChange ZSH defaultConfig @?= "2%{\x1b[1;31m%}D%{\x1b[39m%} "+            testLocalDelChange ZSH defaultConfig @?= "2%{\x1b[1;31m%}D%{\x1b[0;39m%} "            , testCase "ZSH: with Index Add Changes" $-            testIndexAddChange ZSH defaultConfig @?= "2%{\x1b[1;32m%}A%{\x1b[39m%} "+            testIndexAddChange ZSH defaultConfig @?= "2%{\x1b[1;32m%}A%{\x1b[0;39m%} "            , testCase "ZSH: with Index Mod Changes" $-            testIndexModChange ZSH defaultConfig @?= "2%{\x1b[1;32m%}M%{\x1b[39m%} "+            testIndexModChange ZSH defaultConfig @?= "2%{\x1b[1;32m%}M%{\x1b[0;39m%} "            , testCase "ZSH: with Index Del Changes" $-            testIndexDelChange ZSH defaultConfig @?= "2%{\x1b[1;32m%}D%{\x1b[39m%} "+            testIndexDelChange ZSH defaultConfig @?= "2%{\x1b[1;32m%}D%{\x1b[0;39m%} "            , testCase "ZSH: with Conflicted Changes" $-            testConflictedChange ZSH defaultConfig @?= "2%{\x1b[1;32m%}C%{\x1b[39m%} "+            testConflictedChange ZSH defaultConfig @?= "2%{\x1b[1;32m%}C%{\x1b[0;39m%} "            , testCase "ZSH: with Renamed Changes" $-            testRenamedChange ZSH defaultConfig @?= "2%{\x1b[1;32m%}R%{\x1b[39m%} "+            testRenamedChange ZSH defaultConfig @?= "2%{\x1b[1;32m%}R%{\x1b[0;39m%} "            , testCase "Other: with Local Add Changes" $-            testLocalAddChange Other defaultConfig @?= "2\x1b[1;37mA\x1b[39m "+            testLocalAddChange Other defaultConfig @?= "2\x1b[1;37mA\x1b[0;39m "            , testCase "Other: with Local Mod Changes" $-            testLocalModChange Other defaultConfig @?= "2\x1b[1;31mM\x1b[39m "+            testLocalModChange Other defaultConfig @?= "2\x1b[1;31mM\x1b[0;39m "            , testCase "Other: with Local Del Changes" $-            testLocalDelChange Other defaultConfig @?= "2\x1b[1;31mD\x1b[39m "+            testLocalDelChange Other defaultConfig @?= "2\x1b[1;31mD\x1b[0;39m "            , testCase "Other: with Index Add Changes" $-            testIndexAddChange Other defaultConfig @?= "2\x1b[1;32mA\x1b[39m "+            testIndexAddChange Other defaultConfig @?= "2\x1b[1;32mA\x1b[0;39m "            , testCase "Other: with Index Mod Changes" $-            testIndexModChange Other defaultConfig @?= "2\x1b[1;32mM\x1b[39m "+            testIndexModChange Other defaultConfig @?= "2\x1b[1;32mM\x1b[0;39m "            , testCase "Other: with Index Del Changes" $-            testIndexDelChange Other defaultConfig @?= "2\x1b[1;32mD\x1b[39m "+            testIndexDelChange Other defaultConfig @?= "2\x1b[1;32mD\x1b[0;39m "            , testCase "Other: with Conflicted Changes" $-            testConflictedChange Other defaultConfig @?= "2\x1b[1;32mC\x1b[39m "+            testConflictedChange Other defaultConfig @?= "2\x1b[1;32mC\x1b[0;39m "            , testCase "Other: with Renamed Changes" $-            testRenamedChange Other defaultConfig @?= "2\x1b[1;32mR\x1b[39m "+            testRenamedChange Other defaultConfig @?= "2\x1b[1;32mR\x1b[0;39m "            , testCase "ZSH: with every kind of Changes" $-            testEveryRepoChange ZSH defaultConfig @?= "6%{\x1b[1;32m%}A%{\x1b[39m%}8%{\x1b[1;32m%}D%{\x1b[39m%}7%{\x1b[1;32m%}M%{\x1b[39m%}1%{\x1b[1;32m%}R%{\x1b[39m%} 5%{\x1b[1;31m%}D%{\x1b[39m%}4%{\x1b[1;31m%}M%{\x1b[39m%} 3%{\x1b[1;37m%}A%{\x1b[39m%} 2%{\x1b[1;32m%}C%{\x1b[39m%} "+            testEveryRepoChange ZSH defaultConfig @?= "6%{\x1b[1;32m%}A%{\x1b[0;39m%}8%{\x1b[1;32m%}D%{\x1b[0;39m%}7%{\x1b[1;32m%}M%{\x1b[0;39m%}1%{\x1b[1;32m%}R%{\x1b[0;39m%} 5%{\x1b[1;31m%}D%{\x1b[0;39m%}4%{\x1b[1;31m%}M%{\x1b[0;39m%} 3%{\x1b[1;37m%}A%{\x1b[0;39m%} 2%{\x1b[1;32m%}C%{\x1b[0;39m%} "            , testCase "Other: with every kind of Changes" $-            testEveryRepoChange Other defaultConfig @?= "6\x1b[1;32mA\x1b[39m8\x1b[1;32mD\x1b[39m7\x1b[1;32mM\x1b[39m1\x1b[1;32mR\x1b[39m 5\x1b[1;31mD\x1b[39m4\x1b[1;31mM\x1b[39m 3\x1b[1;37mA\x1b[39m 2\x1b[1;32mC\x1b[39m "+            testEveryRepoChange Other defaultConfig @?= "6\x1b[1;32mA\x1b[0;39m8\x1b[1;32mD\x1b[0;39m7\x1b[1;32mM\x1b[0;39m1\x1b[1;32mR\x1b[0;39m 5\x1b[1;31mD\x1b[0;39m4\x1b[1;31mM\x1b[0;39m 3\x1b[1;37mA\x1b[0;39m 2\x1b[1;32mC\x1b[0;39m "         ]     , testGroup "Custom Config"         [ testCase "ZSH: with Local Add Changes" $-            testLocalAddChange ZSH customChangeConfig @?= "2%{\x1b[35m%}B%{\x1b[39m%} "+            testLocalAddChange ZSH customChangeConfig @?= "2%{\x1b[35m%}B%{\x1b[0;39m%} "            , testCase "ZSH: with Local Mod Changes" $-            testLocalModChange ZSH customChangeConfig @?= "2%{\x1b[34m%}N%{\x1b[39m%} "+            testLocalModChange ZSH customChangeConfig @?= "2%{\x1b[34m%}N%{\x1b[0;39m%} "            , testCase "ZSH: with Local Del Changes" $-            testLocalDelChange ZSH customChangeConfig @?= "2%{\x1b[34m%}E%{\x1b[39m%} "+            testLocalDelChange ZSH customChangeConfig @?= "2%{\x1b[34m%}E%{\x1b[0;39m%} "            , testCase "ZSH: with Index Add Changes" $-            testIndexAddChange ZSH customChangeConfig @?= "2%{\x1b[36m%}B%{\x1b[39m%} "+            testIndexAddChange ZSH customChangeConfig @?= "2%{\x1b[36m%}B%{\x1b[0;39m%} "            , testCase "ZSH: with Index Mod Changes" $-            testIndexModChange ZSH customChangeConfig @?= "2%{\x1b[36m%}N%{\x1b[39m%} "+            testIndexModChange ZSH customChangeConfig @?= "2%{\x1b[36m%}N%{\x1b[0;39m%} "            , testCase "ZSH: with Index Del Changes" $-            testIndexDelChange ZSH customChangeConfig @?= "2%{\x1b[36m%}E%{\x1b[39m%} "+            testIndexDelChange ZSH customChangeConfig @?= "2%{\x1b[36m%}E%{\x1b[0;39m%} "            , testCase "ZSH: with Conflicted Changes" $-            testConflictedChange ZSH customChangeConfig @?= "2%{\x1b[36m%}D%{\x1b[39m%} "+            testConflictedChange ZSH customChangeConfig @?= "2%{\x1b[36m%}D%{\x1b[0;39m%} "            , testCase "ZSH: with Renamed Changes" $-            testRenamedChange ZSH customChangeConfig @?= "2%{\x1b[36m%}S%{\x1b[39m%} "+            testRenamedChange ZSH customChangeConfig @?= "2%{\x1b[36m%}S%{\x1b[0;39m%} "            , testCase "Other: with Local Add Changes" $-            testLocalAddChange Other customChangeConfig @?= "2\x1b[35mB\x1b[39m "+            testLocalAddChange Other customChangeConfig @?= "2\x1b[35mB\x1b[0;39m "            , testCase "Other: with Local Mod Changes" $-            testLocalModChange Other customChangeConfig @?= "2\x1b[34mN\x1b[39m "+            testLocalModChange Other customChangeConfig @?= "2\x1b[34mN\x1b[0;39m "            , testCase "Other: with Local Del Changes" $-            testLocalDelChange Other customChangeConfig @?= "2\x1b[34mE\x1b[39m "+            testLocalDelChange Other customChangeConfig @?= "2\x1b[34mE\x1b[0;39m "            , testCase "Other: with Index Add Changes" $-            testIndexAddChange Other customChangeConfig @?= "2\x1b[36mB\x1b[39m "+            testIndexAddChange Other customChangeConfig @?= "2\x1b[36mB\x1b[0;39m "            , testCase "Other: with Index Mod Changes" $-            testIndexModChange Other customChangeConfig @?= "2\x1b[36mN\x1b[39m "+            testIndexModChange Other customChangeConfig @?= "2\x1b[36mN\x1b[0;39m "            , testCase "Other: with Index Del Changes" $-            testIndexDelChange Other customChangeConfig @?= "2\x1b[36mE\x1b[39m "+            testIndexDelChange Other customChangeConfig @?= "2\x1b[36mE\x1b[0;39m "            , testCase "Other: with Conflicted Changes" $-            testConflictedChange Other customChangeConfig @?= "2\x1b[36mD\x1b[39m "+            testConflictedChange Other customChangeConfig @?= "2\x1b[36mD\x1b[0;39m "            , testCase "Other: with Renamed Changes" $-            testRenamedChange Other customChangeConfig @?= "2\x1b[36mS\x1b[39m "+            testRenamedChange Other customChangeConfig @?= "2\x1b[36mS\x1b[0;39m "            , testCase "ZSH: with every kind of Changes" $-            testEveryRepoChange ZSH customChangeConfig @?= "6%{\x1b[36m%}B%{\x1b[39m%}8%{\x1b[36m%}E%{\x1b[39m%}7%{\x1b[36m%}N%{\x1b[39m%}1%{\x1b[36m%}S%{\x1b[39m%} 5%{\x1b[34m%}E%{\x1b[39m%}4%{\x1b[34m%}N%{\x1b[39m%} 3%{\x1b[35m%}B%{\x1b[39m%} 2%{\x1b[36m%}D%{\x1b[39m%} "+            testEveryRepoChange ZSH customChangeConfig @?= "6%{\x1b[36m%}B%{\x1b[0;39m%}8%{\x1b[36m%}E%{\x1b[0;39m%}7%{\x1b[36m%}N%{\x1b[0;39m%}1%{\x1b[36m%}S%{\x1b[0;39m%} 5%{\x1b[34m%}E%{\x1b[0;39m%}4%{\x1b[34m%}N%{\x1b[0;39m%} 3%{\x1b[35m%}B%{\x1b[0;39m%} 2%{\x1b[36m%}D%{\x1b[0;39m%} "            , testCase "Other: with every kind of Changes" $-            testEveryRepoChange Other customChangeConfig @?= "6\x1b[36mB\x1b[39m8\x1b[36mE\x1b[39m7\x1b[36mN\x1b[39m1\x1b[36mS\x1b[39m 5\x1b[34mE\x1b[39m4\x1b[34mN\x1b[39m 3\x1b[35mB\x1b[39m 2\x1b[36mD\x1b[39m "+            testEveryRepoChange Other customChangeConfig @?= "6\x1b[36mB\x1b[0;39m8\x1b[36mE\x1b[0;39m7\x1b[36mN\x1b[0;39m1\x1b[36mS\x1b[0;39m 5\x1b[34mE\x1b[0;39m4\x1b[34mN\x1b[0;39m 3\x1b[35mB\x1b[0;39m 2\x1b[36mD\x1b[0;39m "         ]   ] @@ -507,23 +507,23 @@       [ testCase "ZSH: hardcoded character" $           testWriterWithConfig             (buildOutputConfig ZSH (zeroGitRepoState { gitStashCount = 2 }) defaultConfig) addStashes-          @?= "2%{\x1b[1;32m%}\8801%{\x1b[39m%} "+          @?= "2%{\x1b[1;32m%}\8801%{\x1b[0;39m%} "          , testCase "Other: hardcoded character" $           testWriterWithConfig             (buildOutputConfig Other (zeroGitRepoState { gitStashCount = 2 }) defaultConfig) addStashes-          @?= "2\x1b[1;32m\8801\x1b[39m "+          @?= "2\x1b[1;32m\8801\x1b[0;39m "       ]   , testGroup "Custom Config"       [ testCase "ZSH: hardcoded character" $           testWriterWithConfig             (buildOutputConfig ZSH (zeroGitRepoState { gitStashCount = 2 }) customStashConfig) addStashes-          @?= "2%{\x1b[36m%}stash%{\x1b[39m%} "+          @?= "2%{\x1b[36m%}stash%{\x1b[0;39m%} "          , testCase "Other: hardcoded character" $           testWriterWithConfig             (buildOutputConfig Other (zeroGitRepoState { gitStashCount = 2 }) customStashConfig) addStashes-          @?= "2\x1b[36mstash\x1b[39m "+          @?= "2\x1b[36mstash\x1b[0;39m "       ]   ] @@ -557,7 +557,7 @@  {- For reference here, the full prompt would be - "%{\ESC[39m%}\5812 \120366 2%{\ESC[1;32m%}\8644%{\ESC[39m%}1 [%{\ESC[39m%}branch%{\ESC[39m%}] 5%{\ESC[1;32m%}⥯%{\ESC[39m%}6 5%{\ESC[1;32m%}A%{\ESC[39m%}6%{\ESC[1;32m%}D%{\ESC[39m%}4%{\ESC[1;32m%}M%{\ESC[39m%}7%{\ESC[1;32m%}R%{\ESC[39m%} 3%{\ESC[1;31m%}D%{\ESC[39m%}1%{\ESC[1;31m%}M%{\ESC[39m%} 2%{\ESC[1;37m%}A%{\ESC[39m%} 8%{\ESC[1;32m%}C%{\ESC[39m%} 3%{\ESC[1;32m%}\8801%{\ESC[39m%} "+ "%{\ESC[0;39m%}\5812 \120366 2%{\ESC[1;32m%}\8644%{\ESC[0;39m%}1 [%{\ESC[0;39m%}branch%{\ESC[0;39m%}] 5%{\ESC[1;32m%}⥯%{\ESC[0;39m%}6 5%{\ESC[1;32m%}A%{\ESC[0;39m%}6%{\ESC[1;32m%}D%{\ESC[0;39m%}4%{\ESC[1;32m%}M%{\ESC[0;39m%}7%{\ESC[1;32m%}R%{\ESC[0;39m%} 3%{\ESC[1;31m%}D%{\ESC[0;39m%}1%{\ESC[1;31m%}M%{\ESC[0;39m%} 2%{\ESC[1;37m%}A%{\ESC[0;39m%} 8%{\ESC[1;32m%}C%{\ESC[0;39m%} 3%{\ESC[1;32m%}\8801%{\ESC[0;39m%} "  -} testPartialPrompt :: TestTree@@ -566,43 +566,43 @@         testWriterWithConfig           (buildOutputConfig ZSH repoStateForPartialPrompt defaultConfig { confShowPartRepoIndicator = False })           buildPrompt-        @?= "%{\ESC[39m%}\120366 2%{\ESC[1;32m%}\8644%{\ESC[39m%}1 [%{\ESC[39m%}branch%{\ESC[39m%}] 5%{\ESC[1;32m%}⥯%{\ESC[39m%}6 5%{\ESC[1;32m%}A%{\ESC[39m%}6%{\ESC[1;32m%}D%{\ESC[39m%}4%{\ESC[1;32m%}M%{\ESC[39m%}7%{\ESC[1;32m%}R%{\ESC[39m%} 3%{\ESC[1;31m%}D%{\ESC[39m%}1%{\ESC[1;31m%}M%{\ESC[39m%} 2%{\ESC[1;37m%}A%{\ESC[39m%} 8%{\ESC[1;32m%}C%{\ESC[39m%} 3%{\ESC[1;32m%}\8801%{\ESC[39m%} "+        @?= "%{\ESC[0;39m%}\120366 2%{\ESC[1;32m%}\8644%{\ESC[0;39m%}1 [%{\ESC[0;39m%}branch%{\ESC[0;39m%}] 5%{\ESC[1;32m%}⥯%{\ESC[0;39m%}6 5%{\ESC[1;32m%}A%{\ESC[0;39m%}6%{\ESC[1;32m%}D%{\ESC[0;39m%}4%{\ESC[1;32m%}M%{\ESC[0;39m%}7%{\ESC[1;32m%}R%{\ESC[0;39m%} 3%{\ESC[1;31m%}D%{\ESC[0;39m%}1%{\ESC[1;31m%}M%{\ESC[0;39m%} 2%{\ESC[1;37m%}A%{\ESC[0;39m%} 8%{\ESC[1;32m%}C%{\ESC[0;39m%} 3%{\ESC[1;32m%}\8801%{\ESC[0;39m%} "      , testCase "w/out merge branch commits info" $         testWriterWithConfig           (buildOutputConfig ZSH repoStateForPartialPrompt defaultConfig { confShowPartMergeBranchCommitsDiff = False })           buildPrompt-        @?= "%{\ESC[39m%}\5812 [%{\ESC[39m%}branch%{\ESC[39m%}] 5%{\ESC[1;32m%}⥯%{\ESC[39m%}6 5%{\ESC[1;32m%}A%{\ESC[39m%}6%{\ESC[1;32m%}D%{\ESC[39m%}4%{\ESC[1;32m%}M%{\ESC[39m%}7%{\ESC[1;32m%}R%{\ESC[39m%} 3%{\ESC[1;31m%}D%{\ESC[39m%}1%{\ESC[1;31m%}M%{\ESC[39m%} 2%{\ESC[1;37m%}A%{\ESC[39m%} 8%{\ESC[1;32m%}C%{\ESC[39m%} 3%{\ESC[1;32m%}\8801%{\ESC[39m%} "+        @?= "%{\ESC[0;39m%}\5812 [%{\ESC[0;39m%}branch%{\ESC[0;39m%}] 5%{\ESC[1;32m%}⥯%{\ESC[0;39m%}6 5%{\ESC[1;32m%}A%{\ESC[0;39m%}6%{\ESC[1;32m%}D%{\ESC[0;39m%}4%{\ESC[1;32m%}M%{\ESC[0;39m%}7%{\ESC[1;32m%}R%{\ESC[0;39m%} 3%{\ESC[1;31m%}D%{\ESC[0;39m%}1%{\ESC[1;31m%}M%{\ESC[0;39m%} 2%{\ESC[1;37m%}A%{\ESC[0;39m%} 8%{\ESC[1;32m%}C%{\ESC[0;39m%} 3%{\ESC[1;32m%}\8801%{\ESC[0;39m%} "      , testCase "w/out local branch info" $         testWriterWithConfig           (buildOutputConfig ZSH repoStateForPartialPrompt defaultConfig { confShowPartLocalBranch = False })           buildPrompt-        @?= "%{\ESC[39m%}\5812 \120366 2%{\ESC[1;32m%}\8644%{\ESC[39m%}1 5%{\ESC[1;32m%}⥯%{\ESC[39m%}6 5%{\ESC[1;32m%}A%{\ESC[39m%}6%{\ESC[1;32m%}D%{\ESC[39m%}4%{\ESC[1;32m%}M%{\ESC[39m%}7%{\ESC[1;32m%}R%{\ESC[39m%} 3%{\ESC[1;31m%}D%{\ESC[39m%}1%{\ESC[1;31m%}M%{\ESC[39m%} 2%{\ESC[1;37m%}A%{\ESC[39m%} 8%{\ESC[1;32m%}C%{\ESC[39m%} 3%{\ESC[1;32m%}\8801%{\ESC[39m%} "+        @?= "%{\ESC[0;39m%}\5812 \120366 2%{\ESC[1;32m%}\8644%{\ESC[0;39m%}1 5%{\ESC[1;32m%}⥯%{\ESC[0;39m%}6 5%{\ESC[1;32m%}A%{\ESC[0;39m%}6%{\ESC[1;32m%}D%{\ESC[0;39m%}4%{\ESC[1;32m%}M%{\ESC[0;39m%}7%{\ESC[1;32m%}R%{\ESC[0;39m%} 3%{\ESC[1;31m%}D%{\ESC[0;39m%}1%{\ESC[1;31m%}M%{\ESC[0;39m%} 2%{\ESC[1;37m%}A%{\ESC[0;39m%} 8%{\ESC[1;32m%}C%{\ESC[0;39m%} 3%{\ESC[1;32m%}\8801%{\ESC[0;39m%} "      , testCase "with a branch set to ignore its merge branch" $         testWriterWithConfig           (buildOutputConfig ZSH repoStateForPartialPrompt defaultConfig { confMergeBranchIgnoreBranches = ["branch"] })           buildPrompt-        @?= "%{\ESC[39m%}\5812 [%{\ESC[39m%}branch%{\ESC[39m%}] 5%{\ESC[1;32m%}⥯%{\ESC[39m%}6 5%{\ESC[1;32m%}A%{\ESC[39m%}6%{\ESC[1;32m%}D%{\ESC[39m%}4%{\ESC[1;32m%}M%{\ESC[39m%}7%{\ESC[1;32m%}R%{\ESC[39m%} 3%{\ESC[1;31m%}D%{\ESC[39m%}1%{\ESC[1;31m%}M%{\ESC[39m%} 2%{\ESC[1;37m%}A%{\ESC[39m%} 8%{\ESC[1;32m%}C%{\ESC[39m%} 3%{\ESC[1;32m%}\8801%{\ESC[39m%} "+        @?= "%{\ESC[0;39m%}\5812 [%{\ESC[0;39m%}branch%{\ESC[0;39m%}] 5%{\ESC[1;32m%}⥯%{\ESC[0;39m%}6 5%{\ESC[1;32m%}A%{\ESC[0;39m%}6%{\ESC[1;32m%}D%{\ESC[0;39m%}4%{\ESC[1;32m%}M%{\ESC[0;39m%}7%{\ESC[1;32m%}R%{\ESC[0;39m%} 3%{\ESC[1;31m%}D%{\ESC[0;39m%}1%{\ESC[1;31m%}M%{\ESC[0;39m%} 2%{\ESC[1;37m%}A%{\ESC[0;39m%} 8%{\ESC[1;32m%}C%{\ESC[0;39m%} 3%{\ESC[1;32m%}\8801%{\ESC[0;39m%} "      , testCase "w/out commits push/pull info" $         testWriterWithConfig           (buildOutputConfig ZSH repoStateForPartialPrompt defaultConfig { confShowPartCommitsToOrigin = False })           buildPrompt-        @?= "%{\ESC[39m%}\5812 \120366 2%{\ESC[1;32m%}\8644%{\ESC[39m%}1 [%{\ESC[39m%}branch%{\ESC[39m%}] 5%{\ESC[1;32m%}A%{\ESC[39m%}6%{\ESC[1;32m%}D%{\ESC[39m%}4%{\ESC[1;32m%}M%{\ESC[39m%}7%{\ESC[1;32m%}R%{\ESC[39m%} 3%{\ESC[1;31m%}D%{\ESC[39m%}1%{\ESC[1;31m%}M%{\ESC[39m%} 2%{\ESC[1;37m%}A%{\ESC[39m%} 8%{\ESC[1;32m%}C%{\ESC[39m%} 3%{\ESC[1;32m%}\8801%{\ESC[39m%} "+        @?= "%{\ESC[0;39m%}\5812 \120366 2%{\ESC[1;32m%}\8644%{\ESC[0;39m%}1 [%{\ESC[0;39m%}branch%{\ESC[0;39m%}] 5%{\ESC[1;32m%}A%{\ESC[0;39m%}6%{\ESC[1;32m%}D%{\ESC[0;39m%}4%{\ESC[1;32m%}M%{\ESC[0;39m%}7%{\ESC[1;32m%}R%{\ESC[0;39m%} 3%{\ESC[1;31m%}D%{\ESC[0;39m%}1%{\ESC[1;31m%}M%{\ESC[0;39m%} 2%{\ESC[1;37m%}A%{\ESC[0;39m%} 8%{\ESC[1;32m%}C%{\ESC[0;39m%} 3%{\ESC[1;32m%}\8801%{\ESC[0;39m%} "      , testCase "w/out local repo changes" $         testWriterWithConfig           (buildOutputConfig ZSH repoStateForPartialPrompt defaultConfig { confShowPartLocalChangesState = False })           buildPrompt-        @?= "%{\ESC[39m%}\5812 \120366 2%{\ESC[1;32m%}\8644%{\ESC[39m%}1 [%{\ESC[39m%}branch%{\ESC[39m%}] 5%{\ESC[1;32m%}⥯%{\ESC[39m%}6 3%{\ESC[1;32m%}\8801%{\ESC[39m%} "+        @?= "%{\ESC[0;39m%}\5812 \120366 2%{\ESC[1;32m%}\8644%{\ESC[0;39m%}1 [%{\ESC[0;39m%}branch%{\ESC[0;39m%}] 5%{\ESC[1;32m%}⥯%{\ESC[0;39m%}6 3%{\ESC[1;32m%}\8801%{\ESC[0;39m%} "      , testCase "w/out stashes" $         testWriterWithConfig           (buildOutputConfig ZSH repoStateForPartialPrompt defaultConfig { confShowPartStashes = False })           buildPrompt-        @?= "%{\ESC[39m%}\5812 \120366 2%{\ESC[1;32m%}\8644%{\ESC[39m%}1 [%{\ESC[39m%}branch%{\ESC[39m%}] 5%{\ESC[1;32m%}⥯%{\ESC[39m%}6 5%{\ESC[1;32m%}A%{\ESC[39m%}6%{\ESC[1;32m%}D%{\ESC[39m%}4%{\ESC[1;32m%}M%{\ESC[39m%}7%{\ESC[1;32m%}R%{\ESC[39m%} 3%{\ESC[1;31m%}D%{\ESC[39m%}1%{\ESC[1;31m%}M%{\ESC[39m%} 2%{\ESC[1;37m%}A%{\ESC[39m%} 8%{\ESC[1;32m%}C%{\ESC[39m%} "+        @?= "%{\ESC[0;39m%}\5812 \120366 2%{\ESC[1;32m%}\8644%{\ESC[0;39m%}1 [%{\ESC[0;39m%}branch%{\ESC[0;39m%}] 5%{\ESC[1;32m%}⥯%{\ESC[0;39m%}6 5%{\ESC[1;32m%}A%{\ESC[0;39m%}6%{\ESC[1;32m%}D%{\ESC[0;39m%}4%{\ESC[1;32m%}M%{\ESC[0;39m%}7%{\ESC[1;32m%}R%{\ESC[0;39m%} 3%{\ESC[1;31m%}D%{\ESC[0;39m%}1%{\ESC[1;31m%}M%{\ESC[0;39m%} 2%{\ESC[1;37m%}A%{\ESC[0;39m%} 8%{\ESC[1;32m%}C%{\ESC[0;39m%} "   ]  -- | Utility function to test a ShellOutput function and gets the prompt built