Browse Source

Refactor tests and paths

pull/1752/head
Kat 3 years ago
parent
commit
82fddf4003
  1. 8
      app/controllers/form_controller.rb
  2. 12
      app/helpers/duplicate_logs_helper.rb
  3. 2
      spec/factories/lettings_log.rb
  4. 1
      spec/factories/sales_log.rb
  5. 11
      spec/features/lettings_log_spec.rb
  6. 11
      spec/features/sales_log_spec.rb
  7. 60
      spec/requests/duplicate_logs_controller_spec.rb

8
app/controllers/form_controller.rb

@ -141,9 +141,7 @@ private
return unless query_params
parsed_params = CGI.parse(query_params)
return unless parsed_params["referrer"]
parsed_params["referrer"][0]
parsed_params["referrer"]&.first
end
def original_duplicate_log_id_from_query
@ -152,9 +150,7 @@ private
return unless query_params
parsed_params = CGI.parse(query_params)
return unless parsed_params["original_log_id"]
parsed_params["original_log_id"][0]
parsed_params["original_log_id"]&.first
end
def previous_interruption_screen_page_id

12
app/helpers/duplicate_logs_helper.rb

@ -3,15 +3,19 @@ module DuplicateLogsHelper
def duplicate_logs_continue_button(all_duplicates, duplicate_log, original_log_id)
if all_duplicates.count > 1
return govuk_button_link_to "Keep this log and delete duplicates", send("#{duplicate_log.class.name.underscore}_delete_duplicates_path", duplicate_log, original_log_id:)
return govuk_button_link_to "Keep this log and delete duplicates", url_for(
controller: "duplicate_logs",
action: "delete_duplicates",
"#{duplicate_log.class.name.underscore}_id": duplicate_log.id,
original_log_id:,
)
end
if original_log_id == duplicate_log.id
govuk_button_link_to "Back to Log #{duplicate_log.id}", send("#{duplicate_log.class.name.underscore}_path", duplicate_log)
else
return govuk_button_link_to "Back to lettings logs", lettings_logs_path if duplicate_log.lettings?
govuk_button_link_to "Back to sales logs", sales_logs_path
type = duplicate_log.lettings? ? "lettings" : "sales"
govuk_button_link_to "Back to #{type} logs", url_for(duplicate_log.class)
end
end

2
spec/factories/lettings_log.rb

@ -39,6 +39,8 @@ FactoryBot.define do
needstype { 1 }
tenancycode { "same tenancy code" }
postcode_full { "A1 1AA" }
uprn_known { 0 }
declaration { 1 }
age1 { 18 }
sex1 { "M" }
ecstat1 { 0 }

1
spec/factories/sales_log.rb

@ -46,6 +46,7 @@ FactoryBot.define do
ecstat1 { 1 }
postcode_full { "A1 1AA" }
privacynotice { 1 }
uprn_known { 0 }
end
trait :completed do
purchid { rand(999_999_999).to_s }

11
spec/features/lettings_log_spec.rb

@ -391,13 +391,8 @@ RSpec.describe "Lettings Log Features" do
end
context "when a log becomes a duplicate" do
let(:lettings_log) { create(:lettings_log, :completed, owning_organisation: user.organisation, created_by: user) }
let!(:duplicate_log) do
duplicate = lettings_log.dup
duplicate.id = nil
duplicate.save!
duplicate
end
let(:lettings_log) { create(:lettings_log, :duplicate, owning_organisation: user.organisation, created_by: user) }
let!(:duplicate_log) { create(:lettings_log, :duplicate, owning_organisation: user.organisation, created_by: user) }
before do
lettings_log.update!(tenancycode: "different")
@ -412,7 +407,7 @@ RSpec.describe "Lettings Log Features" do
expect(page).to have_current_path("/lettings-logs/#{lettings_log.id}/delete-duplicates?original_log_id=#{lettings_log.id}")
click_button "Delete this log"
duplicate_log.reload
expect(duplicate_log.status).to eq("deleted")
expect(duplicate_log.deleted?).to be true
expect(page).to have_css(".govuk-notification-banner.govuk-notification-banner--success")
expect(page).to have_content("Log #{duplicate_log.id} has been deleted")
expect(page).to have_current_path("/lettings-logs/#{lettings_log.id}/duplicate-logs?original_log_id=#{lettings_log.id}")

