From 3b60e3e0859b9c27ab7fd460b031819c9162b259 Mon Sep 17 00:00:00 2001 From: Matt Blenkinsop Date: Wed, 7 Dec 2022 11:12:11 +0000 Subject: [PATCH] Bug 32013: (follow-up) Add unit test A unit test has been added to show the pass-through of skip_record_index from AddRenewal() to the Item->store() method. Test plan: 1) In the shell run prove -vv t/db_dependent/Koha/SearchEngine/Indexer.t 2) Observe Subtest 3: Test AddRenewal indexer call 3) All four tests should pass Mentored-by: Martin Renvoize Signed-off-by: Nick Clemens --- t/db_dependent/Koha/SearchEngine/Indexer.t | 50 +++++++++++++++++++++- 1 file changed, 48 insertions(+), 2 deletions(-) diff --git a/t/db_dependent/Koha/SearchEngine/Indexer.t b/t/db_dependent/Koha/SearchEngine/Indexer.t index 5dca8c7a77a..726ac6c902f 100755 --- a/t/db_dependent/Koha/SearchEngine/Indexer.t +++ b/t/db_dependent/Koha/SearchEngine/Indexer.t @@ -4,7 +4,7 @@ use Modern::Perl; -use Test::More tests => 2; +use Test::More tests => 3; use Test::Warn; use MARC::Field; @@ -17,7 +17,7 @@ use t::lib::Mocks; #use C4::Biblio qw//; use C4::AuthoritiesMarc qw( AddAuthority DelAuthority merge ); use C4::Biblio qw( ModZebra ModBiblio ModBiblioMarc DelBiblio ); -use C4::Circulation qw( MarkIssueReturned AddReturn LostItem ); +use C4::Circulation qw( MarkIssueReturned AddReturn LostItem AddRenewal ); use C4::Items qw( ModDateLastSeen ModItemTransfer ); use Koha::Database; use Koha::SearchEngine::Elasticsearch; @@ -246,4 +246,50 @@ subtest 'Test indexer calls' => sub { }; +subtest 'Test AddRenewal indexer call' => sub { + plan tests => 4; + + my @engines = ('Zebra'); + eval { Koha::SearchEngine::Elasticsearch->get_elasticsearch_params; }; + push @engines, 'Elasticsearch' unless $@; + SKIP: { + skip 'Elasticsearch configuration not available', 20 + if scalar @engines == 1; + } + + for my $engine ( @engines ){ + t::lib::Mocks::mock_preference( 'SearchEngine', $engine ); + my $mock_index = Test::MockModule->new("Koha::SearchEngine::".$engine."::Indexer"); + + $mock_index->mock( index_records => sub { + warn $engine; + my ($package, undef, undef) = caller; + warn $package; + }); + + my $biblio = $builder->build_sample_biblio(); + my $patron = $builder->build_object( { class => 'Koha::Patrons' } ); + my $item = $builder->build_sample_item({ + biblionumber => $biblio->biblionumber, + onloan => '2020-02-02', + datelastseen => '2020-01-01', + replacementprice => 0 + }); + my $issue = $builder->build({ + source => 'Issue', + value => { + itemnumber => $item->itemnumber + } + }); + + warnings_are{ + AddRenewal($patron->borrowernumber, $item->itemnumber, $item->homebranch, undef, undef, undef, 0); + } [$engine,"Koha::Item"], "index_records is called for $engine when adding a renewal (AddRenewal())"; + warnings_are{ + AddRenewal($patron->borrowernumber, $item->itemnumber, undef, undef, undef, undef, 0, 1); + } undef, "index_records is not called for $engine when adding a renewal (AddRenewal()) with skip_record_index"; + + } +}; + $schema->storage->txn_rollback; -- 2.39.0