aboutsummaryrefslogtreecommitdiff
path: root/t/tests/sietima/role/subscriberonly/drop.t
diff options
context:
space:
mode:
Diffstat (limited to 't/tests/sietima/role/subscriberonly/drop.t')
-rw-r--r--t/tests/sietima/role/subscriberonly/drop.t80
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 => [],
);
};