diff --git a/lib/hoalife/client/base.rb b/lib/hoalife/client/base.rb index b33a001..e8af9b3 100644 --- a/lib/hoalife/client/base.rb +++ b/lib/hoalife/client/base.rb @@ -24,14 +24,22 @@ def response @response ||= validate_response! end + def uri + @uri ||= URI::HTTPS.build(host: base_uri.host, path: request_uri.path, query: request_uri.query) + end + private def request! raise 'Not implemented' end - def uri - @uri ||= URI(@url) + def request_uri + @request_uri ||= URI(@url) + end + + def base_uri + @base_uri ||= URI(HOALife.api_base) end def request_headers diff --git a/test/hoalife/client/base_test.rb b/test/hoalife/client/base_test.rb index 0971944..def74c9 100644 --- a/test/hoalife/client/base_test.rb +++ b/test/hoalife/client/base_test.rb @@ -18,6 +18,7 @@ class Client::BaseTest < HOALifeBaseTest def setup HOALife.config do |c| + c.api_base = "https://example.com/foo" c.api_key = API_KEY c.signing_secret = SIGNING_SECRET c.api_version = API_VERSION @@ -191,5 +192,13 @@ def test_response assert_equal response, instance.response end end + + def test_uri_with_url + assert_equal 'https://example.com/foo?name=bar', HOALife::Client::Base.new('https://example.com/foo?name=bar').uri.to_s + end + + def test_uri_with_path + assert_equal 'https://example.com/foo?name=bar', HOALife::Client::Base.new('/foo?name=bar').uri.to_s + end end end diff --git a/test/hoalife/client/delete_test.rb b/test/hoalife/client/delete_test.rb index bf4973e..14e8927 100644 --- a/test/hoalife/client/delete_test.rb +++ b/test/hoalife/client/delete_test.rb @@ -5,6 +5,7 @@ class HOALife::Client::DeleteTest < HOALifeBaseTest def setup HOALife.config do |cfg| + cfg.api_base = 'https://example.com/foo' cfg.api_key = 'foo' cfg.signing_secret = nil end diff --git a/test/hoalife/client/post_test.rb b/test/hoalife/client/post_test.rb index 92d6442..7234a8e 100644 --- a/test/hoalife/client/post_test.rb +++ b/test/hoalife/client/post_test.rb @@ -5,6 +5,7 @@ class HOALife::Client::PostTest < HOALifeBaseTest def setup HOALife.config do |cfg| + cfg.api_base = 'https://example.com/foo' cfg.api_key = 'foo' cfg.signing_secret = nil end diff --git a/test/hoalife/client/put_test.rb b/test/hoalife/client/put_test.rb index c54ad9b..286f31f 100644 --- a/test/hoalife/client/put_test.rb +++ b/test/hoalife/client/put_test.rb @@ -5,6 +5,7 @@ class HOALife::Client::PutTest < HOALifeBaseTest def setup HOALife.config do |cfg| + cfg.api_base = 'https://example.com/foo' cfg.api_key = 'foo' cfg.signing_secret = nil end