Bug 17642: Do not explode if no authorised value exist
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Thu, 17 Nov 2016 11:23:57 +0000 (11:23 +0000)
committerKyle M Hall <kyle@bywatersolutions.com>
Fri, 18 Nov 2016 15:52:01 +0000 (15:52 +0000)
Can't call method "lib" on an undefined value at
/home/vagrant/kohaclone/Koha/AuthorisedValues.pm line 137.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Koha/AuthorisedValues.pm
t/db_dependent/AuthorisedValues.t

index d9e6d68..5c73052 100644 (file)
@@ -134,6 +134,7 @@ sub get_description_by_koha_field {
     return $cached if $cached;
 
     my $av = $self->find_by_koha_field($params);
+    return {} unless defined $av;
     my $descriptions = { lib => $av->lib, opac_description => $av->opac_description };
     $memory_cache->set_in_cache( $cache_key, $descriptions );
     return $descriptions;
index 5f344d3..6d44a72 100644 (file)
@@ -174,7 +174,7 @@ subtest 'search_by_*_field + find_by_koha_field + get_description' => sub {
         is( $av, undef, );
     };
     subtest 'get_description_by_koha_field' => sub {
-        plan tests => 3;
+        plan tests => 4;
         my $descriptions;
 
         # Test authorised_value = 0
@@ -199,6 +199,11 @@ subtest 'search_by_*_field + find_by_koha_field + get_description' => sub {
         $descriptions = Koha::AuthorisedValues->get_description_by_koha_field(
             { kohafield => 'items.restricted', authorised_value => undef } );
         is_deeply( $descriptions, {}, ) ;    # This could be arguable, we could return undef instead
+
+        # No authorised_value
+        $descriptions = Koha::AuthorisedValues->get_description_by_koha_field(
+            { kohafield => 'items.restricted', authorised_value => "does not exist" } );
+        is_deeply( $descriptions, {}, ) ;    # This could be arguable, we could return undef instead
     };
     subtest 'get_descriptions_by_koha_field' => sub {
         plan tests => 1;