diff --git a/spec/controllers/maintenance_controller_spec.rb b/spec/controllers/maintenance_controller_spec.rb index 7318927ea..ca67a5189 100644 --- a/spec/controllers/maintenance_controller_spec.rb +++ b/spec/controllers/maintenance_controller_spec.rb @@ -3,6 +3,28 @@ require "rails_helper" RSpec.describe MaintenanceController do let(:user) { FactoryBot.create(:user) } + describe "GET #service_moved" do + context "when the service has moved" do + it "logs the user out" do + allow(FeatureToggle).to receive(:service_moved?).and_return(true) + sign_in user + expect(controller).to be_user_signed_in + get :service_moved + expect(controller).not_to be_user_signed_in + end + end + + context "when the service hasn't moved" do + it "doesn't log the user out" do + allow(FeatureToggle).to receive(:service_moved?).and_return(false) + sign_in user + expect(controller).to be_user_signed_in + get :service_moved + expect(controller).to be_user_signed_in + end + end + end + describe "GET #service_unavailable" do context "when the service is unavailable" do it "logs the user out" do diff --git a/spec/features/user_spec.rb b/spec/features/user_spec.rb index f691b07ad..1910eae2a 100644 --- a/spec/features/user_spec.rb +++ b/spec/features/user_spec.rb @@ -140,6 +140,12 @@ RSpec.describe "User Features" do expect(page).to have_content("Sign in to your account to submit CORE data") end + it "does not show 'Sign in' link when the service has moved" do + allow(FeatureToggle).to receive(:service_moved?).and_return(true) + visit("/lettings-logs") + expect(page).not_to have_link("Sign in") + end + it "does not show 'Sign in' link when the service is unavailable" do allow(FeatureToggle).to receive(:service_unavailable?).and_return(true) visit("/lettings-logs") @@ -331,6 +337,13 @@ RSpec.describe "User Features" do expect(page).to have_selector('[data-qa="change-key-contact"]') end + it "does not show 'Your account' or 'Sign out' links when the service has moved" do + allow(FeatureToggle).to receive(:service_moved?).and_return(true) + visit("/lettings-logs") + expect(page).not_to have_link("Your account") + expect(page).not_to have_link("Sign out") + end + it "does not show 'Your account' or 'Sign out' links when the service is unavailable" do allow(FeatureToggle).to receive(:service_unavailable?).and_return(true) visit("/lettings-logs") diff --git a/spec/requests/content_controller_spec.rb b/spec/requests/content_controller_spec.rb index dda4ebf25..7edb69a4c 100644 --- a/spec/requests/content_controller_spec.rb +++ b/spec/requests/content_controller_spec.rb @@ -48,6 +48,40 @@ RSpec.describe ContentController, type: :request do end end + describe "when the service has moved" do + before do + allow(FeatureToggle).to receive(:service_moved?).and_return(true) + end + + describe "render privacy notice content page" do + before do + get "/privacy-notice", headers:, params: {} + end + + it "returns a 200" do + expect(response).to have_http_status(:success) + end + + it "returns the page" do + expect(page).to have_title("Privacy notice") + end + end + + describe "render accessibility statement content page" do + before do + get "/accessibility-statement", headers:, params: {} + end + + it "returns a 200" do + expect(response).to have_http_status(:success) + end + + it "returns the page" do + expect(page).to have_title("Accessibility statement") + end + end + end + describe "when the service is unavailable" do before do allow(FeatureToggle).to receive(:service_unavailable?).and_return(true) diff --git a/spec/requests/cookies_controller_spec.rb b/spec/requests/cookies_controller_spec.rb index 24ebda135..f430a6b7b 100644 --- a/spec/requests/cookies_controller_spec.rb +++ b/spec/requests/cookies_controller_spec.rb @@ -20,6 +20,26 @@ RSpec.describe CookiesController, type: :request do end end + describe "when the service has moved" do + before do + allow(FeatureToggle).to receive(:service_moved?).and_return(true) + end + + describe "render cookies page" do + before do + get "/cookies", headers:, params: {} + end + + it "returns a 200" do + expect(response).to have_http_status(:success) + end + + it "returns the page" do + expect(page).to have_title("Cookies") + end + end + end + describe "when the service is unavailable" do before do allow(FeatureToggle).to receive(:service_unavailable?).and_return(true) diff --git a/spec/requests/maintenance_controller_spec.rb b/spec/requests/maintenance_controller_spec.rb index 7f808c927..8751502ca 100644 --- a/spec/requests/maintenance_controller_spec.rb +++ b/spec/requests/maintenance_controller_spec.rb @@ -8,6 +8,44 @@ RSpec.describe MaintenanceController, type: :request do sign_in user end + describe "when the service has moved" do + before do + allow(FeatureToggle).to receive(:service_moved?).and_return(true) + end + + context "when a user visits a page other than the service moved page" do + before do + get "/service-unavailable" + end + + it "redirects the user to the service moved page" do + expect(response).to redirect_to(service_moved_path) + follow_redirect! + expect(page).to have_content("The URL for this service has changed.") + end + + it "the cookie banner is visible" do + follow_redirect! + expect(page).to have_content("We’d like to use analytics cookies so we can understand how you use the service and make improvements.") + end + end + + context "when a user visits the service moved page" do + before do + get "/service-moved" + end + + it "keeps the user on the service moved page" do + expect(response).not_to redirect_to(service_moved_path) + expect(page).to have_content("The URL for this service has changed.") + end + + it "the cookie banner is visible" do + expect(page).to have_content("We’d like to use analytics cookies so we can understand how you use the service and make improvements.") + end + end + end + describe "when the service is unavailable" do before do allow(FeatureToggle).to receive(:service_unavailable?).and_return(true)