Browse Source

rubocop

pull/608/head
JG 3 years ago
parent
commit
d400e19c52
  1. 8
      app/models/case_log.rb
  2. 8
      spec/features/log_spec.rb
  3. 16
      spec/models/case_log_spec.rb
  4. 8
      spec/requests/case_logs_controller_spec.rb

8
app/models/case_log.rb

@ -51,14 +51,16 @@ class CaseLog < ApplicationRecord
end end
} }
scope :filter_by_id, ->(id) { where(id: id) } scope :filter_by_id, ->(id) { where(id:) }
scope :filter_by_tenancy_code, ->(code) { where(tenancy_code: code) } scope :filter_by_tenancy_code, ->(code) { where(tenancy_code: code) }
scope :filter_by_propcode, ->(code) { where(propcode: code) } scope :filter_by_propcode, ->(code) { where(propcode: code) }
scope :filter_by_postcode, ->(code) { where(postcode_full: code) } scope :filter_by_postcode, ->(code) { where(postcode_full: code) }
scope :filter_by, ->(param) { filter_by_id(param) scope :filter_by, lambda { |param|
filter_by_id(param)
.or(filter_by_tenancy_code(param)) .or(filter_by_tenancy_code(param))
.or(filter_by_propcode(param)) .or(filter_by_propcode(param))
.or(filter_by_postcode(param.upcase.gsub(/\s+/, ""))) } .or(filter_by_postcode(param.upcase.gsub(/\s+/, "")))
}
AUTOGENERATED_FIELDS = %w[id status created_at updated_at discarded_at].freeze AUTOGENERATED_FIELDS = %w[id status created_at updated_at discarded_at].freeze
OPTIONAL_FIELDS = %w[first_time_property_let_as_social_housing tenant_code propcode].freeze OPTIONAL_FIELDS = %w[first_time_property_let_as_social_housing tenant_code propcode].freeze

8
spec/features/log_spec.rb

@ -1,8 +1,8 @@
require "rails_helper" require "rails_helper"
RSpec.describe "Log Features" do RSpec.describe "Log Features" do
context "Searching for specific logs" do context "when searching for specific logs" do
context "I am logged in and there are logs in the database" do context "when I am logged in and there are logs in the database" do
let(:user) { FactoryBot.create(:user, last_sign_in_at: Time.zone.now) } let(:user) { FactoryBot.create(:user, last_sign_in_at: Time.zone.now) }
let(:log_to_search) { FactoryBot.create(:case_log, owning_organisation: user.organisation, tenancy_code: "111") } let(:log_to_search) { FactoryBot.create(:case_log, owning_organisation: user.organisation, tenancy_code: "111") }
let(:same_organisation_log) { FactoryBot.create(:case_log, owning_organisation: user.organisation, tenancy_code: "222") } let(:same_organisation_log) { FactoryBot.create(:case_log, owning_organisation: user.organisation, tenancy_code: "222") }
@ -15,14 +15,14 @@ RSpec.describe "Log Features" do
click_button("Sign in") click_button("Sign in")
end end
context "I can search for a specific log" do context "when I search for a specific log" do
it "there is a search bar with a message and search button for logs" do it "there is a search bar with a message and search button for logs" do
expect(page).to have_field("search-field") expect(page).to have_field("search-field")
expect(page).to have_content("Search by log ID, tenant code, property reference or postcode") expect(page).to have_content("Search by log ID, tenant code, property reference or postcode")
expect(page).to have_button("Search") expect(page).to have_button("Search")
end end
it "it displays log matching the log ID" do it "displays log matching the log ID" do
fill_in("search-field", with: log_to_search.id) fill_in("search-field", with: log_to_search.id)
click_button("Search") click_button("Search")
expect(page).to have_content(log_to_search.id) expect(page).to have_content(log_to_search.id)

16
spec/models/case_log_spec.rb

