Browse Source

feat: test params passed correctly on delete

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

207
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,43 +428,85 @@ 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 there is 1 duplicate log being deleted" do context "when accessed from the duplicate logs banner flow" do
let!(:duplicate_log) { create(:sales_log, :duplicate, created_by: user) } let(:request) { get "/lettings-logs/#{id}/delete-duplicates?original_log_id=#{id}&referrer=duplicate_logs_banner" }
it "renders page" do context "when there is 1 duplicate log being deleted" do
request let!(:duplicate_log) { create(:lettings_log, :duplicate, created_by: user) }
expect(response).to have_http_status(:ok)
it "renders page with correct link params" do
expect(page).to have_content("Are you sure you want to delete this duplicate log?") request
expect(page).to have_button(text: "Delete this log") expect(response).to have_http_status(:ok)
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_content("Are you sure you want to delete this duplicate log?")
expect(page).to have_link(text: "Cancel", href: sales_log_duplicate_logs_path(id, original_log_id: id)) expect(page).to have_content("This log will be deleted:")
expect(page).to have_link(text: "Back", href: sales_log_duplicate_logs_path(id, original_log_id: id)) 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
end end
context "when there are multiple duplicate logs being deleted" do context "when accessed from the single log submission flow" do
let!(:duplicate_log) { create(:sales_log, :duplicate, created_by: user) } context "when there is 1 duplicate log being deleted" do
let!(:duplicate_log_2) { create(:sales_log, :duplicate, created_by: user) } let!(:duplicate_log) { create(:lettings_log, :duplicate, created_by: user) }
it "renders page" 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))
expect(page).to have_link(text: "Back", href: lettings_log_duplicate_logs_path(id, original_log_id: id))
end
end
it "renders page" do context "when there are multiple duplicate logs being deleted" do
request let!(:duplicate_log) { create(:lettings_log, :duplicate, created_by: user) }
expect(response).to have_http_status(:ok) let!(:duplicate_log_2) { create(:lettings_log, :duplicate, created_by: user) }
expect(page).to have_content("Are you sure you want to delete these duplicate logs?") it "renders page" do
expect(page).to have_content("These logs will be deleted:") request
expect(page).to have_button(text: "Delete these logs") expect(response).to have_http_status(:ok)
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_content("Are you sure you want to delete these duplicate logs?")
expect(page).to have_link(text: "Cancel", href: sales_log_duplicate_logs_path(id, original_log_id: id)) expect(page).to have_content("These logs will be deleted:")
expect(page).to have_link(text: "Back", href: sales_log_duplicate_logs_path(id, original_log_id: id)) 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))
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,44 +545,85 @@ 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 there is 1 duplicate log being deleted" do context "when accessed from the duplicate logs banner flow" do
let!(:duplicate_log) { create(:lettings_log, :duplicate, created_by: user) } let(:request) { get "/sales-logs/#{id}/delete-duplicates?original_log_id=#{id}&referrer=duplicate_logs_banner" }
it "renders page" do context "when there is 1 duplicate log being deleted" do
request let!(:duplicate_log) { create(:sales_log, :duplicate, created_by: user) }
expect(response).to have_http_status(:ok)
it "renders page with correct link params" do
expect(page).to have_content("Are you sure you want to delete this duplicate log?") request
expect(page).to have_content("This log will be deleted:") expect(response).to have_http_status(:ok)
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_content("Are you sure you want to delete this duplicate log?")
expect(page).not_to have_link(text: "Log #{id}", href: lettings_log_path(id)) expect(page).to have_content("This log will be deleted:")
expect(page).to have_link(text: "Cancel", href: lettings_log_duplicate_logs_path(id, original_log_id: id)) expect(page).to have_button(text: "Delete this log")
expect(page).to have_link(text: "Back", href: lettings_log_duplicate_logs_path(id, original_log_id: 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: 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
end end
context "when there are multiple duplicate logs being deleted" do context "when accessed from the single log submission flow" do
let!(:duplicate_log) { create(:lettings_log, :duplicate, created_by: user) } context "when there is 1 duplicate log being deleted" do
let!(:duplicate_log_2) { create(:lettings_log, :duplicate, created_by: user) } let!(:duplicate_log) { create(:sales_log, :duplicate, created_by: user) }
it "renders page" 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))
expect(page).to have_link(text: "Back", href: sales_log_duplicate_logs_path(id, original_log_id: id))
end
end
it "renders page" do context "when there are multiple duplicate logs being deleted" do
request let!(:duplicate_log) { create(:sales_log, :duplicate, created_by: user) }
expect(response).to have_http_status(:ok) let!(:duplicate_log_2) { create(:sales_log, :duplicate, created_by: user) }
expect(page).to have_content("Are you sure you want to delete these duplicate logs?") it "renders page" do
expect(page).to have_content("These logs will be deleted:") request
expect(page).to have_button(text: "Delete these logs") expect(response).to have_http_status(:ok)
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_content("Are you sure you want to delete these duplicate logs?")
expect(page).to have_link(text: "Cancel", href: lettings_log_duplicate_logs_path(id, original_log_id: id)) expect(page).to have_content("These logs will be deleted:")
expect(page).to have_link(text: "Back", href: lettings_log_duplicate_logs_path(id, original_log_id: id)) 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))
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