Bug 29779: Make selenium tests return green even if lib is missing
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Mon, 3 Jan 2022 11:38:29 +0000 (12:38 +0100)
committerFridolin Somers <fridolin.somers@biblibre.com>
Tue, 1 Feb 2022 07:55:40 +0000 (21:55 -1000)
Some selenium tests are not correctly written and they fail is
Selenium::Remote::Driver is missing.

Test plan:
1. Remove the lib rm `pmpath Selenium::Remote::Driver`
2. prove t/db_dependent/selenium/
should return green

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
t/db_dependent/selenium/administration_tasks.t
t/db_dependent/selenium/basic_workflow.t
t/db_dependent/selenium/patrons_search.t
t/db_dependent/selenium/regressions.t
t/db_dependent/selenium/remove_from_cart.t
t/db_dependent/selenium/self_registration.t
t/db_dependent/selenium/update_child_to_adult.t

index 080400d..5440a5f 100755 (executable)
@@ -41,7 +41,7 @@ our ($cleanup_needed);
 
 SKIP: {
     eval { require Selenium::Remote::Driver; };
-    skip "Selenium::Remote::Driver is needed for selenium tests.", 1 if $@;
+    skip "Selenium::Remote::Driver is needed for selenium tests.", 3 if $@;
 
     $cleanup_needed = 1;
 
index 4bf121b..095c47c 100755 (executable)
@@ -85,14 +85,14 @@ our $sample_data = {
 };
 our ( $borrowernumber, $start, $prev_time, $cleanup_needed );
 
-$dbh->do(q|INSERT INTO itemtypes(itemtype) VALUES (?)|, undef, $sample_data->{itemtype}{itemtype});
-
 SKIP: {
     eval { require Selenium::Remote::Driver; };
     skip "Selenium::Remote::Driver is needed for selenium tests.", 22 if $@;
 
     $cleanup_needed = 1;
 
+    $dbh->do(q|INSERT INTO itemtypes(itemtype) VALUES (?)|, undef, $sample_data->{itemtype}{itemtype});
+
     open my $fh, '>>', '/tmp/output.txt';
 
     my $s = t::lib::Selenium->new;
index 5161282..0d33829 100755 (executable)
@@ -20,7 +20,7 @@ use Modern::Perl;
 use C4::Context;
 
 use utf8;
-use Test::More tests => 1;
+use Test::More;
 use Test::MockModule;
 
 use C4::Context;
@@ -30,7 +30,12 @@ use t::lib::Selenium;
 use t::lib::TestBuilder;
 
 eval { require Selenium::Remote::Driver; };
-skip "Selenium::Remote::Driver is needed for selenium tests.", 1 if $@;
+if ( $@ ) {
+    plan skip_all => "Selenium::Remote::Driver is needed for selenium tests.";
+} else {
+    plan tests => 1;
+}
+
 
 my $s             = t::lib::Selenium->new;
 my $driver        = $s->driver;
index 1ed7062..ce70667 100755 (executable)
@@ -20,7 +20,7 @@ use utf8;
 
 use C4::Context;
 
-use Test::More tests => 8;
+use Test::More;
 use Test::MockModule;
 
 use C4::Context;
@@ -33,7 +33,11 @@ use t::lib::TestBuilder;
 use t::lib::Mocks;
 
 eval { require Selenium::Remote::Driver; };
-skip "Selenium::Remote::Driver is needed for selenium tests.", 7 if $@;
+if ( $@ ) {
+    plan skip_all => "Selenium::Remote::Driver is needed for selenium tests.";
+} else {
+    plan tests => 7;
+}
 
 my $s = t::lib::Selenium->new;
 
index c1f4c6c..f477e99 100755 (executable)
@@ -19,7 +19,7 @@ use Modern::Perl;
 use File::Basename qw(dirname );
 
 use Test::WWW::Mechanize;
-use Test::More tests => 1;
+use Test::More;
 use Test::MockModule;
 
 use C4::Context;
@@ -30,7 +30,11 @@ use t::lib::Mocks;
 use t::lib::Mocks::Zebra;
 
 eval { require Selenium::Remote::Driver; };
-skip "Selenium::Remote::Driver is needed for selenium tests.", 1 if $@;
+if ( $@ ) {
+    plan skip_all => "Selenium::Remote::Driver is needed for selenium tests.";
+} else {
+    plan tests => 1;
+}
 
 my $s = t::lib::Selenium->new;
 
@@ -101,5 +105,5 @@ subtest 'OPAC - Remove from cart' => sub {
 
 END {
     C4::Context->set_preference('SearchEngine', $SearchEngine_value);
-    $mock_zebra->cleanup;
+    $mock_zebra->cleanup if $mock_zebra;
 };
index 737dd69..228db4b 100755 (executable)
@@ -20,7 +20,7 @@ use utf8;
 
 use C4::Context;
 
-use Test::More tests => 1;
+use Test::More;
 use Test::MockModule;
 
 use C4::Context;
@@ -30,7 +30,11 @@ use t::lib::TestBuilder;
 use t::lib::Mocks;
 
 eval { require Selenium::Remote::Driver; };
-skip "Selenium::Remote::Driver is needed for selenium tests.", 1 if $@;
+if ( $@ ) {
+    plan skip_all => "Selenium::Remote::Driver is needed for selenium tests.";
+} else {
+    plan tests => 1;
+}
 
 my $s = t::lib::Selenium->new;
 
index 1b20b8b..f821fe6 100755 (executable)
@@ -19,7 +19,7 @@ use Modern::Perl;
 
 use C4::Context;
 
-use Test::More tests => 1;
+use Test::More;
 use Test::MockModule;
 
 use C4::Context;
@@ -29,7 +29,11 @@ use t::lib::Selenium;
 use t::lib::TestBuilder;
 
 eval { require Selenium::Remote::Driver; };
-skip "Selenium::Remote::Driver is needed for selenium tests.", 1 if $@;
+if ( $@ ) {
+    plan skip_all => "Selenium::Remote::Driver is needed for selenium tests.";
+} else {
+    plan tests => 1;
+}
 
 my $s             = t::lib::Selenium->new;
 my $driver        = $s->driver;