Route Recognition
# spec/web/routes_spec.rb
RSpec.describe Web.routes do
# ...
it 'recognizes "GET /"' do
env = Rack::MockRequest.env_for('/')
route = described_class.recognize(env)
expect(route.path).to eq('/')
expect(route.verb).to eq('GET')
expect(route.params).to eq({})
end
it 'recognizes "PATCH /books/23"' do
env = Rack::MockRequest.env_for('/books/23', method: 'PATCH')
route = described_class.recognize(env)
expect(route.routable?).to be(true)
expect(route.path).to eq('/books/23')
expect(route.verb).to eq('PATCH')
expect(route.params).to eq(id: '23')
end
it 'does not recognize unknown route' do
env = Rack::MockRequest.env_for('/foo')
route = subject.recognize(env)
expect(route.routable?).to be(false)
end