From 448e3d91c4c01be7e0523e7cf57269891bced9d4 Mon Sep 17 00:00:00 2001 From: Nick Clemens Date: Mon, 3 Apr 2023 13:15:24 +0000 Subject: [PATCH] Bug 29234: Further clean Z3950 Tests We are deleting all authorised values in Session2.t and assuming they don't exist in Sesson.t This patch ensures the tests will work regardless of data in DB --- t/db_dependent/Koha/Z3950Responder/Session.t | 5 ++ t/db_dependent/Koha/Z3950Responder/Session2.t | 48 +++++++++++-------- 2 files changed, 34 insertions(+), 19 deletions(-) diff --git a/t/db_dependent/Koha/Z3950Responder/Session.t b/t/db_dependent/Koha/Z3950Responder/Session.t index c87fd9b995..347f7889e0 100755 --- a/t/db_dependent/Koha/Z3950Responder/Session.t +++ b/t/db_dependent/Koha/Z3950Responder/Session.t @@ -5,6 +5,7 @@ use Test::More tests => 3; use t::lib::TestBuilder; use C4::Items qw( GetMarcItem ); +use Koha::AuthorisedValues; use Koha::DateUtils qw( dt_from_string ); BEGIN { @@ -54,6 +55,10 @@ subtest 'add_item_status' => sub { my $item_field_2 = scalar $item_marc_2->field($itemtag); ## END SECOND ITEM ## + # We want to test the default values, so we remove custom status alias if present + my $available = Koha::AuthorisedValues->find({ category => 'Z3950_STATUS', authorised_value => 'AVAILABLE' }); + $available->delete if $available; + # Create the responder my $args={ PEER_NAME => 'PEER'}; my $zR = Koha::Z3950Responder->new({add_item_status_subfield => 'k'}); diff --git a/t/db_dependent/Koha/Z3950Responder/Session2.t b/t/db_dependent/Koha/Z3950Responder/Session2.t index 1f653d1b75..d2888315ba 100755 --- a/t/db_dependent/Koha/Z3950Responder/Session2.t +++ b/t/db_dependent/Koha/Z3950Responder/Session2.t @@ -5,6 +5,7 @@ use Test::More tests => 3; use t::lib::TestBuilder; use C4::Items qw( GetMarcItem ); +use Koha::AuthorisedValues; use Koha::Caches; use Koha::DateUtils qw( dt_from_string ); @@ -26,23 +27,32 @@ subtest 'add_item_status' => sub { plan tests => 2; # This time we are sustituting some values - $builder->schema->resultset( 'AuthorisedValue' )->delete_all(); - $builder->build({ - source => 'AuthorisedValue', - value => { - category => 'Z3950_STATUS', - authorised_value => 'AVAILABLE', - lib => "Free as a bird" - } - }); - $builder->build({ - source => 'AuthorisedValue', - value => { - category => 'Z3950_STATUS', - authorised_value => 'DAMAGED', - lib => "Borked completely" - } - }); + + my $available = Koha::AuthorisedValues->find({ category => 'Z3950_STATUS', authorised_value => 'AVAILABLE' }); + unless( $available ){ + $available = $builder->build_object({ + class => 'Koha::AuthorisedValues', + value => { + category => 'Z3950_STATUS', + authorised_value => 'AVAILABLE', + lib => "Free as a bird" + } + }); + } + my $available_status = $available->lib; + + my $damaged = Koha::AuthorisedValues->find({ category => 'Z3950_STATUS', authorised_value => 'DAMAGED' }); + unless( $damaged ){ + $damaged = $builder->build_object({ + class => 'Koha::AuthorisedValues', + value => { + category => 'Z3950_STATUS', + authorised_value => 'DAMAGED', + lib => "Borked completely" + } + }); + } + my $damaged_status = $damaged->lib; ## FIRST ITEM HAS ALL THE STATUSES ## my $item_1 = $builder->build_sample_item( @@ -82,10 +92,10 @@ subtest 'add_item_status' => sub { $zR->init_handler($args); $args->{HANDLE}->add_item_status($item_field_1); - is($item_field_1->subfield('k'),"Checked Out, Lost, Not for Loan, Borked completely, Withdrawn, In Transit, On Hold","All statuses added in one field as expected"); + is($item_field_1->subfield('k'),"Checked Out, Lost, Not for Loan, $damaged_status, Withdrawn, In Transit, On Hold","All statuses added in one field as expected"); $args->{HANDLE}->add_item_status($item_field_2); - is($item_field_2->subfield('k'),'Free as a bird',"Available status is 'Free as a bird' added as expected"); + is($item_field_2->subfield('k'),"$available_status","Available status is '$available_status' added as expected"); }; -- 2.30.2