aurweb/test/t2200-tuvotereminder.t
Frédéric Mangano-Tarumi e374a91feb Change the extension of TAP test suites to .t
This is the common convention for TAP, and makes harnesses like prove
automatically detect them. Plus, test suites don’t have to be shell
scripts anymore.

Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2020-02-27 16:44:36 +01:00

53 lines
2 KiB
Bash
Executable file

#!/bin/sh
test_description='tuvotereminder tests'
. ./setup.sh
test_expect_success 'Test Trusted User vote reminders.' '
now=$(date -d now +%s) &&
tomorrow=$(date -d tomorrow +%s) &&
threedays=$(date -d "3 days" +%s) &&
cat <<-EOD | sqlite3 aur.db &&
INSERT INTO TU_VoteInfo (ID, Agenda, User, Submitted, End, Quorum, SubmitterID) VALUES (1, "Lorem ipsum.", "user", 0, $now, 0.00, 2);
INSERT INTO TU_VoteInfo (ID, Agenda, User, Submitted, End, Quorum, SubmitterID) VALUES (2, "Lorem ipsum.", "user", 0, $tomorrow, 0.00, 2);
INSERT INTO TU_VoteInfo (ID, Agenda, User, Submitted, End, Quorum, SubmitterID) VALUES (3, "Lorem ipsum.", "user", 0, $tomorrow, 0.00, 2);
INSERT INTO TU_VoteInfo (ID, Agenda, User, Submitted, End, Quorum, SubmitterID) VALUES (4, "Lorem ipsum.", "user", 0, $threedays, 0.00, 2);
EOD
>sendmail.out &&
"$TUVOTEREMINDER" &&
grep -q "Proposal 2" sendmail.out &&
grep -q "Proposal 3" sendmail.out &&
test_must_fail grep -q "Proposal 1" sendmail.out &&
test_must_fail grep -q "Proposal 4" sendmail.out
'
test_expect_success 'Check that only TUs who did not vote receive reminders.' '
cat <<-EOD | sqlite3 aur.db &&
INSERT INTO TU_Votes (VoteID, UserID) VALUES (1, 2);
INSERT INTO TU_Votes (VoteID, UserID) VALUES (2, 2);
INSERT INTO TU_Votes (VoteID, UserID) VALUES (3, 2);
INSERT INTO TU_Votes (VoteID, UserID) VALUES (4, 2);
INSERT INTO TU_Votes (VoteID, UserID) VALUES (1, 7);
INSERT INTO TU_Votes (VoteID, UserID) VALUES (3, 7);
INSERT INTO TU_Votes (VoteID, UserID) VALUES (2, 8);
INSERT INTO TU_Votes (VoteID, UserID) VALUES (4, 8);
INSERT INTO TU_Votes (VoteID, UserID) VALUES (1, 9);
EOD
>sendmail.out &&
"$TUVOTEREMINDER" &&
cat <<-EOD >expected &&
Subject: TU Vote Reminder: Proposal 2
To: tu2@localhost
Subject: TU Vote Reminder: Proposal 2
To: tu4@localhost
Subject: TU Vote Reminder: Proposal 3
To: tu3@localhost
Subject: TU Vote Reminder: Proposal 3
To: tu4@localhost
EOD
grep "^\(Subject\|To\)" sendmail.out >sendmail.parts &&
test_cmp sendmail.parts expected
'
test_done