From 1c20b62c9609262f676b7a2178410ccfa98e5c16 Mon Sep 17 00:00:00 2001 From: Arthur Campbell Date: Fri, 17 Mar 2023 07:42:45 +0000 Subject: [PATCH] write feature tests to check that breadcrumbs have the correct links --- spec/features/lettings_log_spec.rb | 26 ++++++++++++++++ spec/features/sales_log_spec.rb | 48 +++++++++++++++++++++++++++++- 2 files changed, 73 insertions(+), 1 deletion(-) diff --git a/spec/features/lettings_log_spec.rb b/spec/features/lettings_log_spec.rb index f145f9e7c..0695a43e6 100644 --- a/spec/features/lettings_log_spec.rb +++ b/spec/features/lettings_log_spec.rb @@ -94,6 +94,32 @@ RSpec.describe "Lettings Log Features" do end end + context "when visiting a subsection check answers page" do + let(:lettings_log) { FactoryBot.create(:lettings_log, :about_completed) } + + it "has the correct breadcrumbs with the correct links" do + visit lettings_log_setup_check_answers_path(lettings_log.id) + breadcrumbs = page.find_all(".govuk-breadcrumbs__link") + expect(breadcrumbs.first.text).to eq "Logs" + expect(breadcrumbs.first[:href]).to eq lettings_logs_path + expect(breadcrumbs[1].text).to eq "Log #{lettings_log.id}" + expect(breadcrumbs[1][:href]).to eq lettings_log_path(lettings_log.id) + end + end + + context "when reviewing a complete log" do + let(:lettings_log) { FactoryBot.create(:lettings_log, :completed) } + + it "has the correct breadcrumbs with the correct links" do + visit review_lettings_log_path(lettings_log.id) + breadcrumbs = page.find_all(".govuk-breadcrumbs__link") + expect(breadcrumbs.first.text).to eq "Logs" + expect(breadcrumbs.first[:href]).to eq lettings_logs_path + expect(breadcrumbs[1].text).to eq "Log #{lettings_log.id}" + expect(breadcrumbs[1][:href]).to eq lettings_log_path(lettings_log.id) + end + end + context "when the owning organisation question isn't answered" do it "doesn't show the managing agent question" do visit("/lettings-logs") diff --git a/spec/features/sales_log_spec.rb b/spec/features/sales_log_spec.rb index 04331d824..332605bd7 100644 --- a/spec/features/sales_log_spec.rb +++ b/spec/features/sales_log_spec.rb @@ -28,7 +28,7 @@ RSpec.describe "Sales Log Features" do click_link("Logs") end - it "navigates you to the lettings logs page" do + it "navigates you to the sales logs page" do expect(page).to have_current_path("/sales-logs") end end @@ -65,4 +65,50 @@ RSpec.describe "Sales Log Features" do end end end + + context "when signed in as a support user" do + let(:devise_notify_mailer) { DeviseNotifyMailer.new } + let(:notify_client) { instance_double(Notifications::Client) } + let(:otp) { "999111" } + let(:organisation) { FactoryBot.create(:organisation, name: "Big ORG") } + let(:user) { FactoryBot.create(:user, :support, last_sign_in_at: Time.zone.now, organisation:) } + let(:sales_log) { FactoryBot.create(:sales_log, :completed) } + + before do + allow(DeviseNotifyMailer).to receive(:new).and_return(devise_notify_mailer) + allow(devise_notify_mailer).to receive(:notify_client).and_return(notify_client) + allow(notify_client).to receive(:send_email).and_return(true) + allow(SecureRandom).to receive(:random_number).and_return(otp) + visit("/sales-logs") + fill_in("user[email]", with: user.email) + fill_in("user[password]", with: user.password) + click_button("Sign in") + fill_in("code", with: otp) + click_button("Submit") + end + + context "when visiting a subsection check answers page as a support user" do + + it "has the correct breadcrumbs with the correct links" do + visit sales_log_setup_check_answers_path(sales_log.id) + breadcrumbs = page.find_all(".govuk-breadcrumbs__link") + expect(breadcrumbs.first.text).to eq "Logs" + expect(breadcrumbs.first[:href]).to eq sales_logs_path + expect(breadcrumbs[1].text).to eq "Log #{sales_log.id}" + expect(breadcrumbs[1][:href]).to eq sales_log_path(sales_log.id) + end + end + + context "when reviewing a complete log" do + + it "has the correct breadcrumbs with the correct links" do + visit review_sales_log_path(sales_log.id, sales_log: true) + breadcrumbs = page.find_all(".govuk-breadcrumbs__link") + expect(breadcrumbs.first.text).to eq "Logs" + expect(breadcrumbs.first[:href]).to eq sales_logs_path + expect(breadcrumbs[1].text).to eq "Log #{sales_log.id}" + expect(breadcrumbs[1][:href]).to eq sales_log_path(sales_log.id) + end + end + end end