From 850308faaba761be908239d1e84f435570c6e2f3 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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. Signed-off-by: Kyle M Hall Signed-off-by: Joonas Kylmälä Signed-off-by: Jonathan Druart Signed-off-by: Kyle M Hall --- 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 3b3828af10..75c565a0be 100755 --- a/t/db_dependent/Letters.t +++ b/t/db_dependent/Letters.t @@ -971,7 +971,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; @@ -999,13 +999,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); @@ -1014,6 +1012,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.39.5