notmuch/test/T440-emacs-hello.sh
David Bremner 704aa76f5d test/emacs: add known broken test for hidden tags
Gregor Zattler observed that tags could be unintentionally hidden in
the "All tags" view, and Tomi Ollia worked out [2] that the issue was tags
that only occured on excluded messages. This test reproduces that bug.

[1]: id:87wox1vovj.fsf@len.workgroup
[2]: id:m28t9faaim.fsf@guru.guru-group.fi
2022-01-20 15:31:29 -04:00

90 lines
3.5 KiB
Bash
Executable file

#!/usr/bin/env bash
test_description="emacs notmuch-hello view"
. $(dirname "$0")/test-lib.sh || exit 1
. $NOTMUCH_SRCDIR/test/test-lib-emacs.sh || exit 1
EXPECTED=$NOTMUCH_SRCDIR/test/emacs.expected-output
test_require_emacs
add_email_corpus
test_begin_subtest "User-defined section with inbox tag"
test_emacs "(let ((notmuch-hello-sections
(list (lambda () (notmuch-hello-insert-searches
\"Test\" '((\"inbox\" . \"tag:inbox\")))))))
(notmuch-hello)
(test-output))"
test_expect_equal_file $EXPECTED/notmuch-hello-new-section OUTPUT
test_begin_subtest "User-defined section with empty, hidden entry"
test_emacs "(let ((notmuch-hello-sections
(list (lambda () (notmuch-hello-insert-searches
\"Test-with-empty\"
'((\"inbox\" . \"tag:inbox\")
(\"doesnotexist\" . \"tag:doesnotexist\"))
:hide-empty-searches t)))))
(notmuch-hello)
(test-output))"
test_expect_equal_file $EXPECTED/notmuch-hello-section-with-empty OUTPUT
test_begin_subtest "User-defined section, unread tag filtered out"
test_emacs "(let ((notmuch-hello-sections
(list (lambda () (notmuch-hello-insert-tags-section
\"Test-with-filtered\"
:hide-tags '(\"unread\"))))))
(notmuch-hello)
(test-output))"
test_expect_equal_file $EXPECTED/notmuch-hello-section-hidden-tag OUTPUT
test_begin_subtest "User-defined section, different query for counts"
test_emacs "(let ((notmuch-hello-sections
(list (lambda () (notmuch-hello-insert-tags-section
\"Test-with-counts\"
:filter-count \"tag:signed\")))))
(notmuch-hello)
(test-output))"
test_expect_equal_file $EXPECTED/notmuch-hello-section-counts OUTPUT
test_begin_subtest "Empty custom tags section"
test_emacs "(let* ((widget (widget-create 'notmuch-hello-tags-section))
(notmuch-hello-sections (list (widget-value widget))))
(notmuch-hello)
(test-output))"
test_expect_equal_file $EXPECTED/notmuch-hello-empty-custom-tags-section OUTPUT
test_begin_subtest "Empty custom queries section"
test_emacs "(let* ((widget (widget-create 'notmuch-hello-query-section))
(notmuch-hello-sections (list (widget-value widget))))
(notmuch-hello)
(test-output))"
test_expect_equal_file $EXPECTED/notmuch-hello-empty-custom-queries-section OUTPUT
test_begin_subtest "Column alignment for tag/queries with long names"
tag=a-very-long-tag # length carefully calculated for 80 characters window width
notmuch tag +$tag '*'
test_emacs '(notmuch-hello)
(test-output)'
notmuch tag -$tag '*'
test_expect_equal_file $EXPECTED/notmuch-hello-long-names OUTPUT
test_begin_subtest "All tags show up"
test_subtest_known_broken
tag=exclude_me
notmuch tag +$tag '*'
notmuch config set search.exclude_tags $tag
test_emacs '(notmuch-hello)
(test-output)'
notmuch tag -$tag '*'
test_expect_equal_file $EXPECTED/notmuch-hello-all-tags OUTPUT
test_done
test_begin_subtest "notmuch-hello with nonexistent CWD"
test_emacs '
(notmuch-hello)
(test-log-error
(let ((default-directory "/nonexistent"))
(notmuch-hello-update)))'
test_expect_equal "$(cat MESSAGES)" "COMPLETE"
test_done