Bug 33214: (follow-up) Make tests less fragile

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This commit is contained in:
Tomas Cohen Arazi 2023-03-13 16:53:25 -03:00
parent 52315d60f3
commit 12e3e91c13
No known key found for this signature in database
GPG Key ID: 0A272EA1B2F3C15F
1 changed files with 11 additions and 18 deletions

View File

@ -43,7 +43,6 @@ subtest 'ExpandCodedFields tests' => sub {
my $homebranch = $builder->build_object( { class => 'Koha::Libraries' } );
my $holdingbranch = $builder->build_object( { class => 'Koha::Libraries' } );
diag("Homebranch: " . $homebranch->branchcode . " : " . $homebranch->branchname);
# Add itemtypes
my $itemtype = $builder->build_object( { class => 'Koha::ItemTypes' } );
@ -51,25 +50,19 @@ subtest 'ExpandCodedFields tests' => sub {
my $biblio = $builder->build_sample_biblio;
my $record = $biblio->metadata->record;
# Add an av
my $av = $builder->build_object( { class => 'Koha::AuthorisedValues' } );
# Suppress the record to test that suppression is never expanded
$record->field('942')->update( n => 1 );
# Add an AV ended field to test for AV expansion
$record->append_fields(
MARC::Field->new( '590', '', '', a => 'CODE' ),
MARC::Field->new( '590', '', '', a => $av->authorised_value ),
);
Koha::AuthorisedValueCategory->new({ category_name => 'TEST' })->store;
Koha::AuthorisedValue->new(
{
category => 'TEST',
authorised_value => 'CODE',
lib => 'Description should show',
lib_opac => 'Description should show OPAC'
}
)->store;
my $mss = Koha::MarcSubfieldStructures->find({tagfield => "590", tagsubfield => "a", frameworkcode => $biblio->frameworkcode });
$mss->update({ authorised_value => "TEST" });
$mss->update( { authorised_value => $av->category } );
my $cache = Koha::Caches->get_instance;
$cache->clear_from_cache("MarcCodedFields-");
@ -77,7 +70,7 @@ subtest 'ExpandCodedFields tests' => sub {
$cache->clear_from_cache("libraries:name");
$cache->clear_from_cache("itemtype:description:en");
$cache->clear_from_cache("cn_sources:description");
$cache->clear_from_cache("AV_descriptions:LOST");
$cache->clear_from_cache("AV_descriptions:" . $av->category);
C4::Biblio::ModBiblio( $record, $biblio->biblionumber );
$biblio = Koha::Biblios->find( $biblio->biblionumber);
@ -94,7 +87,7 @@ subtest 'ExpandCodedFields tests' => sub {
);
is( $record->field('590')->subfield('a'), 'CODE', 'Record prior to filtering contains AV Code' );
is( $record->field('590')->subfield('a'), $av->authorised_value, 'Record prior to filtering contains AV Code' );
is( $record->field('942')->subfield('n'), 1, 'Record suppression is numeric prior to filtering' );
is( $record->field('952')->subfield('a'), $homebranch->branchcode, 'Record prior to filtering contains homebranch branchcode' );
is( $record->field('952')->subfield('b'), $holdingbranch->branchcode, 'Record prior to filtering contains holdingbranch branchcode' );
@ -110,8 +103,8 @@ subtest 'ExpandCodedFields tests' => sub {
my $result = $processor->process( $record );
is( ref($result), 'MARC::Record', 'It returns a reference to a MARC::Record object' );
is( $result->field('590')->subfield('a'), 'Description should show OPAC', 'Returned record contains AV OPAC description (interface defaults to opac)' );
is( $record->field('590')->subfield('a'), 'Description should show OPAC', 'Original record now contains AV OPAC description (interface defaults to opac)' );
is( $result->field('590')->subfield('a'), $av->lib_opac, 'Returned record contains AV OPAC description (interface defaults to opac)' );
is( $record->field('590')->subfield('a'), $av->lib_opac, 'Original record now contains AV OPAC description (interface defaults to opac)' );
is( $record->field('942')->subfield('n'), 1, 'Record suppression is still numeric after filtering' );
is( $record->field('952')->subfield('a'), $homebranch->branchname, 'Record now contains homebranch branchname' );
is( $record->field('952')->subfield('b'), $holdingbranch->branchname, 'Record now contains holdingbranch branchname' );
@ -119,12 +112,12 @@ subtest 'ExpandCodedFields tests' => sub {
# reset record for next test
$record = $biblio->metadata->record;
is( $record->field('590')->subfield('a'), 'CODE', 'Record reset contains AV Code' );
is( $record->field('590')->subfield('a'), $av->authorised_value, 'Record reset contains AV Code' );
# set interface
$processor->options({ interface => 'intranet' });
$result = $processor->process( $record );
is( $record->field('590')->subfield('a'), 'Description should show', 'Original record now contains AV description (interface set to intranet)' );
is( $record->field('590')->subfield('a'), $av->lib, 'Original record now contains AV description (interface set to intranet)' );
is( $record->field('942')->subfield('n'), 1, 'Item suppression field remains numeric after filtering' );
$schema->storage->txn_rollback();