From 2951d0fdf88352f86cd7e34366284ed7a6c60bbf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Wed, 6 Sep 2023 15:13:20 +0200 Subject: [PATCH] Add and apply Rails/ResponseParsedBody rubocop rule This rule was introduced in rubocop-rails 2.18.0. Since using `response.parsed_body` is shorter than using `JSON.parse(response.body)`, this also means we can group some lines in one. --- .rubocop.yml | 3 +++ spec/controllers/admin/api/stats_controller_spec.rb | 12 +++--------- spec/controllers/graphql_controller_spec.rb | 10 +++++----- spec/controllers/installation_controller_spec.rb | 4 ++-- 4 files changed, 13 insertions(+), 16 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index dc5145c57..fb180b4c0 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -408,6 +408,9 @@ Rails/RelativeDateConstant: Rails/RequestReferer: Enabled: true +Rails/ResponseParsedBody: + Enabled: true + Rails/ReversibleMigration: Enabled: true diff --git a/spec/controllers/admin/api/stats_controller_spec.rb b/spec/controllers/admin/api/stats_controller_spec.rb index 08503ecef..1f07a554d 100644 --- a/spec/controllers/admin/api/stats_controller_spec.rb +++ b/spec/controllers/admin/api/stats_controller_spec.rb @@ -29,9 +29,7 @@ describe Admin::Api::StatsController, :admin do get :show, params: { event: "foo" } expect(response).to be_ok - - data = JSON.parse(response.body) - expect(data).to eq "x" => ["2015-01-01", "2015-01-02"], "Foo" => [2, 1] + expect(response.parsed_body).to eq "x" => ["2015-01-01", "2015-01-02"], "Foo" => [2, 1] end end @@ -47,9 +45,7 @@ describe Admin::Api::StatsController, :admin do get :show, params: { visits: true } expect(response).to be_ok - - data = JSON.parse(response.body) - expect(data).to eq "x" => ["2015-01-01", "2015-01-02"], "Visits" => [2, 1] + expect(response.parsed_body).to eq "x" => ["2015-01-01", "2015-01-02"], "Visits" => [2, 1] end end @@ -65,9 +61,7 @@ describe Admin::Api::StatsController, :admin do get :show, params: { budget_investments: true } expect(response).to be_ok - - data = JSON.parse(response.body) - expect(data).to eq "x" => ["2017-04-01", "2017-04-02"], "Budget Investments" => [1, 2] + expect(response.parsed_body).to eq "x" => ["2017-04-01", "2017-04-02"], "Budget Investments" => [1, 2] end end end diff --git a/spec/controllers/graphql_controller_spec.rb b/spec/controllers/graphql_controller_spec.rb index 6fe974e5e..eeed8c578 100644 --- a/spec/controllers/graphql_controller_spec.rb +++ b/spec/controllers/graphql_controller_spec.rb @@ -16,7 +16,7 @@ describe GraphqlController, type: :request do get "/graphql", params: { query: "{ proposal(id: #{proposal.id}) { title } }" } expect(response).to have_http_status(:ok) - expect(JSON.parse(response.body)["data"]["proposal"]["title"]).to eq(proposal.title) + expect(response.parsed_body["data"]["proposal"]["title"]).to eq(proposal.title) end specify "with malformed query string" do @@ -30,7 +30,7 @@ describe GraphqlController, type: :request do get "/graphql" expect(response).to have_http_status(:bad_request) - expect(JSON.parse(response.body)["message"]).to eq("Query string not present") + expect(response.parsed_body["message"]).to eq("Query string not present") end end @@ -42,7 +42,7 @@ describe GraphqlController, type: :request do headers: json_headers expect(response).to have_http_status(:ok) - expect(JSON.parse(response.body)["data"]["proposal"]["title"]).to eq(proposal.title) + expect(response.parsed_body["data"]["proposal"]["title"]).to eq(proposal.title) end specify "with raw query string inside body" do @@ -51,7 +51,7 @@ describe GraphqlController, type: :request do headers: graphql_headers expect(response).to have_http_status(:ok) - expect(JSON.parse(response.body)["data"]["proposal"]["title"]).to eq(proposal.title) + expect(response.parsed_body["data"]["proposal"]["title"]).to eq(proposal.title) end specify "with malformed query string" do @@ -65,7 +65,7 @@ describe GraphqlController, type: :request do post "/graphql", headers: json_headers expect(response).to have_http_status(:bad_request) - expect(JSON.parse(response.body)["message"]).to eq("Query string not present") + expect(response.parsed_body["message"]).to eq("Query string not present") end end diff --git a/spec/controllers/installation_controller_spec.rb b/spec/controllers/installation_controller_spec.rb index d8cd40c3b..35d8dd543 100644 --- a/spec/controllers/installation_controller_spec.rb +++ b/spec/controllers/installation_controller_spec.rb @@ -22,8 +22,8 @@ describe InstallationController, type: :request do get "/consul.json" expect(response).to have_http_status(:ok) - expect(JSON.parse(response.body)["release"]).not_to be_empty - expect(JSON.parse(response.body)["features"]).to eq(test_process_settings) + expect(response.parsed_body["release"]).not_to be_empty + expect(response.parsed_body["features"]).to eq(test_process_settings) end end end