Bug 30144: (QA follow-up) Fix t/Ediorder.t for JSON servicing_instruction format

Bug 30144 changed Koha::Edifact::Order::gir_segments() to expect
servicing_instruction as a JSON-encoded array of instruction groups
(added by Bug 41709 while working with the older plain-string format
that predated Bug 30144's change was never adapted to match).

As a plain string no longer decodes as JSON, gir_segments() silently
skipped the servicing instruction elements, leaving the GIR split and
special-character tests comparing against undef.

Test plan:
1. prove t/Ediorder.t
   => 4 tests failed before this patch, all pass after
2. prove t/db_dependent/Koha/Edifact/Order.t
   => still passes

Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Pedro Amorim <pedro.amorim@openfifth.co.uk>
This commit is contained in:
Martin Renvoize 2026-09-08 14:53:09 +01:00 committed by Pedro Amorim
parent 58cda28f6a
commit b210605ef7
No known key found for this signature in database
GPG Key ID: 06B75BA7F3894D55
1 changed files with 4 additions and 2 deletions

View File

@ -3,6 +3,8 @@ use strict;
use warnings;
use FindBin qw( $Bin );
use JSON qw( encode_json );
use Test::NoWarnings;
use Test::More tests => 16;
use t::lib::Mocks;
@ -119,7 +121,7 @@ cmp_ok(
'Single Gir field OK'
);
$orderfields->{servicing_instruction} = 'S_I';
$orderfields->{servicing_instruction} = encode_json( [ [ { type => 'LVT', value => 'S_I' } ] ] );
@gsegs = Koha::Edifact::Order::gir_segments(
{
ol_fields => $orderfields,
@ -140,7 +142,7 @@ cmp_ok(
# Test that special characters are properly escaped in GIR segments
my $special_orderfields = {
budget_code => 'BUDGET?+',
servicing_instruction => "Note with 'special' chars:",
servicing_instruction => encode_json( [ [ { type => 'LVT', value => "Note with 'special' chars:" } ] ] ),
};
my @special_items = (
{