summaryrefslogtreecommitdiffstats
path: root/t/t3205-branch-color.sh
diff options
context:
space:
mode:
Diffstat (limited to 't/t3205-branch-color.sh')
-rwxr-xr-xt/t3205-branch-color.sh45
1 files changed, 45 insertions, 0 deletions
diff --git a/t/t3205-branch-color.sh b/t/t3205-branch-color.sh
new file mode 100755
index 0000000..0b61da9
--- /dev/null
+++ b/t/t3205-branch-color.sh
@@ -0,0 +1,45 @@
+#!/bin/sh
+
+test_description='basic branch output coloring'
+TEST_PASSES_SANITIZE_LEAK=true
+. ./test-lib.sh
+
+test_expect_success 'set up some sample branches' '
+ test_commit foo &&
+ git branch -M main &&
+ git update-ref refs/remotes/origin/main HEAD &&
+ git update-ref refs/heads/other HEAD
+'
+
+# choose non-default colors to make sure config
+# is taking effect
+test_expect_success 'set up some color config' '
+ git config color.branch.local blue &&
+ git config color.branch.remote yellow &&
+ git config color.branch.current cyan
+'
+
+test_expect_success 'regular output shows colors' '
+ cat >expect <<-\EOF &&
+ * <CYAN>main<RESET>
+ <BLUE>other<RESET>
+ <YELLOW>remotes/origin/main<RESET>
+ EOF
+ git branch --color -a >actual.raw &&
+ test_decode_color <actual.raw >actual &&
+ test_cmp expect actual
+'
+
+test_expect_success 'verbose output shows colors' '
+ oid=$(git rev-parse --short HEAD) &&
+ cat >expect <<-EOF &&
+ * <CYAN>main <RESET> $oid foo
+ <BLUE>other <RESET> $oid foo
+ <YELLOW>remotes/origin/main<RESET> $oid foo
+ EOF
+ git branch --color -v -a >actual.raw &&
+ test_decode_color <actual.raw >actual &&
+ test_cmp expect actual
+'
+
+test_done