1
+ Feature : engine named routes
2
+
3
+ Generated requeset specs inside a Rails Engine is able to use route and url helpers.
4
+
5
+ Scenario : include engine route helpers
6
+ Given a file named "spec/requests/widgets_spec.rb" with:
7
+ """ruby
8
+ require "rails_helper"
9
+
10
+ # A very simple Rails engine
11
+ module MyEngine
12
+ class Engine < ::Rails::Engine
13
+ isolate_namespace MyEngine
14
+ end
15
+
16
+ class LinksController < ::ActionController::Base
17
+ def index
18
+ render plain: 'hit_engine_route'
19
+ end
20
+ end
21
+ end
22
+
23
+ MyEngine::Engine.routes.draw do
24
+ resources :links, :only => [:index]
25
+ end
26
+
27
+ Rails.application.routes.draw do
28
+ mount MyEngine::Engine => "/my_engine"
29
+ end
30
+
31
+ module MyEngine
32
+ RSpec.describe "Links", :type => :request do
33
+
34
+ include Engine.routes.url_helpers
35
+
36
+ it "redirects to a random widget" do
37
+ get links_url
38
+ expect(response.body).to eq('hit_engine_route')
39
+ end
40
+ end
41
+ end
42
+ """
43
+ When I run `rspec spec`
44
+ Then the example should pass
45
+
46
+ Scenario : do not include engine route helpers
47
+ Given a file named "spec/requests/widgets_spec.rb" with:
48
+ """ruby
49
+ require "rails_helper"
50
+
51
+ # A very simple Rails engine
52
+ module MyEngine
53
+ class Engine < ::Rails::Engine
54
+ isolate_namespace MyEngine
55
+ end
56
+
57
+ class LinksController < ::ActionController::Base
58
+ def index
59
+ render plain: 'hit_engine_route'
60
+ end
61
+ end
62
+ end
63
+
64
+ MyEngine::Engine.routes.draw do
65
+ resources :links, :only => [:index]
66
+ end
67
+
68
+ Rails.application.routes.draw do
69
+ mount MyEngine::Engine => "/my_engine"
70
+ end
71
+
72
+ module MyEngine
73
+ RSpec.describe "Links", :type => :request do
74
+
75
+ it "redirects to a random widget" do
76
+ get links_url
77
+ expect(response.body).to eq('hit_engine_route')
78
+ end
79
+ end
80
+ end
81
+ """
82
+ When I run `rspec spec`
83
+ Then the example should fail
0 commit comments