@ -1863,7 +1863,7 @@ RSpec.describe CaseLog do
end end
end end
describe "scopes" do describe "Searching scopes" do
let!(:case_log_1) { FactoryBot.create(:case_log, :in_progress, startdate: Time.utc(2021, 5, 3), created_by: created_by_user, postcode_full: "XX12YY") } let!(:case_log_1) { FactoryBot.create(:case_log, :in_progress, startdate: Time.utc(2021, 5, 3), created_by: created_by_user, postcode_full: "XX12YY") }
let!(:case_log_2) { FactoryBot.create(:case_log, :completed, startdate: Time.utc(2021, 5, 3), created_by: created_by_user) } let!(:case_log_2) { FactoryBot.create(:case_log, :completed, startdate: Time.utc(2021, 5, 3), created_by: created_by_user) }
@ -1871,38 +1871,38 @@ RSpec.describe CaseLog do
FactoryBot.create(:case_log, startdate: Time.utc(2022, 6, 3)) FactoryBot.create(:case_log, startdate: Time.utc(2022, 6, 3))
end end
context "searching scopes" do context "when searching scopes" do
let!(:case_log_3) { FactoryBot.create(:case_log, :completed, startdate: Time.utc(2021, 5, 3), created_by: created_by_user, postcode_full: "XX12YY") } let!(:case_log_3) { FactoryBot.create(:case_log, :completed, startdate: Time.utc(2021, 5, 3), created_by: created_by_user, postcode_full: "XX12YY") }
context "#filter_by_id" do describe "#filter_by_id" do
it "allows searching by a log ID" do it "allows searching by a log ID" do
expect(described_class.filter_by_id(case_log_1.id.to_s).count).to eq(1) expect(described_class.filter_by_id(case_log_1.id.to_s).count).to eq(1)
expect(described_class.filter_by_id(case_log_1.id.to_s).first.id).to eq case_log_1.id expect(described_class.filter_by_id(case_log_1.id.to_s).first.id).to eq case_log_1.id
end end
end end
context "#filter_by_tenancy_code" do describe "#filter_by_tenancy_code" do
it "allows searching by a Tenancy Code" do it "allows searching by a Tenancy Code" do
expect(described_class.filter_by_tenancy_code(case_log_2.tenancy_code).count).to eq(1) expect(described_class.filter_by_tenancy_code(case_log_2.tenancy_code).count).to eq(1)
expect(described_class.filter_by_tenancy_code(case_log_2.tenancy_code).first.id).to eq case_log_2.id expect(described_class.filter_by_tenancy_code(case_log_2.tenancy_code).first.id).to eq case_log_2.id
end end
end end
context "#filter_by_propcode" do describe "#filter_by_propcode" do
it "allows searching by a Property Reference" do it "allows searching by a Property Reference" do
expect(described_class.filter_by_propcode(case_log_2.propcode).count).to eq(1) expect(described_class.filter_by_propcode(case_log_2.propcode).count).to eq(1)
expect(described_class.filter_by_propcode(case_log_2.propcode).first.id).to eq case_log_2.id expect(described_class.filter_by_propcode(case_log_2.propcode).first.id).to eq case_log_2.id
end end
end end
context "#filter_by_postcode" do describe "#filter_by_postcode" do
it "allows searching by a Property Postcode" do it "allows searching by a Property Postcode" do
expect(described_class.filter_by_postcode(case_log_2.postcode_full).count).to eq(1) expect(described_class.filter_by_postcode(case_log_2.postcode_full).count).to eq(1)
expect(described_class.filter_by_postcode(case_log_2.postcode_full).first.id).to eq case_log_2.id expect(described_class.filter_by_postcode(case_log_2.postcode_full).first.id).to eq case_log_2.id
end end
end end
context "#filter_by" do describe "#filter_by" do
it "allows searching using ID" do it "allows searching using ID" do
expect(described_class.filter_by(case_log_1.id.to_s).count).to eq(1) expect(described_class.filter_by(case_log_1.id.to_s).count).to eq(1)
expect(described_class.filter_by(case_log_1.id.to_s).first.id).to eq case_log_1.id expect(described_class.filter_by(case_log_1.id.to_s).first.id).to eq case_log_1.id
@ -1924,7 +1924,7 @@ RSpec.describe CaseLog do
expect(described_class.filter_by(case_log_1.postcode_full).last.id).to eq case_log_3.id expect(described_class.filter_by(case_log_1.postcode_full).last.id).to eq case_log_3.id
end end
context "postcode has spaces and lower case letters" do context "when postcode has spaces and lower case letters" do
let(:matching_postcode_lower_case_with_spaces) { case_log_2.postcode_full.downcase.chars.insert(3, " ").join } let(:matching_postcode_lower_case_with_spaces) { case_log_2.postcode_full.downcase.chars.insert(3, " ").join }
it "allows searching by a Property Postcode" do it "allows searching by a Property Postcode" do

8
spec/requests/case_logs_controller_spec.rb

@ -308,7 +308,7 @@ RSpec.describe CaseLogsController, type: :request do
expect(page).not_to have_content("Managing organisation") expect(page).not_to have_content("Managing organisation")
end end
context "using a search query" do context "when using a search query" do
let(:logs) { FactoryBot.create_list(:case_log, 3, :completed, owning_organisation: user.organisation) } let(:logs) { FactoryBot.create_list(:case_log, 3, :completed, owning_organisation: user.organisation) }
it "shows case logs matching the id" do it "shows case logs matching the id" do
@ -332,7 +332,7 @@ RSpec.describe CaseLogsController, type: :request do
expect(page).not_to have_content(logs[2].id) expect(page).not_to have_content(logs[2].id)
end end
context "matching postcode" do context "when matching postcode" do
it "shows case logs matching the post code" do it "shows case logs matching the post code" do
get "/logs?search-field=#{logs[1].postcode_full}", headers: headers, params: {} get "/logs?search-field=#{logs[1].postcode_full}", headers: headers, params: {}
expect(page).not_to have_content(logs[0].id) expect(page).not_to have_content(logs[0].id)
@ -341,7 +341,7 @@ RSpec.describe CaseLogsController, type: :request do
end end
end end
context "search query doesn't match any logs" do context "when search query doesn't match any logs" do
it "doesn't display any logs" do it "doesn't display any logs" do
get "/logs?search-field=foobar", headers: headers, params: {} get "/logs?search-field=foobar", headers: headers, params: {}
expect(page).not_to have_content(logs[0].id) expect(page).not_to have_content(logs[0].id)
@ -350,7 +350,7 @@ RSpec.describe CaseLogsController, type: :request do
end end
end end
context "search query is empty" do context "when search query is empty" do
it "doesn't display any logs" do it "doesn't display any logs" do
get "/logs?search-field=", headers: headers, params: {} get "/logs?search-field=", headers: headers, params: {}
expect(page).not_to have_content(logs[0].id) expect(page).not_to have_content(logs[0].id)

Loading…
Cancel
Save