|
96 | 96 | before do |
97 | 97 | allow(request).to receive(:env).and_return({ |
98 | 98 | 'action_dispatch.routes' => route_set, |
99 | | - 'action_dispatch.request.path_parameters' => {} |
| 99 | + 'action_dispatch.request.path_parameters' => {}, |
| 100 | + 'PATH_INFO' => '/users/1' |
100 | 101 | }) |
101 | 102 | end |
102 | 103 |
|
103 | 104 | let(:router) { double('ActionDispatch::Routing::RouteSet::Router') } |
104 | 105 | let(:route_set) { double('ActionDispatch::Routing::RouteSet', router: router) } |
105 | | - let(:request) { double('Rack::Request', env: {}, script_name: '', path: '/users/1') } |
| 106 | + let(:request) { double('Rack::Request', script_name: '', path: '/users/1') } |
106 | 107 |
|
107 | 108 | it { expect(described_class.route_pattern(request)).to eq('/users/{param:int}') } |
108 | 109 |
|
109 | 110 | it 'persists inferred route in the request env' do |
110 | 111 | expect { described_class.route_pattern(request) } |
111 | | - .to change { request.env[Datadog::Tracing::Contrib::Rack::Ext::DATADOG_INFERRED_ROUTE] } |
| 112 | + .to change { request.env[Datadog::Tracing::Contrib::Rack::RouteInference::DATADOG_INFERRED_ROUTE_ENV_KEY] } |
112 | 113 | .from(nil).to('/users/{param:int}') |
113 | 114 | end |
114 | 115 | end |
|
157 | 158 |
|
158 | 159 | context 'when Rails router cannot recognize request' do |
159 | 160 | before do |
160 | | - allow(request).to receive(:env).and_return({'action_dispatch.routes' => route_set}) |
161 | | - allow(request).to receive(:path).and_return('/unmatched/route') |
| 161 | + allow(request).to receive(:env).and_return({ |
| 162 | + 'action_dispatch.routes' => route_set, |
| 163 | + 'PATH_INFO' => '/unmatched/route' |
| 164 | + }) |
162 | 165 | allow(router).to receive(:recognize).with(request).and_return([]) |
163 | 166 | end |
164 | 167 |
|
|
175 | 178 | end |
176 | 179 |
|
177 | 180 | context 'when route has nested path' do |
178 | | - before { allow(request).to receive(:path).and_return('/some/other/path') } |
| 181 | + before { allow(request).to receive(:env).and_return({'PATH_INFO' => '/some/other/path'}) } |
179 | 182 |
|
180 | 183 | it { expect(described_class.route_pattern(request)).to eq('/some/other/path') } |
181 | 184 | end |
|
0 commit comments