@ -8,17 +8,55 @@ RSpec.describe MaintenanceController, type: :request do
sign_in user
end
describe " when maintenance mode is enabl ed " do
describe " when the service has mov ed " do
before do
allow ( FeatureToggle ) . to receive ( :maintenance_mode_enabl ed? ) . and_return ( true )
allow ( FeatureToggle ) . to receive ( :service_mov ed? ) . and_return ( true )
end
context " when a user visits a page other than the maintenance page " do
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 )
end
context " when a user visits a page other than the service unavailable page " do
before do
get " /lettings-logs "
end
it " redirects the user to the maintenance page " do
it " redirects the user to the service unavailabl e page " do
expect ( response ) . to redirect_to ( service_unavailable_path )
follow_redirect!
expect ( page ) . to have_content ( " Sorry, the service is unavailable " )
@ -30,12 +68,12 @@ RSpec.describe MaintenanceController, type: :request do
end
end
context " when a user visits the maintenanc e page " do
context " when a user visits the service unavailabl e page " do
before do
get " /service-unavailable "
end
it " keeps the user on the maintenanc e page " do
it " keeps the user on the service unavailabl e page " do
expect ( response ) . not_to redirect_to ( service_unavailable_path )
expect ( page ) . to have_content ( " Sorry, the service is unavailable " )
end
@ -46,17 +84,56 @@ RSpec.describe MaintenanceController, type: :request do
end
end
describe " when maintenance mode is disabled " do
describe " when both the service_moved? and service_unavailable? feature toggles are on " do
before do
allow ( FeatureToggle ) . to receive ( :service_moved? ) . and_return ( true )
allow ( FeatureToggle ) . to receive ( :service_unavailable? ) . 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 available " do
before do
allow ( FeatureToggle ) . to receive ( :maintenance_mode_enabled? ) . and_return ( false )
allow ( FeatureToggle ) . to receive ( :service_unavailable ? ) . and_return ( false )
end
context " when a user visits a page other than the maintenance page " do
context " when a user visits a page other than the service unavailabl e page " do
before do
get " /lettings-logs "
end
it " doesn't redirect the user to the maintenance page " do
it " doesn't redirect the user to the service unavailabl e page " do
expect ( response ) . not_to redirect_to ( service_unavailable_path )
expect ( page ) . to have_content ( " Create a new lettings log " )
end
@ -66,7 +143,7 @@ RSpec.describe MaintenanceController, type: :request do
end
end
context " when a user visits the maintenanc e page " do
context " when a user visits the service unavailabl e page " do
before do
get " /service-unavailable "
end