#!/usr/bin/env bash
test_description="emacs notmuch-show view"
-. test-lib.sh
+. ./test-lib.sh
EXPECTED=$TEST_DIRECTORY/emacs-show.expected-output
\"
id:)
id:
-cid:xxx"'
+cid:xxx
+mid:abc mid:abc/def
+mid:abc%20def
+mid:abc. mid:abc, mid:abc;"'
test_emacs '(notmuch-show "id:'$gen_msg_id'")
(notmuch-test-mark-links)
(test-visible-output)'
id:)
id:
cid:xxx
+<<mid:abc>> <<mid:abc/def>>
+<<mid:abc%20def>>
+<<mid:abc>>. <<mid:abc>>, <<mid:abc>>;
EOF
test_expect_equal_file OUTPUT EXPECTED
+test_begin_subtest "Show handles subprocess errors"
+cat > notmuch_fail <<EOF
+#!/bin/sh
+echo This is output
+echo This is an error >&2
+exit 1
+EOF
+chmod a+x notmuch_fail
+test_emacs "(let ((notmuch-command \"$PWD/notmuch_fail\"))
+ (ignore-errors (notmuch-show \"*\"))
+ (notmuch-test-wait)
+ (test-output)
+ (with-current-buffer \"*Notmuch errors*\"
+ (test-output \"ERROR\")))"
+test_expect_equal "$(cat OUTPUT ERROR)" "\
+Error invoking notmuch. $PWD/notmuch_fail show --format=json --format-version=1 --exclude=false ' * ' exited with status 1.
+Error:
+This is an error
+Output:
+This is output"
+
+
test_done