From 7f616a3643992e2766ce020a694246e81ec9140f Mon Sep 17 00:00:00 2001 From: Agustin Moyano Date: Wed, 22 Jan 2020 20:44:04 -0300 Subject: [PATCH] Bug 24487: Regresion test This patch introduces a regresion test where a path parameter is combined with 'contains' match criteria To test: 1. apply this patch 2. prove t/db_dependent/Koha/REST/Plugin/Objects.t Test should fail at this point. Signed-off-by: Tomas Cohen Arazi Signed-off-by: Martin Renvoize --- t/db_dependent/Koha/REST/Plugin/Objects.t | 31 ++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/t/db_dependent/Koha/REST/Plugin/Objects.t b/t/db_dependent/Koha/REST/Plugin/Objects.t index 2e162b21bc..a25eb21830 100644 --- a/t/db_dependent/Koha/REST/Plugin/Objects.t +++ b/t/db_dependent/Koha/REST/Plugin/Objects.t @@ -19,6 +19,7 @@ use Modern::Perl; use Koha::Acquisition::Orders; use Koha::Cities; +use Koha::Holds; # Dummy app for testing the plugin use Mojolicious::Lite; @@ -44,8 +45,18 @@ get '/orders' => sub { $c->render( status => 200, json => $orders ); }; +get '/patrons/:patron_id/holds' => sub { + my $c = shift; + my $params = $c->req->params->to_hash; + $params->{patron_id} = $c->stash("patron_id"); + $c->validation->output($params); + my $holds_set = Koha::Holds->new; + my $holds = $c->objects->search( $holds_set ); + $c->render( status => 200, json => {count => scalar(@$holds)} ); +}; + # The tests -use Test::More tests => 3; +use Test::More tests => 4; use Test::Mojo; use t::lib::TestBuilder; @@ -176,3 +187,21 @@ subtest 'objects.search helper, embed' => sub { $schema->storage->txn_rollback; }; + +subtest 'objects.search helper, with path parameters and _match' => sub { + plan tests => 4; + + $schema->storage->txn_begin; + + Koha::Holds->search()->delete; + + $builder->build_object({class=>"Koha::Holds", value => {borrowernumber => 10 }}); + + $t->get_ok('/patrons/1/holds?_match=exact') + ->json_is('/count' => 0, 'there should be no holds for borrower 1 with _match=exact'); + + $t->get_ok('/patrons/1/holds?_match=contains') + ->json_is('/count' => 0, 'there should be no holds for borrower 1 with _match=contains'); + + $schema->storage->txn_rollback; +}; -- 2.20.1