diff options
Diffstat (limited to 't/tests/sietima/role/subscriberonly/moderate.t')
-rw-r--r-- | t/tests/sietima/role/subscriberonly/moderate.t | 56 |
1 files changed, 53 insertions, 3 deletions
diff --git a/t/tests/sietima/role/subscriberonly/moderate.t b/t/tests/sietima/role/subscriberonly/moderate.t index a641a55..be996e3 100644 --- a/t/tests/sietima/role/subscriberonly/moderate.t +++ b/t/tests/sietima/role/subscriberonly/moderate.t @@ -29,8 +29,7 @@ subtest 'from subscriber' => sub { ); }; -subtest 'from non-subscriber' => sub { - $ms->clear; +sub test_from_non_sub() { test_sending( sietima => $s, mail => { from=>'someone@users.example.com' }, @@ -51,6 +50,11 @@ subtest 'from non-subscriber' => sub { to => [$admin], }], ); +} + +subtest 'from non-subscriber' => sub { + $ms->clear; + test_from_non_sub; is( my $to_moderate = $ms->retrieve_by_tags('moderation'), @@ -66,12 +70,58 @@ subtest 'from non-subscriber' => sub { 'mails was held for moderation', ); - transport->clear_deliveries; + like( + run_cmdline_sub($s, 'list_mails_in_moderation_queue'), + hash { + field exit => 0; + field error => DNE; + field output => qr{\A + ^\N+\b1 \s+ message\N+$ \n + ^\* \s+ \w+ \s+ someone\@users\.example\.com + \s+ "Test[ ]Message" + \s+ \(\N+?\)$ + }smx; + }, + 'mails in queue should be listed from command line', + ); + my $msg_id = $to_moderate->[0]->{id}; + + like( + run_cmdline_sub( + $s, 'show_mail_from_moderation_queue', + {}, { 'mail-id' => $msg_id }, + ), + hash { + field exit => 0; + field error => DNE; + field output => qr{\A + ^Message \s+ \w+:$ + .*? + ^From: \s+ someone\@users\.example\.com \s*$ + }smx; + }, + 'mail in queue should be shown from command line', + ); + + transport->clear_deliveries; $s->resume($msg_id); deliveries_are( to => \@subscriber_addresses, ); }; +subtest 'from non-subscriber, drop' => sub { + $ms->clear; + test_from_non_sub; + + my $msg_id = $ms->retrieve_by_tags('moderation')->[0]{id}; + $s->drop($msg_id); + is( + $ms->retrieve_by_tags('moderation'), + [], + 'message should be dropped', + ); +}; + done_testing; |