diff options
Diffstat (limited to 't/tests/sietima/role/subscriberonly/drop.t')
-rw-r--r-- | t/tests/sietima/role/subscriberonly/drop.t | 80 |
1 files changed, 9 insertions, 71 deletions
diff --git a/t/tests/sietima/role/subscriberonly/drop.t b/t/tests/sietima/role/subscriberonly/drop.t index 886acce..165268d 100644 --- a/t/tests/sietima/role/subscriberonly/drop.t +++ b/t/tests/sietima/role/subscriberonly/drop.t @@ -3,91 +3,29 @@ use strict; use warnings; use 5.020; use lib 't/lib'; -use Test2::Bundle::Extended; -use Test2::Tools::MoreCompare qw(bag); -use Test2::Plugin::DieOnFail; -use Email::Stuffer; -use Email::Sender::Transport::Test; -use Data::Printer; -use Sietima; - -my $return_path = 'sietima-test@list.example.com'; -my $transport = Email::Sender::Transport::Test->new; -sub make_sietima { - $transport->clear_deliveries; - Sietima - ->with_traits('SubscriberOnly::Drop') - ->new({ - return_path => $return_path, - transport => $transport, - @_, - }); -} - -sub make_mail { - my (%args) = @_; - Email::Stuffer - ->from($args{from}||'someone@users.example.com') - ->to($args{no}||$return_path) - ->text_body($args{body}||'some simple message') - ->email; -} +use Test::Sietima; my @subscriber_addresses = ( 'one@users.example.com', 'two@users.example.com', ); my $s = make_sietima( + with_traits => ['SubscriberOnly::Drop'], subscribers => [@subscriber_addresses], ); subtest 'from subscriber' => sub { - $transport->clear_deliveries; - my $m = make_mail(from=>'one@users.example.com'); - - ok( - lives { $s->handle_mail($m) }, - 'should handle the mail', - $@, - ); - - my @deliveries = $transport->deliveries; - is( - \@deliveries, - array { - item hash { - field envelope => hash { - field from => $return_path; - field to => bag { - for (@subscriber_addresses) { - item object { call address => $_ }; - } - }; - }; - }; - end(); - }, - 'there should be two deliveries', - np @deliveries, + test_sending( + sietima => $s, + mail => { from=>'one@users.example.com' }, ); }; subtest 'from non-subscriber' => sub { - $transport->clear_deliveries; - my $m = make_mail(from=>'someone@users.example.com'); - - ok( - lives { $s->handle_mail($m) }, - 'should handle the mail', - $@, - ); - - my @deliveries = $transport->deliveries; - is( - \@deliveries, - [], - 'there should be no deliveries', - np @deliveries, + test_sending( + sietima => $s, + mail => { from=>'someone@users.example.com' }, + to => [], ); }; |