11
spec/features/sales_log_spec.rb

@ -140,13 +140,8 @@ RSpec.describe "Sales Log Features" do
context "when a log becomes a duplicate" do
let(:user) { create(:user, :data_coordinator) }
let(:sales_log) { create(:sales_log, :completed, owning_organisation: user.organisation, created_by: user) }
let!(:duplicate_log) do
duplicate = sales_log.dup
duplicate.id = nil
duplicate.save!
duplicate
end
let(:sales_log) { create(:sales_log, :duplicate, created_by: user) }
let!(:duplicate_log) { create(:sales_log, :duplicate, created_by: user) }
before do
allow(user).to receive(:need_two_factor_authentication?).and_return(false)
@ -163,7 +158,7 @@ RSpec.describe "Sales Log Features" do
expect(page).to have_current_path("/sales-logs/#{sales_log.id}/delete-duplicates?original_log_id=#{sales_log.id}")
click_button "Delete this log"
duplicate_log.reload
expect(duplicate_log.status).to eq("deleted")
expect(duplicate_log.deleted?).to be true
expect(page).to have_css(".govuk-notification-banner.govuk-notification-banner--success")
expect(page).to have_content("Log #{duplicate_log.id} has been deleted")
expect(page).to have_current_path("/sales-logs/#{sales_log.id}/duplicate-logs?original_log_id=#{sales_log.id}")

60
spec/requests/duplicate_logs_controller_spec.rb

@ -3,22 +3,8 @@ require "rails_helper"
RSpec.describe DuplicateLogsController, type: :request do
let(:page) { Capybara::Node::Simple.new(response.body) }
let(:user) { create(:user, :data_coordinator) }
let(:lettings_log) do
create(
:lettings_log,
:completed,
created_by: user,
owning_organisation: user.organisation,
)
end
let(:sales_log) do
create(
:sales_log,
:completed,
created_by: user,
owning_organisation: user.organisation,
)
end
let(:lettings_log) { create(:lettings_log, :duplicate, created_by: user) }
let(:sales_log) { create(:sales_log, :duplicate, created_by: user) }
describe "GET show" do
context "when user is not signed in" do
@ -133,12 +119,7 @@ RSpec.describe DuplicateLogsController, type: :request do
end
context "when there is 1 duplicate log being deleted" do
let!(:duplicate_log) do
duplicate = sales_log.dup
duplicate.id = nil
duplicate.save!
duplicate
end
let!(:duplicate_log) { create(:sales_log, :duplicate, created_by: user) }
it "renders page" do
request
@ -154,18 +135,8 @@ RSpec.describe DuplicateLogsController, type: :request do
end
context "when there are multiple duplicate logs being deleted" do
let!(:duplicate_log) do
duplicate = sales_log.dup
duplicate.id = nil
duplicate.save!
duplicate
end
let!(:duplicate_log_2) do
duplicate = sales_log.dup
duplicate.id = nil
duplicate.save!
duplicate
end
let!(:duplicate_log) { create(:sales_log, :duplicate, created_by: user) }
let!(:duplicate_log_2) { create(:sales_log, :duplicate, created_by: user) }
it "renders page" do
request
@ -222,12 +193,7 @@ RSpec.describe DuplicateLogsController, type: :request do
end
context "when there is 1 duplicate log being deleted" do
let!(:duplicate_log) do
duplicate = lettings_log.dup
duplicate.id = nil
duplicate.save!
duplicate
end
let!(:duplicate_log) { create(:lettings_log, :duplicate, created_by: user) }
it "renders page" do
request
@ -244,18 +210,8 @@ RSpec.describe DuplicateLogsController, type: :request do
end
context "when there are multiple duplicate logs being deleted" do
let!(:duplicate_log) do
duplicate = lettings_log.dup
duplicate.id = nil
duplicate.save!
duplicate
end
let!(:duplicate_log_2) do
duplicate = lettings_log.dup
duplicate.id = nil
duplicate.save!
duplicate
end
let!(:duplicate_log) { create(:lettings_log, :duplicate, created_by: user) }
let!(:duplicate_log_2) { create(:lettings_log, :duplicate, created_by: user) }
it "renders page" do
request

Loading…
Cancel
Save