summaryrefslogtreecommitdiff
path: root/t/t0018-advice.sh
diff options
context:
space:
mode:
authorHeba Waly <heba.waly@gmail.com>2020-03-02 20:01:59 (GMT)
committerJunio C Hamano <gitster@pobox.com>2020-03-05 14:15:02 (GMT)
commitb3b18d1621315fb187689ee6c759bdbbea214eb8 (patch)
tree71cdc12a22546b811b17a8b73e8c8e9ec349d3f9 /t/t0018-advice.sh
parentfef0c76f1802c42f1d1f3b6344deb182a3600625 (diff)
downloadgit-b3b18d1621315fb187689ee6c759bdbbea214eb8.zip
git-b3b18d1621315fb187689ee6c759bdbbea214eb8.tar.gz
git-b3b18d1621315fb187689ee6c759bdbbea214eb8.tar.bz2
advice: revamp advise API
Currently it's very easy for the advice library's callers to miss checking the visibility step before printing an advice. Also, it makes more sense for this step to be handled by the advice library. Add a new advise_if_enabled function that checks the visibility of advice messages before printing. Add a new helper advise_enabled to check the visibility of the advice if the caller needs to carry out complicated processing based on that value. A list of advice_settings is added to cache the config variables names and values, it's intended to replace advice_config[] and the global variables once we migrate all the callers to use the new APIs. Signed-off-by: Heba Waly <heba.waly@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t0018-advice.sh')
-rwxr-xr-xt/t0018-advice.sh32
1 files changed, 32 insertions, 0 deletions
diff --git a/t/t0018-advice.sh b/t/t0018-advice.sh
new file mode 100755
index 0000000..e03554d
--- /dev/null
+++ b/t/t0018-advice.sh
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+test_description='Test advise_if_enabled functionality'
+
+. ./test-lib.sh
+
+test_expect_success 'advice should be printed when config variable is unset' '
+ cat >expect <<-\EOF &&
+ hint: This is a piece of advice
+ hint: Disable this message with "git config advice.nestedTag false"
+ EOF
+ test-tool advise "This is a piece of advice" 2>actual &&
+ test_i18ncmp expect actual
+'
+
+test_expect_success 'advice should be printed when config variable is set to true' '
+ cat >expect <<-\EOF &&
+ hint: This is a piece of advice
+ hint: Disable this message with "git config advice.nestedTag false"
+ EOF
+ test_config advice.nestedTag true &&
+ test-tool advise "This is a piece of advice" 2>actual &&
+ test_i18ncmp expect actual
+'
+
+test_expect_success 'advice should not be printed when config variable is set to false' '
+ test_config advice.nestedTag false &&
+ test-tool advise "This is a piece of advice" 2>actual &&
+ test_must_be_empty actual
+'
+
+test_done