From b89715149cdf81eaa2ab169347571c19e5d7692b Mon Sep 17 00:00:00 2001 From: Maikel Linke Date: Tue, 15 Feb 2022 13:17:31 +1100 Subject: [PATCH] Sanitise pagination input for new API --- app/controllers/concerns/json_api_pagination.rb | 2 +- spec/requests/api/v1/customers_spec.rb | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/app/controllers/concerns/json_api_pagination.rb b/app/controllers/concerns/json_api_pagination.rb index 1bf53351d4..b014e3119b 100644 --- a/app/controllers/concerns/json_api_pagination.rb +++ b/app/controllers/concerns/json_api_pagination.rb @@ -53,7 +53,7 @@ module JsonApiPagination end def current_page - params[:page] || 1 + (params[:page] || 1).to_i end def total_pages diff --git a/spec/requests/api/v1/customers_spec.rb b/spec/requests/api/v1/customers_spec.rb index de80b87901..3884d09354 100644 --- a/spec/requests/api/v1/customers_spec.rb +++ b/spec/requests/api/v1/customers_spec.rb @@ -73,11 +73,14 @@ describe "Customers", type: :request do describe "pagination" do it "renders the first page" do - pending "pagination logic compares string with integer" - get "/api/v1/customers", params: { page: "1" } expect(json_response_ids).to eq [customer1.id.to_s, customer2.id.to_s] end + + it "renders the second page" do + get "/api/v1/customers", params: { page: "2", per_page: "1" } + expect(json_response_ids).to eq [customer2.id.to_s] + end end post "Create customer" do