Using engine routes
Routing specs can specify the routeset that will be used for the example group. This is most useful when testing Rails engines.
Specify engine routes
Given a file named "spec/routing/engine_routes_spec.rb" with:
require "rails_helper"
# A very simple Rails engine
module MyEngine
class Engine < ::Rails::Engine
isolate_namespace MyEngine
end
Engine.routes.draw do
resources :widgets, :only => [:index]
end
class WidgetsController < ::ActionController::Base
def index
end
end
end
RSpec.describe MyEngine::WidgetsController, type: :routing do
routes { MyEngine::Engine.routes }
it "routes to the list of all widgets" do
expect(:get => widgets_path).
to route_to(:controller => "my_engine/widgets", :action => "index")
end
end
When I run rspec spec
Then the examples should all pass.