From 6e88031537c0279dc79da267f7f9e8ffa8dc51eb Mon Sep 17 00:00:00 2001 From: Julian Herrero Date: Sat, 30 Mar 2019 19:02:37 +0100 Subject: [PATCH] Fix several rubocop warnings Metrics/LineLength: Line is too long. RSpec/InstanceVariable: Use let instead of an instance variable. Layout/TrailingBlankLines: Final newline missing. Style/StringLiterals: Prefer double-quoted strings. --- Gemfile | 2 +- app/models/application_record.rb | 2 +- app/models/concerns/sanitizable.rb | 3 +- app/models/document.rb | 8 +- app/models/image.rb | 7 +- app/models/user.rb | 4 +- config/environments/development.rb | 2 +- config/initializers/acts_as_taggable_on.rb | 5 +- spec/controllers/comments_controller_spec.rb | 53 +++-- spec/controllers/debates_controller_spec.rb | 8 +- spec/controllers/graphql_controller_spec.rb | 6 +- .../annotations_controller_spec.rb | 182 +++++++++++------- .../legislation/answers_controller_spec.rb | 50 +++-- .../management/sessions_controller_spec.rb | 12 +- 14 files changed, 230 insertions(+), 114 deletions(-) diff --git a/Gemfile b/Gemfile index 95e998ae5..c9143b64a 100644 --- a/Gemfile +++ b/Gemfile @@ -40,7 +40,7 @@ gem "paperclip", "~> 5.2.1" gem "paranoia", "~> 2.4.1" gem "pg", "~> 0.21.0" gem "pg_search", "~> 2.0.1" -gem 'record_tag_helper', '~> 1.0' +gem "record_tag_helper", "~> 1.0" gem "redcarpet", "~> 3.4.0" gem "responders", "~> 2.4.0" gem "rinku", "~> 2.0.2", require: "rails_rinku" diff --git a/app/models/application_record.rb b/app/models/application_record.rb index 71a1a03cc..10a4cba84 100644 --- a/app/models/application_record.rb +++ b/app/models/application_record.rb @@ -1,3 +1,3 @@ class ApplicationRecord < ActiveRecord::Base self.abstract_class = true -end \ No newline at end of file +end diff --git a/app/models/concerns/sanitizable.rb b/app/models/concerns/sanitizable.rb index fc296c4b5..8602257ef 100644 --- a/app/models/concerns/sanitizable.rb +++ b/app/models/concerns/sanitizable.rb @@ -27,7 +27,8 @@ module Sanitizable end def translatable_description? - self.class.included_modules.include?(Globalizable) && self.class.translated_attribute_names.include?(:description) + self.class.included_modules.include?(Globalizable) && + self.class.translated_attribute_names.include?(:description) end def sanitize_description_translations diff --git a/app/models/document.rb b/app/models/document.rb index e1dd94ceb..3a78231f1 100644 --- a/app/models/document.rb +++ b/app/models/document.rb @@ -89,9 +89,11 @@ class Document < ApplicationRecord def validate_attachment_content_type if documentable_class && !accepted_content_types(documentable_class).include?(attachment_content_type) - errors.add(:attachment, I18n.t("documents.errors.messages.wrong_content_type", - content_type: attachment_content_type, - accepted_content_types: documentable_humanized_accepted_content_types(documentable_class))) + accepted_content_types = documentable_humanized_accepted_content_types(documentable_class) + message = I18n.t("documents.errors.messages.wrong_content_type", + content_type: attachment_content_type, + accepted_content_types: accepted_content_types) + errors.add(:attachment, message) end end diff --git a/app/models/image.rb b/app/models/image.rb index ce8e750ef..eefcd3926 100644 --- a/app/models/image.rb +++ b/app/models/image.rb @@ -87,9 +87,10 @@ class Image < ApplicationRecord def validate_attachment_content_type if imageable_class && !attachment_of_valid_content_type? - errors.add(:attachment, I18n.t("images.errors.messages.wrong_content_type", - content_type: attachment_content_type, - accepted_content_types: imageable_humanized_accepted_content_types)) + message = I18n.t("images.errors.messages.wrong_content_type", + content_type: attachment_content_type, + accepted_content_types: imageable_humanized_accepted_content_types) + errors.add(:attachment, message) end end diff --git a/app/models/user.rb b/app/models/user.rb index 4dcba1c6f..35bff958a 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -128,7 +128,9 @@ class User < ApplicationRecord end def headings_voted_within_group(group) - Budget::Heading.joins(:translations).order("name").where(id: voted_investments.by_group(group).pluck(:heading_id)) + Budget::Heading.joins(:translations) + .order("name") + .where(id: voted_investments.by_group(group).pluck(:heading_id)) end def voted_investments diff --git a/config/environments/development.rb b/config/environments/development.rb index 4888def4b..fc032e333 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -13,7 +13,7 @@ Rails.application.configure do config.consider_all_requests_local = true # Enable/disable caching. By default caching is disabled. - if Rails.root.join('tmp/caching-dev.txt').exist? + if Rails.root.join("tmp/caching-dev.txt").exist? config.action_controller.perform_caching = true config.cache_store = :memory_store diff --git a/config/initializers/acts_as_taggable_on.rb b/config/initializers/acts_as_taggable_on.rb index d7510e9c6..d8ebeeec5 100644 --- a/config/initializers/acts_as_taggable_on.rb +++ b/config/initializers/acts_as_taggable_on.rb @@ -74,7 +74,10 @@ module ActsAsTaggableOn end def self.spending_proposal_tags - ActsAsTaggableOn::Tag.where("taggings.taggable_type" => "SpendingProposal").includes(:taggings).order(:name).distinct + ActsAsTaggableOn::Tag.where("taggings.taggable_type" => "SpendingProposal") + .includes(:taggings) + .order(:name) + .distinct end def self.graphql_field_name diff --git a/spec/controllers/comments_controller_spec.rb b/spec/controllers/comments_controller_spec.rb index 6fbcd3c7c..02f1d5c6e 100644 --- a/spec/controllers/comments_controller_spec.rb +++ b/spec/controllers/comments_controller_spec.rb @@ -3,36 +3,57 @@ require "rails_helper" describe CommentsController do describe "POST create" do - before do - @process = create(:legislation_process, debate_start_date: Date.current - 3.days, debate_end_date: Date.current + 2.days) - @question = create(:legislation_question, process: @process, title: "Question 1") - @user = create(:user, :level_two) - @unverified_user = create(:user) - end + + let(:legal_process) { create(:legislation_process, debate_start_date: Date.current - 3.days, + debate_end_date: Date.current + 2.days) } + let(:question) { create(:legislation_question, process: legal_process, title: "Question 1") } + let(:user) { create(:user, :level_two) } + let(:unverified_user) { create(:user) } it "creates an comment if the comments are open" do - sign_in @user + sign_in user expect do - post :create, params: {comment: {commentable_id: @question.id, commentable_type: "Legislation::Question", body: "a comment"}}, xhr: true - end.to change { @question.reload.comments_count }.by(1) + post :create, xhr: true, + params: { + comment: { + commentable_id: question.id, + commentable_type: "Legislation::Question", + body: "a comment" + } + } + end.to change { question.reload.comments_count }.by(1) end it "does not create a comment if the comments are closed" do - sign_in @user - @process.update_attribute(:debate_end_date, Date.current - 1.day) + sign_in user + legal_process.update_attribute(:debate_end_date, Date.current - 1.day) expect do - post :create, params: {comment: {commentable_id: @question.id, commentable_type: "Legislation::Question", body: "a comment"}}, xhr: true - end.not_to change { @question.reload.comments_count } + post :create, xhr: true, + params: { + comment: { + commentable_id: question.id, + commentable_type: "Legislation::Question", + body: "a comment" + } + } + end.not_to change { question.reload.comments_count } end it "does not create a comment for unverified users when the commentable requires it" do - sign_in @unverified_user + sign_in unverified_user expect do - post :create, params: {comment: {commentable_id: @question.id, commentable_type: "Legislation::Question", body: "a comment"}}, xhr: true - end.not_to change { @question.reload.comments_count } + post :create, xhr: true, + params: { + comment: { + commentable_id: question.id, + commentable_type: "Legislation::Question", + body: "a comment" + } + } + end.not_to change { question.reload.comments_count } end end end diff --git a/spec/controllers/debates_controller_spec.rb b/spec/controllers/debates_controller_spec.rb index ad1d66bf2..60c977689 100644 --- a/spec/controllers/debates_controller_spec.rb +++ b/spec/controllers/debates_controller_spec.rb @@ -15,7 +15,13 @@ describe DebatesController do sign_in create(:user) - post :create, params: { debate: { title: "A sample debate", description: "this is a sample debate", terms_of_service: 1 }} + post :create, params: { + debate: { + title: "A sample debate", + description: "this is a sample debate", + terms_of_service: 1 + } + } expect(Ahoy::Event.where(name: :debate_created).count).to eq 1 expect(Ahoy::Event.last.properties["debate_id"]).to eq Debate.last.id end diff --git a/spec/controllers/graphql_controller_spec.rb b/spec/controllers/graphql_controller_spec.rb index c975ec160..b55816e39 100644 --- a/spec/controllers/graphql_controller_spec.rb +++ b/spec/controllers/graphql_controller_spec.rb @@ -38,7 +38,8 @@ describe GraphqlController, type: :request do let(:json_headers) { { "CONTENT_TYPE" => "application/json" } } specify "with json-encoded query string inside body" do - post "/graphql", params: { query: "{ proposal(id: #{proposal.id}) { title } }" }.to_json, headers: json_headers + post "/graphql", params: { query: "{ proposal(id: #{proposal.id}) { title } }" }.to_json, + headers: json_headers expect(response).to have_http_status(:ok) expect(JSON.parse(response.body)["data"]["proposal"]["title"]).to eq(proposal.title) @@ -46,7 +47,8 @@ describe GraphqlController, type: :request do specify "with raw query string inside body" do graphql_headers = { "CONTENT_TYPE" => "application/graphql" } - post "/graphql", params: "{ proposal(id: #{proposal.id}) { title } }", headers: graphql_headers + post "/graphql", params: "{ proposal(id: #{proposal.id}) { title } }", + headers: graphql_headers expect(response).to have_http_status(:ok) expect(JSON.parse(response.body)["data"]["proposal"]["title"]).to eq(proposal.title) diff --git a/spec/controllers/legislation/annotations_controller_spec.rb b/spec/controllers/legislation/annotations_controller_spec.rb index 1b7f6cac0..7e580b3c8 100644 --- a/spec/controllers/legislation/annotations_controller_spec.rb +++ b/spec/controllers/legislation/annotations_controller_spec.rb @@ -3,109 +3,161 @@ require "rails_helper" describe Legislation::AnnotationsController do describe "POST create" do - before do - @process = create(:legislation_process, allegations_start_date: Date.current - 3.days, allegations_end_date: Date.current + 2.days) - @draft_version = create(:legislation_draft_version, :published, process: @process, title: "Version 1") - @final_version = create(:legislation_draft_version, :published, :final_version, process: @process, title: "Final version") - @user = create(:user, :level_two) - end + + let(:legal_process) { create(:legislation_process, + allegations_start_date: Date.current - 3.days, + allegations_end_date: Date.current + 2.days) } + let(:draft_version) { create(:legislation_draft_version, :published, + process: legal_process, + title: "Version 1") } + let(:final_version) { create(:legislation_draft_version, :published, + :final_version, + process: legal_process, + title: "Final version") } + let(:user) { create(:user, :level_two) } + it "creates an ahoy event" do - sign_in @user + sign_in user post :create, params: { - process_id: @process.id, - draft_version_id: @draft_version.id, + process_id: legal_process.id, + draft_version_id: draft_version.id, legislation_annotation: { - "quote"=>"ipsum", - "ranges"=>[{"start"=>"/p[1]", "startOffset"=>6, "end"=>"/p[1]", "endOffset"=>11}], - "text": "una anotacion" - }} + "quote" => "ipsum", + "ranges" => [{ + "start" => "/p[1]", + "startOffset" => 6, + "end" => "/p[1]", + "endOffset" => 11 + }], + "text" => "una anotacion" + } + } expect(Ahoy::Event.where(name: :legislation_annotation_created).count).to eq 1 expect(Ahoy::Event.last.properties["legislation_annotation_id"]).to eq Legislation::Annotation.last.id end it "does not create an annotation if the draft version is a final version" do - sign_in @user + sign_in user post :create, params: { - process_id: @process.id, - draft_version_id: @final_version.id, - legislation_annotation: { - "quote" => "ipsum", - "ranges" => [{"start" => "/p[1]", "startOffset" => 6, "end" => "/p[1]", "endOffset" => 11}], - "text": "una anotacion" - }} + process_id: legal_process.id, + draft_version_id: final_version.id, + legislation_annotation: { + "quote" => "ipsum", + "ranges" => [{ + "start" => "/p[1]", + "startOffset" => 6, + "end" => "/p[1]", + "endOffset" => 11 + }], + "text" => "una anotacion" + } + } expect(response).to have_http_status(:not_found) end it "creates an annotation if the process allegations phase is open" do - sign_in @user + sign_in user expect do - post :create, params: { - process_id: @process.id, - draft_version_id: @draft_version.id, + post :create, xhr: true, + params: { + process_id: legal_process.id, + draft_version_id: draft_version.id, legislation_annotation: { - "quote"=>"ipsum", - "ranges"=>[{"start"=>"/p[1]", "startOffset"=>6, "end"=>"/p[1]", "endOffset"=>11}], - "text": "una anotacion" - }}, - xhr: true - end.to change { @draft_version.annotations.count }.by(1) + "quote" => "ipsum", + "ranges" => [{ + "start" => "/p[1]", + "startOffset" => 6, + "end" => "/p[1]", + "endOffset" => 11 + }], + "text" => "una anotacion" + } + } + end.to change { draft_version.annotations.count }.by(1) end it "does not create an annotation if the process allegations phase is not open" do - sign_in @user - @process.update_attribute(:allegations_end_date, Date.current - 1.day) + sign_in user + legal_process.update_attribute(:allegations_end_date, Date.current - 1.day) expect do - post :create, params: { - process_id: @process.id, - draft_version_id: @draft_version.id, + post :create, xhr: true, + params: { + process_id: legal_process.id, + draft_version_id: draft_version.id, legislation_annotation: { - "quote"=>"ipsum", - "ranges"=>[{"start"=>"/p[1]", "startOffset"=>6, "end"=>"/p[1]", "endOffset"=>11}], - "text": "una anotacion" - }}, - xhr: true - end.to_not change { @draft_version.annotations.count } + "quote" => "ipsum", + "ranges"=> [{ + "start" => "/p[1]", + "startOffset" => 6, + "end" => "/p[1]", + "endOffset" => 11 + }], + "text" => "una anotacion" + } + } + end.to_not change { draft_version.annotations.count } end it "creates an annotation by parsing parameters in JSON" do - sign_in @user + sign_in user expect do - post :create, params: { - process_id: @process.id, - draft_version_id: @draft_version.id, + post :create, xhr: true, + params: { + process_id: legal_process.id, + draft_version_id: draft_version.id, legislation_annotation: { - "quote"=>"ipsum", - "ranges"=>[{"start"=>"/p[1]", "startOffset"=>6, "end"=>"/p[1]", "endOffset"=>11}].to_json, - "text": "una anotacion" - }}, - xhr: true - end.to change { @draft_version.annotations.count }.by(1) + "quote" => "ipsum", + "ranges" => [{ + "start" => "/p[1]", + "startOffset" => 6, + "end" => "/p[1]", + "endOffset" => 11 + }].to_json, + "text" => "una anotacion" + } + } + end.to change { draft_version.annotations.count }.by(1) end it "creates a new comment on an existing annotation when range is the same" do - annotation = create(:legislation_annotation, draft_version: @draft_version, text: "my annotation", - ranges: [{"start" => "/p[1]", "startOffset" => 6, "end" => "/p[1]", "endOffset" => 11}], - range_start: "/p[1]", range_start_offset: 6, range_end: "/p[1]", range_end_offset: 11) - sign_in @user + annotation = create(:legislation_annotation, draft_version: draft_version, + text: "my annotation", + ranges: [{ + "start" => "/p[1]", + "startOffset" => 6, + "end" => "/p[1]", + "endOffset" => 11 + }], + range_start: "/p[1]", + range_start_offset: 6, + range_end: "/p[1]", + range_end_offset: 11) + sign_in user expect do - post :create, params: { - process_id: @process.id, - draft_version_id: @draft_version.id, + post :create, xhr: true, + params: { + process_id: legal_process.id, + draft_version_id: draft_version.id, legislation_annotation: { - "quote"=>"ipsum", - "ranges"=>[{"start"=>"/p[1]", "startOffset"=>6, "end"=>"/p[1]", "endOffset"=>11}], - "text": "una anotacion" - }}, - xhr: true - end.to_not change { @draft_version.annotations.count } + "quote" => "ipsum", + "ranges" => [{ + "start" => "/p[1]", + "startOffset" => 6, + "end" => "/p[1]", + "endOffset" => 11 + }], + "text" => "una anotacion" + } + } + end.to_not change { draft_version.annotations.count } expect(annotation.reload.comments_count).to eq(2) expect(annotation.comments.last.body).to eq("una anotacion") diff --git a/spec/controllers/legislation/answers_controller_spec.rb b/spec/controllers/legislation/answers_controller_spec.rb index 3f2e0955f..0388572cb 100644 --- a/spec/controllers/legislation/answers_controller_spec.rb +++ b/spec/controllers/legislation/answers_controller_spec.rb @@ -3,36 +3,56 @@ require "rails_helper" describe Legislation::AnswersController do describe "POST create" do - before do - @process = create(:legislation_process, debate_start_date: Date.current - 3.days, debate_end_date: Date.current + 2.days) - @question = create(:legislation_question, process: @process, title: "Question 1") - @question_option = create(:legislation_question_option, question: @question, value: "Yes") - @user = create(:user, :level_two) - end + + let(:legal_process) { create(:legislation_process, debate_start_date: Date.current - 3.days, + debate_end_date: Date.current + 2.days) } + let(:question) { create(:legislation_question, process: legal_process, title: "Question 1") } + let(:question_option) { create(:legislation_question_option, question: question, value: "Yes") } + let(:user) { create(:user, :level_two) } it "creates an ahoy event" do - sign_in @user + sign_in user - post :create, params: {process_id: @process.id, question_id: @question.id, legislation_answer: { legislation_question_option_id: @question_option.id }} + post :create, params: { + process_id: legal_process.id, + question_id: question.id, + legislation_answer: { + legislation_question_option_id: question_option.id + } + } expect(Ahoy::Event.where(name: :legislation_answer_created).count).to eq 1 expect(Ahoy::Event.last.properties["legislation_answer_id"]).to eq Legislation::Answer.last.id end it "creates an answer if the process debate phase is open" do - sign_in @user + sign_in user expect do - post :create, params: {process_id: @process.id, question_id: @question.id, legislation_answer: { legislation_question_option_id: @question_option.id }}, xhr: true - end.to change { @question.reload.answers_count }.by(1) + post :create, xhr: true, + params: { + process_id: legal_process.id, + question_id: question.id, + legislation_answer: { + legislation_question_option_id: question_option.id + } + } + end.to change { question.reload.answers_count }.by(1) end it "does not create an answer if the process debate phase is not open" do - sign_in @user - @process.update_attribute(:debate_end_date, Date.current - 1.day) + sign_in user + legal_process.update_attribute(:debate_end_date, Date.current - 1.day) expect do - post :create, params: {process_id: @process.id, question_id: @question.id, legislation_answer: { legislation_question_option_id: @question_option.id }}, xhr: true - end.not_to change { @question.reload.answers_count } + post :create, xhr: true, + params: { + process_id: legal_process.id, + question_id: question.id, + legislation_answer: { + legislation_question_option_id: question_option.id + } + } + end.not_to change { question.reload.answers_count } end end end diff --git a/spec/controllers/management/sessions_controller_spec.rb b/spec/controllers/management/sessions_controller_spec.rb index 979fa3f8c..650f53246 100644 --- a/spec/controllers/management/sessions_controller_spec.rb +++ b/spec/controllers/management/sessions_controller_spec.rb @@ -5,7 +5,9 @@ describe Management::SessionsController do describe "Sign in" do it "denies access if wrong manager credentials" do allow_any_instance_of(ManagerAuthenticator).to receive(:auth).and_return(false) - expect { get :create, params: { login: "nonexistent" , clave_usuario: "wrong" }}.to raise_error CanCan::AccessDenied + expect { + get :create, params: { login: "nonexistent", clave_usuario: "wrong" } + }.to raise_error CanCan::AccessDenied expect(session[:manager]).to be_nil end @@ -13,7 +15,11 @@ describe Management::SessionsController do manager = {login: "JJB033", user_key: "31415926", date: "20151031135905"} allow_any_instance_of(ManagerAuthenticator).to receive(:auth).and_return(manager) - get :create, params: { login: "JJB033" , clave_usuario: "31415926", fecha_conexion: "20151031135905" } + get :create, params: { + login: "JJB033" , + clave_usuario: "31415926", + fecha_conexion: "20151031135905" + } expect(response).to be_redirect expect(session[:manager][:login]).to eq "JJB033" end @@ -56,4 +62,4 @@ describe Management::SessionsController do end end -end \ No newline at end of file +end