Browse Source

feat: test params passed correctly on delete

pull/1983/head
natdeanlewissoftwire 3 years ago
parent
commit
71eed79204
  1. 145
      spec/requests/duplicate_logs_controller_spec.rb

145
spec/requests/duplicate_logs_controller_spec.rb

@ -418,10 +418,9 @@ RSpec.describe DuplicateLogsController, type: :request do
end end
end end
describe "GET sales delete-duplicates" do describe "GET lettings delete-duplicates" do
let(:headers) { { "Accept" => "text/html" } } let(:id) { lettings_log.id }
let(:id) { sales_log.id } let(:request) { get "/lettings-logs/#{id}/delete-duplicates?original_log_id=#{id}" }
let(:request) { get "/sales-logs/#{id}/delete-duplicates?original_log_id=#{id}" }
before do before do
allow(user).to receive(:need_two_factor_authentication?).and_return(false) allow(user).to receive(:need_two_factor_authentication?).and_return(false)
@ -429,31 +428,72 @@ RSpec.describe DuplicateLogsController, type: :request do
end end
context "when there are no duplicate logs" do context "when there are no duplicate logs" do
it "renders not found" do it "renders page not found" do
request request
expect(response).to have_http_status(:not_found) expect(response).to have_http_status(:not_found)
end end
end end
context "when accessed from the duplicate logs banner flow" do
let(:request) { get "/lettings-logs/#{id}/delete-duplicates?original_log_id=#{id}&referrer=duplicate_logs_banner" }
context "when there is 1 duplicate log being deleted" do context "when there is 1 duplicate log being deleted" do
let!(:duplicate_log) { create(:sales_log, :duplicate, created_by: user) } let!(:duplicate_log) { create(:lettings_log, :duplicate, created_by: user) }
it "renders page with correct link params" do
request
expect(response).to have_http_status(:ok)
expect(page).to have_content("Are you sure you want to delete this duplicate log?")
expect(page).to have_content("This log will be deleted:")
expect(page).to have_button(text: "Delete this log")
expect(page).to have_link(text: "Log #{duplicate_log.id}", href: lettings_log_path(duplicate_log.id))
expect(page).not_to have_link(text: "Log #{id}", href: lettings_log_path(id))
expect(page).to have_link(text: "Cancel", href: lettings_log_duplicate_logs_path(id, original_log_id: id, referrer: "duplicate_logs_banner"))
expect(page).to have_link(text: "Back", href: lettings_log_duplicate_logs_path(id, original_log_id: id, referrer: "duplicate_logs_banner"))
end
end
context "when there are multiple duplicate logs being deleted" do
let!(:duplicate_log) { create(:lettings_log, :duplicate, created_by: user) }
let!(:duplicate_log_2) { create(:lettings_log, :duplicate, created_by: user) }
it "renders page with correct link params" do
request
expect(response).to have_http_status(:ok)
expect(page).to have_content("Are you sure you want to delete these duplicate logs?")
expect(page).to have_content("These logs will be deleted:")
expect(page).to have_button(text: "Delete these logs")
expect(page).to have_link(text: "Log #{duplicate_log.id}", href: lettings_log_path(duplicate_log.id))
expect(page).to have_link(text: "Log #{duplicate_log_2.id}", href: lettings_log_path(duplicate_log_2.id))
expect(page).to have_link(text: "Cancel", href: lettings_log_duplicate_logs_path(id, original_log_id: id, referrer: "duplicate_logs_banner"))
expect(page).to have_link(text: "Back", href: lettings_log_duplicate_logs_path(id, original_log_id: id, referrer: "duplicate_logs_banner"))
end
end
end
context "when accessed from the single log submission flow" do
context "when there is 1 duplicate log being deleted" do
let!(:duplicate_log) { create(:lettings_log, :duplicate, created_by: user) }
it "renders page" do it "renders page" do
request request
expect(response).to have_http_status(:ok) expect(response).to have_http_status(:ok)
expect(page).to have_content("Are you sure you want to delete this duplicate log?") expect(page).to have_content("Are you sure you want to delete this duplicate log?")
expect(page).to have_content("This log will be deleted:")
expect(page).to have_button(text: "Delete this log") expect(page).to have_button(text: "Delete this log")
expect(page).to have_link(text: "Log #{duplicate_log.id}", href: sales_log_path(duplicate_log.id)) expect(page).to have_link(text: "Log #{duplicate_log.id}", href: lettings_log_path(duplicate_log.id))
expect(page).not_to have_link(text: "Log #{id}", href: sales_log_path(id)) expect(page).not_to have_link(text: "Log #{id}", href: lettings_log_path(id))
expect(page).to have_link(text: "Cancel", href: sales_log_duplicate_logs_path(id, original_log_id: id)) expect(page).to have_link(text: "Cancel", href: lettings_log_duplicate_logs_path(id, original_log_id: id))
expect(page).to have_link(text: "Back", href: sales_log_duplicate_logs_path(id, original_log_id: id)) expect(page).to have_link(text: "Back", href: lettings_log_duplicate_logs_path(id, original_log_id: id))
end end
end end
context "when there are multiple duplicate logs being deleted" do context "when there are multiple duplicate logs being deleted" do
let!(:duplicate_log) { create(:sales_log, :duplicate, created_by: user) } let!(:duplicate_log) { create(:lettings_log, :duplicate, created_by: user) }
let!(:duplicate_log_2) { create(:sales_log, :duplicate, created_by: user) } let!(:duplicate_log_2) { create(:lettings_log, :duplicate, created_by: user) }
it "renders page" do it "renders page" do
request request
@ -462,10 +502,11 @@ RSpec.describe DuplicateLogsController, type: :request do
expect(page).to have_content("Are you sure you want to delete these duplicate logs?") expect(page).to have_content("Are you sure you want to delete these duplicate logs?")
expect(page).to have_content("These logs will be deleted:") expect(page).to have_content("These logs will be deleted:")
expect(page).to have_button(text: "Delete these logs") expect(page).to have_button(text: "Delete these logs")
expect(page).to have_link(text: "Log #{duplicate_log.id}", href: sales_log_path(duplicate_log.id)) expect(page).to have_link(text: "Log #{duplicate_log.id}", href: lettings_log_path(duplicate_log.id))
expect(page).to have_link(text: "Log #{duplicate_log_2.id}", href: sales_log_path(duplicate_log_2.id)) expect(page).to have_link(text: "Log #{duplicate_log_2.id}", href: lettings_log_path(duplicate_log_2.id))
expect(page).to have_link(text: "Cancel", href: sales_log_duplicate_logs_path(id, original_log_id: id)) expect(page).to have_link(text: "Cancel", href: lettings_log_duplicate_logs_path(id, original_log_id: id))
expect(page).to have_link(text: "Back", href: sales_log_duplicate_logs_path(id, original_log_id: id)) expect(page).to have_link(text: "Back", href: lettings_log_duplicate_logs_path(id, original_log_id: id))
end
end end
end end
@ -493,9 +534,10 @@ RSpec.describe DuplicateLogsController, type: :request do
end end
end end
describe "GET lettings delete-duplicates" do describe "GET sales delete-duplicates" do
let(:id) { lettings_log.id } let(:headers) { { "Accept" => "text/html" } }
let(:request) { get "/lettings-logs/#{id}/delete-duplicates?original_log_id=#{id}" } let(:id) { sales_log.id }
let(:request) { get "/sales-logs/#{id}/delete-duplicates?original_log_id=#{id}" }
before do before do
allow(user).to receive(:need_two_factor_authentication?).and_return(false) allow(user).to receive(:need_two_factor_authentication?).and_return(false)
@ -503,14 +545,54 @@ RSpec.describe DuplicateLogsController, type: :request do
end end
context "when there are no duplicate logs" do context "when there are no duplicate logs" do
it "renders page not found" do it "renders not found" do
request request
expect(response).to have_http_status(:not_found) expect(response).to have_http_status(:not_found)
end end
end end
context "when accessed from the duplicate logs banner flow" do
let(:request) { get "/sales-logs/#{id}/delete-duplicates?original_log_id=#{id}&referrer=duplicate_logs_banner" }
context "when there is 1 duplicate log being deleted" do context "when there is 1 duplicate log being deleted" do
let!(:duplicate_log) { create(:lettings_log, :duplicate, created_by: user) } let!(:duplicate_log) { create(:sales_log, :duplicate, created_by: user) }
it "renders page with correct link params" do
request
expect(response).to have_http_status(:ok)
expect(page).to have_content("Are you sure you want to delete this duplicate log?")
expect(page).to have_content("This log will be deleted:")
expect(page).to have_button(text: "Delete this log")
expect(page).to have_link(text: "Log #{duplicate_log.id}", href: sales_log_path(duplicate_log.id))
expect(page).not_to have_link(text: "Log #{id}", href: sales_log_path(id))
expect(page).to have_link(text: "Cancel", href: sales_log_duplicate_logs_path(id, original_log_id: id, referrer: "duplicate_logs_banner"))
expect(page).to have_link(text: "Back", href: sales_log_duplicate_logs_path(id, original_log_id: id, referrer: "duplicate_logs_banner"))
end
end
context "when there are multiple duplicate logs being deleted" do
let!(:duplicate_log) { create(:sales_log, :duplicate, created_by: user) }
let!(:duplicate_log_2) { create(:sales_log, :duplicate, created_by: user) }
it "renders page with correct link params" do
request
expect(response).to have_http_status(:ok)
expect(page).to have_content("Are you sure you want to delete these duplicate logs?")
expect(page).to have_content("These logs will be deleted:")
expect(page).to have_button(text: "Delete these logs")
expect(page).to have_link(text: "Log #{duplicate_log.id}", href: sales_log_path(duplicate_log.id))
expect(page).to have_link(text: "Log #{duplicate_log_2.id}", href: sales_log_path(duplicate_log_2.id))
expect(page).to have_link(text: "Cancel", href: sales_log_duplicate_logs_path(id, original_log_id: id, referrer: "duplicate_logs_banner"))
expect(page).to have_link(text: "Back", href: sales_log_duplicate_logs_path(id, original_log_id: id, referrer: "duplicate_logs_banner"))
end
end
end
context "when accessed from the single log submission flow" do
context "when there is 1 duplicate log being deleted" do
let!(:duplicate_log) { create(:sales_log, :duplicate, created_by: user) }
it "renders page" do it "renders page" do
request request
@ -519,16 +601,16 @@ RSpec.describe DuplicateLogsController, type: :request do
expect(page).to have_content("Are you sure you want to delete this duplicate log?") expect(page).to have_content("Are you sure you want to delete this duplicate log?")
expect(page).to have_content("This log will be deleted:") expect(page).to have_content("This log will be deleted:")
expect(page).to have_button(text: "Delete this log") expect(page).to have_button(text: "Delete this log")
expect(page).to have_link(text: "Log #{duplicate_log.id}", href: lettings_log_path(duplicate_log.id)) expect(page).to have_link(text: "Log #{duplicate_log.id}", href: sales_log_path(duplicate_log.id))
expect(page).not_to have_link(text: "Log #{id}", href: lettings_log_path(id)) expect(page).not_to have_link(text: "Log #{id}", href: sales_log_path(id))
expect(page).to have_link(text: "Cancel", href: lettings_log_duplicate_logs_path(id, original_log_id: id)) expect(page).to have_link(text: "Cancel", href: sales_log_duplicate_logs_path(id, original_log_id: id))
expect(page).to have_link(text: "Back", href: lettings_log_duplicate_logs_path(id, original_log_id: id)) expect(page).to have_link(text: "Back", href: sales_log_duplicate_logs_path(id, original_log_id: id))
end end
end end
context "when there are multiple duplicate logs being deleted" do context "when there are multiple duplicate logs being deleted" do
let!(:duplicate_log) { create(:lettings_log, :duplicate, created_by: user) } let!(:duplicate_log) { create(:sales_log, :duplicate, created_by: user) }
let!(:duplicate_log_2) { create(:lettings_log, :duplicate, created_by: user) } let!(:duplicate_log_2) { create(:sales_log, :duplicate, created_by: user) }
it "renders page" do it "renders page" do
request request
@ -537,10 +619,11 @@ RSpec.describe DuplicateLogsController, type: :request do
expect(page).to have_content("Are you sure you want to delete these duplicate logs?") expect(page).to have_content("Are you sure you want to delete these duplicate logs?")
expect(page).to have_content("These logs will be deleted:") expect(page).to have_content("These logs will be deleted:")
expect(page).to have_button(text: "Delete these logs") expect(page).to have_button(text: "Delete these logs")
expect(page).to have_link(text: "Log #{duplicate_log.id}", href: lettings_log_path(duplicate_log.id)) expect(page).to have_link(text: "Log #{duplicate_log.id}", href: sales_log_path(duplicate_log.id))
expect(page).to have_link(text: "Log #{duplicate_log_2.id}", href: lettings_log_path(duplicate_log_2.id)) expect(page).to have_link(text: "Log #{duplicate_log_2.id}", href: sales_log_path(duplicate_log_2.id))
expect(page).to have_link(text: "Cancel", href: lettings_log_duplicate_logs_path(id, original_log_id: id)) expect(page).to have_link(text: "Cancel", href: sales_log_duplicate_logs_path(id, original_log_id: id))
expect(page).to have_link(text: "Back", href: lettings_log_duplicate_logs_path(id, original_log_id: id)) expect(page).to have_link(text: "Back", href: sales_log_duplicate_logs_path(id, original_log_id: id))
end
end end
end end

Loading…
Cancel
Save