From 5594bc1152355426f790d1eb62c6bd995ce41427 Mon Sep 17 00:00:00 2001 From: Andrew Isherwood Date: Fri, 9 Nov 2018 14:36:48 +0000 Subject: [PATCH] Bug 20600: (follow-up) Fix unit tests The unit tests now need to be aware of the calculated placed_formatted and updated_formatted properties in the API response object --- t/db_dependent/api/v1/illrequests.t | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/t/db_dependent/api/v1/illrequests.t b/t/db_dependent/api/v1/illrequests.t index 44fcd9a292..b00470860b 100644 --- a/t/db_dependent/api/v1/illrequests.t +++ b/t/db_dependent/api/v1/illrequests.t @@ -28,6 +28,7 @@ use t::lib::Mocks; use C4::Auth; use Koha::Illrequests; +use Koha::DateUtils qw( format_sqldatetime ); my $schema = Koha::Database->new->schema; my $builder = t::lib::TestBuilder->new; @@ -94,11 +95,13 @@ subtest 'list() tests' => sub { } ); + my $req_formatted = add_formatted($illrequest); + # One illrequest created, should get returned $tx = $t->ua->build_tx( GET => '/api/v1/illrequests' ); $tx->req->cookies( { name => 'CGISESSID', value => $session_id } ); $tx->req->env( { REMOTE_ADDR => $remote_address } ); - $t->request_ok($tx)->status_is(200)->json_is( [ $illrequest->unblessed ] ); + $t->request_ok($tx)->status_is(200)->json_is( [ $req_formatted ] ); # One illrequest created, returned with augmented data $tx = $t->ua->build_tx( GET => @@ -123,12 +126,14 @@ subtest 'list() tests' => sub { } ); + my $req2_formatted = add_formatted($illrequest2); + # Two illrequest created, should get returned $tx = $t->ua->build_tx( GET => '/api/v1/illrequests' ); $tx->req->cookies( { name => 'CGISESSID', value => $session_id } ); $tx->req->env( { REMOTE_ADDR => $remote_address } ); $t->request_ok($tx)->status_is(200) - ->json_is( [ $illrequest->unblessed, $illrequest2->unblessed ] ); + ->json_is( [ $req_formatted, $req2_formatted ] ); # Warn on unsupported query parameter $tx = $t->ua->build_tx( GET => '/api/v1/illrequests?request_blah=blah' ); @@ -141,6 +146,27 @@ subtest 'list() tests' => sub { $schema->storage->txn_rollback; }; +sub add_formatted { + my $req = shift; + my @format_dates = ( 'placed', 'updated' ); + # We need to embellish the request with properties that the API + # controller calculates on the fly + my $req_unblessed = $req->unblessed; + # Create new "formatted" columns for each date column + # that needs formatting + foreach my $field(@format_dates) { + if (defined $req_unblessed->{$field}) { + $req_unblessed->{$field . "_formatted"} = format_sqldatetime( + $req_unblessed->{$field}, + undef, + undef, + 1 + ); + } + } + return $req_unblessed; +} + sub create_user_and_session { my $args = shift; -- 2.11.0