From 0c9820cb4912f4105a5e8bd6c3edb41ff5174b2c Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Tue, 23 Sep 2025 20:01:40 +0100 Subject: [PATCH] Bug 38489: Update EDI tests to use new file transport system The EDI test was still creating vendor_edi_accounts with transport='FILE' which no longer works after the migration to the file_transports system. Updated all test account creation to: - Create file_transports records with transport='local' - Link EDI accounts via file_transport_id instead of direct transport field - Set appropriate download/upload directories for local testing All EDI tests now pass with the new transport architecture. --- t/db_dependent/Koha/EDI.t | 129 +++++++++++++++++++----- t/db_dependent/Koha/Edifact/Transport.t | 2 +- 2 files changed, 106 insertions(+), 25 deletions(-) diff --git a/t/db_dependent/Koha/EDI.t b/t/db_dependent/Koha/EDI.t index 7bf26785cd8..7041f4ec715 100755 --- a/t/db_dependent/Koha/EDI.t +++ b/t/db_dependent/Koha/EDI.t @@ -59,16 +59,29 @@ subtest 'process_quote' => sub { $schema->storage->txn_begin; + # Create file transport for local testing + my $file_transport = $builder->build( + { + source => 'FileTransport', + value => { + name => 'Test Local Transport', + transport => 'local', + download_directory => $dirname, + upload_directory => $dirname, + } + } + ); + my $account = $builder->build( { source => 'VendorEdiAccount', value => { - description => 'test vendor', - transport => 'FILE', - plugin => '', - san => $test_san, - orders_enabled => 1, - auto_orders => 0, + description => 'test vendor', + file_transport_id => $file_transport->{file_transport_id}, + plugin => '', + san => $test_san, + orders_enabled => 1, + auto_orders => 0, } } ); @@ -228,16 +241,30 @@ subtest 'process_quote' => sub { plan tests => 7; $schema->storage->txn_begin; + + # Create file transport for local testing + my $file_transport = $builder->build( + { + source => 'FileTransport', + value => { + name => 'Test Auto Order Transport', + transport => 'local', + download_directory => $dirname, + upload_directory => $dirname, + } + } + ); + my $account = $builder->build( { source => 'VendorEdiAccount', value => { - description => 'auto order vendor', - transport => 'FILE', - plugin => '', - san => $test_san, - orders_enabled => 1, - auto_orders => 1, + description => 'auto order vendor', + file_transport_id => $file_transport->{file_transport_id}, + plugin => '', + san => $test_san, + orders_enabled => 1, + auto_orders => 1, } } ); @@ -315,14 +342,27 @@ subtest 'process_quote' => sub { $schema->storage->txn_begin; + # Create file transport for local testing + my $file_transport = $builder->build( + { + source => 'FileTransport', + value => { + name => 'Test Multi-item Transport', + transport => 'local', + download_directory => $dirname, + upload_directory => $dirname, + } + } + ); + # Create vendor EDI account my $account = $builder->build( { source => 'VendorEdiAccount', value => { - description => 'multi-item vendor', - transport => 'FILE', - plugin => '', + description => 'multi-item vendor', + file_transport_id => $file_transport->{file_transport_id}, + plugin => '', } } ); @@ -475,12 +515,25 @@ subtest 'process_quote' => sub { $schema->storage->txn_begin; + # Create file transport for local testing + my $file_transport = $builder->build( + { + source => 'FileTransport', + value => { + name => 'Test Error Transport', + transport => 'local', + download_directory => $dirname, + upload_directory => $dirname, + } + } + ); + my $account = $builder->build( { source => 'VendorEdiAccount', value => { - description => 'error test vendor', - transport => 'FILE', + description => 'error test vendor', + file_transport_id => $file_transport->{file_transport_id}, } } ); @@ -582,12 +635,25 @@ subtest 'process_quote' => sub { $schema->storage->txn_begin; + # Create file transport for local testing + my $file_transport = $builder->build( + { + source => 'FileTransport', + value => { + name => 'Test Multiple Message Transport', + transport => 'local', + download_directory => $dirname, + upload_directory => $dirname, + } + } + ); + my $account = $builder->build( { source => 'VendorEdiAccount', value => { - description => 'error test vendor', - transport => 'FILE', + description => 'error test vendor', + file_transport_id => $file_transport->{file_transport_id}, } } ); @@ -646,15 +712,31 @@ subtest 'process_invoice' => sub { $schema->storage->txn_begin; + # Get dirname for transport + my $dirname = ( $Bin =~ /^(.*\/t\/)/ ? $1 . 'edi_testfiles/' : q{} ); + + # Create file transport for local testing + my $file_transport = $builder->build( + { + source => 'FileTransport', + value => { + name => 'Test Invoice Transport', + transport => 'local', + download_directory => $dirname, + upload_directory => $dirname, + } + } + ); + # Add test EDI matching ean of test invoice file and ensure no plugins so we trigger core functions my $account = $builder->build( { source => 'VendorEdiAccount', value => { - description => 'test vendor', - transport => 'FILE', - plugin => '', - san => '5013546027173' + description => 'test vendor', + file_transport_id => $file_transport->{file_transport_id}, + plugin => '', + san => '5013546027173' } } ); @@ -694,7 +776,6 @@ subtest 'process_invoice' => sub { my $ordernumber2 = $order2->ordernumber; # Add test invoice file to the database for testing - my $dirname = ( $Bin =~ /^(.*\/t\/)/ ? $1 . 'edi_testfiles/' : q{} ); my $filename = 'INVOICE.CEI'; ok( -e $dirname . $filename, 'File INVOICE.CEI found' ); diff --git a/t/db_dependent/Koha/Edifact/Transport.t b/t/db_dependent/Koha/Edifact/Transport.t index 3e4efbb45ac..e676e62d067 100755 --- a/t/db_dependent/Koha/Edifact/Transport.t +++ b/t/db_dependent/Koha/Edifact/Transport.t @@ -21,7 +21,7 @@ my $account = $builder->build( { source => 'VendorEdiAccount', value => { - description => 'test vendor', transport => 'FILE', + description => 'test vendor', } } ); -- 2.51.0