spec/lib/auth0/mixins/httparty_proxy_spec.rb in auth0-ruby-0.9.1 vs spec/lib/auth0/mixins/httparty_proxy_spec.rb in auth0-ruby-0.10

- old
+ new

@@ -3,10 +3,69 @@ before :all do dummy_instance = DummyClassForProxy.new dummy_instance.extend(Auth0::Mixins::HTTPartyProxy) @instance = dummy_instance end - %i(get post put patch delete).each do |http_method| + + %i(get).each do |http_method| + context ".#{http_method}" do + it {expect(@instance).to respond_to(http_method.to_sym)} + it "should call send http #{http_method} method to path defined through HTTParty" do + allow(DummyClassForProxy).to receive(http_method).with("http://login.auth0.com/test", :query => {}) + expect(DummyClassForProxy).to receive(http_method).with("/test", :query => {}).and_return(StubResponse.new({}, true, 200)) + expect{@instance.send(http_method,"/test")}.not_to raise_error + end + + it "should not raise exception if data returned not in json format(should be fixed in v2)" do + allow(DummyClassForProxy).to receive(http_method).with("/test", :query => {}).and_return(StubResponse.new("Some random text here", true, 200)) + expect{@instance.send(http_method,"/test")}.not_to raise_error + expect(@instance.send(http_method,"/test")).to eql "Some random text here" + end + + it "should raise Auth0::Unauthorized on send http #{http_method} method to path defined through HTTParty when 401 status received" do + allow(DummyClassForProxy).to receive(http_method).with("http://login.auth0.com/test", :query => {}) + expect(DummyClassForProxy).to receive(http_method).with("/test", :query => {}).and_return(StubResponse.new({}, false, 401)) + expect{@instance.send(http_method,"/test")}.to raise_error(Auth0::Unauthorized) + end + + it "should raise Auth0::NotFound on send http #{http_method} method to path defined through HTTParty when 404 status received" do + allow(DummyClassForProxy).to receive(http_method).with("http://login.auth0.com/test", :query => {}) + expect(DummyClassForProxy).to receive(http_method).with("/test", :query => {}).and_return(StubResponse.new({}, false, 404)) + expect{@instance.send(http_method,"/test")}.to raise_error(Auth0::NotFound) + end + + it "should raise Auth0::Unsupported on send http #{http_method} method to path defined through HTTParty when 418 or other unknown status received" do + allow(DummyClassForProxy).to receive(http_method).with("http://login.auth0.com/test", :query => {}) + expect(DummyClassForProxy).to receive(http_method).with("/test", :query => {}).and_return(StubResponse.new({}, false, 418)) + expect{@instance.send(http_method,"/test")}.to raise_error(Auth0::Unsupported) + end + + it "should raise Auth0::BadRequest on send http #{http_method} method to path defined through HTTParty when 400 or other unknown status received" do + allow(DummyClassForProxy).to receive(http_method).with("http://login.auth0.com/test", :query => {}) + expect(DummyClassForProxy).to receive(http_method).with("/test", :query => {}).and_return(StubResponse.new({}, false, 400)) + expect{@instance.send(http_method,"/test")}.to raise_error(Auth0::BadRequest) + end + + it "should raise Auth0::AccessDenied on send http #{http_method} method to path defined through HTTParty when 403" do + allow(DummyClassForProxy).to receive(http_method).with("http://login.auth0.com/test", :query => {}) + expect(DummyClassForProxy).to receive(http_method).with("/test", :query => {}).and_return(StubResponse.new({}, false, 403)) + expect{@instance.send(http_method,"/test")}.to raise_error(Auth0::AccessDenied) + end + it "should raise Auth0::ServerError on send http #{http_method} method to path defined through HTTParty when 500 received" do + allow(DummyClassForProxy).to receive(http_method).with("http://login.auth0.com/test", :query => {}) + expect(DummyClassForProxy).to receive(http_method).with("/test", :query => {}).and_return(StubResponse.new({}, false, 500)) + expect{@instance.send(http_method,"/test")}.to raise_error(Auth0::ServerError) + end + + it "should escape path with URI.escape" do + allow(DummyClassForProxy).to receive(http_method).with("http://login.auth0.com/te%20st", :query => {}) + expect(DummyClassForProxy).to receive(http_method).with("/te%20st", :query => {}).and_return(StubResponse.new({}, true, 200)) + expect{@instance.send(http_method,"/te st")}.not_to raise_error + end + end + end + + %i(post put patch delete).each do |http_method| context ".#{http_method}" do it {expect(@instance).to respond_to(http_method.to_sym)} it "should call send http #{http_method} method to path defined through HTTParty" do allow(DummyClassForProxy).to receive(http_method).with("http://login.auth0.com/test", :body => "{}") expect(DummyClassForProxy).to receive(http_method).with("/test", :body => "{}").and_return(StubResponse.new("{}", true, 200))