From 6dd1c401ff46c681eccbcdcb8309b65532a89464 Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Thu, 5 Aug 2021 08:43:32 +0100 Subject: [PATCH] Bug 28803: Add unit tests This patch updates Letters.t to confirm that invalid email addresses in the message_queue should not throw an exception when sending mail but instead set the status to failed and pass error details to the end user. --- t/db_dependent/Letters.t | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/t/db_dependent/Letters.t b/t/db_dependent/Letters.t index 4ba2105560..f6621d2bb6 100755 --- a/t/db_dependent/Letters.t +++ b/t/db_dependent/Letters.t @@ -924,7 +924,7 @@ subtest 'Test limit parameter for SendQueuedMessages' => sub { subtest 'Test message_id parameter for SendQueuedMessages' => sub { - plan tests => 6; + plan tests => 7; my $dbh = C4::Context->dbh; @@ -952,13 +952,11 @@ subtest 'Test message_id parameter for SendQueuedMessages' => sub { 'from_address' => 'root@localhost.' # invalid KohaAdminEmailAddress }; my $message_id = C4::Letters::EnqueueLetter($my_message); - throws_ok { - C4::Letters::SendQueuedMessages( { message_id => $message_id } ); - } 'Koha::Exceptions::BadParameter', - 'Exception thrown if invalid email is passed'; + my $processed = C4::Letters::SendQueuedMessages( { message_id => $message_id } ); + is( $processed, 1, 'Processed 1 message when one message_id passed' ); my $message_1 = C4::Letters::GetMessage($message_id); - # FIXME must be 'failed' - is( $message_1->{status}, 'pending', 'Invalid KohaAdminEmailAddress => status pending' ); + is( $message_1->{status}, 'failed', 'Invalid KohaAdminEmailAddress => status failed' ); + is( $message_1->{failure_code}, 'INVALID_EMAIL', 'Failure code set correctly for invalid email parameter'); $my_message->{from_address} = 'root@example.org'; # valid KohaAdminEmailAddress $message_id = C4::Letters::EnqueueLetter($my_message); @@ -967,6 +965,6 @@ subtest 'Test message_id parameter for SendQueuedMessages' => sub { "SendQueuedMessages is using the mocked send_or_die routine"; $message_1 = C4::Letters::GetMessage($message_1->{message_id}); my $message_2 = C4::Letters::GetMessage($message_id); - is( $message_1->{status}, 'pending', 'Message 1 status is unchanged' ); # Must be 'failed' + is( $message_1->{status}, 'failed', 'Message 1 status is unchanged' ); is( $message_2->{status}, 'sent', 'Valid KohaAdminEmailAddress => status sent' ); }; -- 2.20.1