From 8b957a69d4449bedd0f593cf946e5fde0e8d7a69 Mon Sep 17 00:00:00 2001 From: Kyle Hall Date: Wed, 20 Jul 2022 12:32:58 -0400 Subject: [PATCH] Bug 31202: Don't remove optional SIP fields with a value of "0" MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit If the value of a SIP field is "0", that evaluates to false, so any calls to maybe_add with a value of "0" will not get added to the SIP response message. Test Plan: 1) Apply this patch 2) prove t/db_dependent/SIP/Message.t Signed-off-by: Michal Urban JK: Adjust commit title Signed-off-by: Joonas Kylmälä Signed-off-by: Tomas Cohen Arazi --- C4/SIP/Sip.pm | 5 ++++- t/db_dependent/SIP/Message.t | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/C4/SIP/Sip.pm b/C4/SIP/Sip.pm index bd834f2447..4d662a26b7 100644 --- a/C4/SIP/Sip.pm +++ b/C4/SIP/Sip.pm @@ -108,7 +108,10 @@ sub maybe_add { $value =~ s/$regex->{find}/$regex->{replace}/g; } } - return (defined($value) && $value) ? add_field($fid, $value) : ''; + + return ( defined($value) && length($value) ) + ? add_field( $fid, $value ) + : ''; } # diff --git a/t/db_dependent/SIP/Message.t b/t/db_dependent/SIP/Message.t index 162edfb6d6..fc0e11944b 100755 --- a/t/db_dependent/SIP/Message.t +++ b/t/db_dependent/SIP/Message.t @@ -115,7 +115,7 @@ subtest 'Test hold_patron_bcode' => sub { subtest 'hold_patron_name() tests' => sub { - plan tests => 2; + plan tests => 3; my $schema = Koha::Database->new->schema; $schema->storage->txn_begin; @@ -145,6 +145,9 @@ subtest 'hold_patron_name() tests' => sub { my $resp = C4::SIP::Sip::maybe_add( FID_CALL_NUMBER, $sip_item->hold_patron_name, $server ); is( $resp, q{}, "maybe_add returns empty string for SIP item with no hold returns empty string" ); + $resp = C4::SIP::Sip::maybe_add( FID_CALL_NUMBER, "0", $server ); + is( $resp, q{CS0|}, "maybe_add will create the field of the string '0'" ); + $schema->storage->txn_rollback; }; -- 2.39.5