mirror of
https://github.com/heartcombo/devise.git
synced 2022-11-09 12:18:31 -05:00
68 lines
1.7 KiB
Ruby
68 lines
1.7 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'test_helper'
|
|
|
|
module MyMountableEngine
|
|
class Engine < ::Rails::Engine
|
|
isolate_namespace MyMountableEngine
|
|
end
|
|
class TestsController < ActionController::Base
|
|
def index
|
|
render plain: 'Root test successful'
|
|
end
|
|
def inner_route
|
|
render plain: 'Inner route test successful'
|
|
end
|
|
end
|
|
end
|
|
|
|
MyMountableEngine::Engine.routes.draw do
|
|
get 'test', to: 'tests#inner_route'
|
|
root to: 'tests#index'
|
|
end
|
|
|
|
# If disable_clear_and_finalize is set to true, Rails will not clear other routes when calling
|
|
# again the draw method. Look at the source code at:
|
|
# http://www.rubydoc.info/docs/rails/ActionDispatch/Routing/RouteSet:draw
|
|
Rails.application.routes.disable_clear_and_finalize = true
|
|
|
|
Rails.application.routes.draw do
|
|
authenticate(:user) do
|
|
mount MyMountableEngine::Engine, at: '/mountable_engine'
|
|
end
|
|
end
|
|
|
|
class AuthenticatedMountedEngineTest < Devise::IntegrationTest
|
|
test 'redirects to the sign in page when not authenticated' do
|
|
get '/mountable_engine'
|
|
follow_redirect!
|
|
|
|
assert_response :ok
|
|
assert_contain 'You need to sign in or sign up before continuing.'
|
|
end
|
|
|
|
test 'renders the mounted engine when authenticated' do
|
|
sign_in_as_user
|
|
get '/mountable_engine'
|
|
|
|
assert_response :success
|
|
assert_contain 'Root test successful'
|
|
end
|
|
|
|
|
|
test 'renders a inner route of the mounted engine when authenticated' do
|
|
sign_in_as_user
|
|
get '/mountable_engine/test'
|
|
|
|
assert_response :success
|
|
assert_contain 'Inner route test successful'
|
|
end
|
|
|
|
test 'respond properly to a non existing route of the mounted engine' do
|
|
sign_in_as_user
|
|
|
|
assert_raise ActionController::RoutingError do
|
|
get '/mountable_engine/non-existing-route'
|
|
end
|
|
end
|
|
end
|