Browse Source

CLDC-2863: add tests for service_moved functionality

pull/2022/head
Sam Seed 3 years ago
parent
commit
3c3ca9a711
  1. 22
      spec/controllers/maintenance_controller_spec.rb
  2. 13
      spec/features/user_spec.rb
  3. 34
      spec/requests/content_controller_spec.rb
  4. 20
      spec/requests/cookies_controller_spec.rb
  5. 38
      spec/requests/maintenance_controller_spec.rb

22
spec/controllers/maintenance_controller_spec.rb

@ -3,6 +3,28 @@ require "rails_helper"
RSpec.describe MaintenanceController do RSpec.describe MaintenanceController do
let(:user) { FactoryBot.create(:user) } 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 describe "GET #service_unavailable" do
context "when the service is unavailable" do context "when the service is unavailable" do
it "logs the user out" do it "logs the user out" do

13
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") expect(page).to have_content("Sign in to your account to submit CORE data")
end 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 it "does not show 'Sign in' link when the service is unavailable" do
allow(FeatureToggle).to receive(:service_unavailable?).and_return(true) allow(FeatureToggle).to receive(:service_unavailable?).and_return(true)
visit("/lettings-logs") visit("/lettings-logs")
@ -331,6 +337,13 @@ RSpec.describe "User Features" do
expect(page).to have_selector('[data-qa="change-key-contact"]') expect(page).to have_selector('[data-qa="change-key-contact"]')
end 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 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) allow(FeatureToggle).to receive(:service_unavailable?).and_return(true)
visit("/lettings-logs") visit("/lettings-logs")

34
spec/requests/content_controller_spec.rb

@ -48,6 +48,40 @@ RSpec.describe ContentController, type: :request do
end end
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 describe "when the service is unavailable" do
before do before do
allow(FeatureToggle).to receive(:service_unavailable?).and_return(true) allow(FeatureToggle).to receive(:service_unavailable?).and_return(true)

20
spec/requests/cookies_controller_spec.rb

@ -20,6 +20,26 @@ RSpec.describe CookiesController, type: :request do
end end
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 describe "when the service is unavailable" do
before do before do
allow(FeatureToggle).to receive(:service_unavailable?).and_return(true) allow(FeatureToggle).to receive(:service_unavailable?).and_return(true)

38
spec/requests/maintenance_controller_spec.rb

@ -8,6 +8,44 @@ RSpec.describe MaintenanceController, type: :request do
sign_in user sign_in user
end 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 describe "when the service is unavailable" do
before do before do
allow(FeatureToggle).to receive(:service_unavailable?).and_return(true) allow(FeatureToggle).to receive(:service_unavailable?).and_return(true)

Loading…
Cancel
Save