From aecc97b3f555575a54baaae5746e97794839125b Mon Sep 17 00:00:00 2001 From: Aleisha Amohia Date: Wed, 20 Oct 2021 17:02:28 +1300 Subject: [PATCH] Bug 24718: Holds API fixes for datetime --- api/v1/swagger/definitions/hold.yaml | 4 ++-- api/v1/swagger/paths/holds.yaml | 6 +++--- t/db_dependent/api/v1/holds.t | 14 ++++++++------ 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/api/v1/swagger/definitions/hold.yaml b/api/v1/swagger/definitions/hold.yaml index f97c3e216b8..6e5fc9082c2 100644 --- a/api/v1/swagger/definitions/hold.yaml +++ b/api/v1/swagger/definitions/hold.yaml @@ -11,7 +11,7 @@ properties: type: - string - "null" - format: date + format: date-time description: The date the hold was placed biblio_id: type: integer @@ -77,7 +77,7 @@ properties: type: - string - "null" - format: date + format: date-time description: The date the hold expires lowest_priority: type: boolean diff --git a/api/v1/swagger/paths/holds.yaml b/api/v1/swagger/paths/holds.yaml index 7a1055e3915..caea99be940 100644 --- a/api/v1/swagger/paths/holds.yaml +++ b/api/v1/swagger/paths/holds.yaml @@ -19,7 +19,7 @@ in: query description: Hold type: string - format: date + format: date-time - name: biblio_id in: query description: Internal biblio identifier @@ -163,7 +163,7 @@ type: - string - "null" - format: date + format: date-time item_id: description: Internal item identifier type: @@ -177,7 +177,7 @@ type: - string - "null" - format: date + format: date-time notes: description: Notes related to this hold type: diff --git a/t/db_dependent/api/v1/holds.t b/t/db_dependent/api/v1/holds.t index 8632c259400..467f8b41e41 100755 --- a/t/db_dependent/api/v1/holds.t +++ b/t/db_dependent/api/v1/holds.t @@ -159,7 +159,7 @@ my $post_data = { biblio_id => $biblio_1->biblionumber, item_id => $item_1->itemnumber, pickup_library_id => $branchcode, - expiration_date => output_pref( { dt => $expiration_date, dateformat => 'iso', dateonly => 1 } ), + expiration_date => output_pref( { dt => $expiration_date, dateformat => 'iso' } ), }; my $patch_data = { priority => 2, @@ -254,7 +254,7 @@ subtest "Test endpoints with permission" => sub { $t->get_ok( "//$userid_1:$password@/api/v1/holds?patron_id=" . $patron_1->borrowernumber ) ->status_is(200) ->json_is('/0/hold_id', $reserve_id) - ->json_is('/0/expiration_date', output_pref({ dt => $expiration_date, dateformat => 'iso', dateonly => 1 })) + ->json_is('/0/expiration_date', output_pref({ dt => $expiration_date, dateformat => 'iso' })) ->json_is('/0/pickup_library_id', $branchcode); $t->post_ok( "//$userid_3:$password@/api/v1/holds" => json => $post_data ) @@ -322,15 +322,15 @@ subtest 'test AllowHoldDateInFuture' => sub { $dbh->do('DELETE FROM reserves'); - my $future_hold_date = DateTime->now->add(days => 10)->truncate( to => 'day' ); + my $future_hold_date = DateTime->now->add(days => 10); my $post_data = { patron_id => $patron_1->borrowernumber, biblio_id => $biblio_1->biblionumber, item_id => $item_1->itemnumber, pickup_library_id => $branchcode, - expiration_date => output_pref( { dt => $expiration_date, dateformat => 'iso', dateonly => 1 } ), - hold_date => output_pref( { dt => $future_hold_date, dateformat => 'iso', dateonly => 1 } ), + expiration_date => output_pref( { dt => $expiration_date, dateformat => 'iso' } ), + hold_date => output_pref( { dt => $future_hold_date, dateformat => 'iso' } ), }; t::lib::Mocks::mock_preference( 'AllowHoldDateInFuture', 0 ); @@ -340,6 +340,8 @@ subtest 'test AllowHoldDateInFuture' => sub { ->json_has('/error'); t::lib::Mocks::mock_preference( 'AllowHoldDateInFuture', 1 ); + t::lib::Mocks::mock_preference( 'HourBasedHolds', 1 ); + t::lib::Mocks::mock_preference( 'dateformat', 'rfc3339' ); # Make sure pickup location checks doesn't get in the middle my $mock_biblio = Test::MockModule->new('Koha::Biblio'); @@ -349,7 +351,7 @@ subtest 'test AllowHoldDateInFuture' => sub { $t->post_ok( "//$userid_3:$password@/api/v1/holds" => json => $post_data ) ->status_is(201) - ->json_is('/hold_date', output_pref({ dt => $future_hold_date, dateformat => 'iso', dateonly => 1 })); + ->json_is('/hold_date', output_pref({ dt => $future_hold_date, dateformat => 'iso' })); }; $schema->storage->txn_rollback; -- 2.30.2