summaryrefslogtreecommitdiff
path: root/test/cases/lib-messages.bats
diff options
context:
space:
mode:
Diffstat (limited to 'test/cases/lib-messages.bats')
-rw-r--r--test/cases/lib-messages.bats63
1 files changed, 63 insertions, 0 deletions
diff --git a/test/cases/lib-messages.bats b/test/cases/lib-messages.bats
new file mode 100644
index 0000000..d0b4497
--- /dev/null
+++ b/test/cases/lib-messages.bats
@@ -0,0 +1,63 @@
+#!/usr/bin/env roundup
+
+describe libremessages
+. ./test-common.sh
+
+it_can_be_included_twice() (
+ . libremessages
+ . libremessages
+)
+
+it_can_be_included_with_set_euE() (
+ set -euE
+ . libremessages
+)
+
+it_works_with_no_color_and_set_euE() {
+ (
+ unset TERM
+ set -euE
+ . libremessages
+ msg Foo
+ ) >$tmpdir/stdout 2>$tmpdir/stderr
+
+ empty $tmpdir/stdout
+ not empty $tmpdir/stderr
+}
+
+it_can_be_called_without_including() {
+ libremessages msg Foo >$tmpdir/stdout 2>$tmpdir/stderr
+
+ empty $tmpdir/stdout
+ not empty $tmpdir/stderr
+}
+
+it_fails_with_msg_and_no_args() {
+ libremessages msg || status=$?
+ [[ $status != 0 ]]
+}
+
+it_allows_subheadings_to_flag() {
+ # Note that old versions of `flag` panicked if given an odd
+ # number of headings, so give an odd number here.
+ libremessages flag \
+ -a adesc \
+ -b bdesc \
+ Head1: \
+ -c cdesc > $tmpdir/out
+ cat > $tmpdir/exp <<-eot
+ -a adesc
+ -b bdesc
+ Head1:
+ -c cdesc
+ eot
+ diff -u $tmpdir/exp $tmpdir/out
+}
+
+it_is_quiet_on_stdout_on_errs() {
+ LC_ALL=C bash -euE -c '. libremessages; setup_traps; false' >"$tmpdir/stdout" 2>"$tmpdir/stderr" || status=$?
+
+ [[ $status != 0 ]]
+ empty "$tmpdir/stdout"
+ grep '==> ERROR:' "$tmpdir/stderr"
+}