In `saddle` version `0.1.0` the `faraday` version was bumped to `~> 0.9.0`. With this change the stubs changed behaviour. Before `0.1.0`: ``` stubs = Faraday::Adapter::Test::Stubs.new default_client = Saddle::Client.create(:stubs => stubs, :path_prefix => 'api/v1') stubs.get('/api/v1') { [200, {}, 'party'] } default_client.requester.get('') # Returned party ``` After `0.1.0` ``` stubs = Faraday::Adapter::Test::Stubs.new default_client = Saddle::Client.create(:stubs => stubs, :path_prefix => 'api/v1') stubs.get('/api/v1') { [200, {}, 'party'] } default_client.requester.get('') # Returned error # Faraday::Adapter::Test::Stubs::NotFound (no stubbed request for get http://localhost/api/v1/ ) ``` It seems that when making a request to '' the path that is used is the `path_prefix` + '/'. The stub with `faraday` version `< 0.9.0` also added the '/' at the end, but [this changed in `0.9.0`](https://github.com/lostisland/faraday/commit/5d6faf76714d68e0f0ebd54fddc728254f090946#diff-e95fbeb134d7992449b60df2dcfc2173154d262bfecacc8bcc8f914e729fc0c2R88), where they started using `Faraday::Utils.normalize_path` which [ends up using `URI`.](https://github.com/lostisland/faraday/blob/v0.9.0/lib/faraday/utils.rb#L269) Is the '/' expected to be added at the end of the path or is this a bug? If it's the expected way just changing the stub to ``` stubs.get('/api/v1/') { [200, {}, 'party'] } ``` fixes the issue. As a side note, after `0.1.0` when making a request with something rather than blank it always adds the '/'. For example: ``` stubs = Faraday::Adapter::Test::Stubs.new default_client = Saddle::Client.create(:stubs => stubs, :path_prefix => 'api/v1') stubs.get('/api/v1') { [200, {}, 'party'] } default_client.requester.get('?a=1') # Faraday::Adapter::Test::Stubs::NotFound (no stubbed request for get http://localhost/api/v1/?a=2 ) stubs.get('/api/v1/test') { [200, {}, 'party'] } default_client.requester.get('test') # Returns "party" default_client.requester.get('/test') # Returns "party" ``` Before it has some strange behaviour: ``` stubs = Faraday::Adapter::Test::Stubs.new default_client = Saddle::Client.create(:stubs => stubs, :path_prefix => 'api/v1') stubs.get('/api/v1') { [200, {}, 'party'] } default_client.requester.get('?a=1') # Returns "party" stubs.get('/api/v1/test') { [200, {}, 'party'] } default_client.requester.get('test') # Faraday::Adapter::Test::Stubs::NotFound (no stubbed request for get /api/v1/api/v1/test ) default_client.requester.get('/test') # Returns "party" ```