spec/unit/intercom/request_spec.rb in intercom-3.8.0 vs spec/unit/intercom/request_spec.rb in intercom-3.8.1
- old
+ new
@@ -35,44 +35,44 @@
stub_request(:any, uri).\
to_return(status: [429, "Too Many Requests"], headers: { 'X-RateLimit-Reset' => (Time.now.utc + 10).to_i.to_s })
req = Intercom::Request.get(uri, "")
req.handle_rate_limit=true
req.expects(:sleep).times(3).with(any_parameters)
- req.execute(target_base_url=uri, username: "ted", secret: "")
+ req.execute(uri, username: "ted", secret: "")
}.must_raise(Intercom::RateLimitExceeded)
end
it 'should not call sleep for rate limit error' do
# Use webmock to mock the HTTP request
stub_request(:any, uri).\
to_return(status: [200, "OK"], headers: { 'X-RateLimit-Reset' => Time.now.utc + 10 })
req = Intercom::Request.get(uri, "")
req.handle_rate_limit=true
req.expects(:sleep).never.with(any_parameters)
- req.execute(target_base_url=uri, username: "ted", secret: "")
+ req.execute(uri, username: "ted", secret: "")
end
it 'should call sleep for rate limit error just once' do
# Use webmock to mock the HTTP request
stub_request(:any, uri).\
to_return(status: [429, "Too Many Requests"], headers: { 'X-RateLimit-Reset' => (Time.now.utc + 10).to_i.to_s }).\
then.to_return(status: [200, "OK"])
req = Intercom::Request.get(uri, "")
req.handle_rate_limit=true
req.expects(:sleep).with(any_parameters)
- req.execute(target_base_url=uri, username: "ted", secret: "")
+ req.execute(uri, username: "ted", secret: "")
end
it 'should not sleep if rate limit reset time has passed' do
# Use webmock to mock the HTTP request
stub_request(:any, uri).\
to_return(status: [429, "Too Many Requests"], headers: { 'X-RateLimit-Reset' => Time.parse("February 25 2010").utc.to_i.to_s }).\
then.to_return(status: [200, "OK"])
req = Intercom::Request.get(uri, "")
req.handle_rate_limit=true
req.expects(:sleep).never.with(any_parameters)
- req.execute(target_base_url=uri, username: "ted", secret: "")
+ req.execute(uri, username: "ted", secret: "")
end
end
describe "Application errors on failure" do
@@ -80,18 +80,25 @@
it 'should raise ResourceNotUniqueError error on resource_conflict code' do
# Use webmock to mock the HTTP request
stub_request(:put, uri).\
to_return(status: [409, "Resource Already Exists"], headers: { 'X-RateLimit-Reset' => (Time.now.utc + 10).to_i.to_s }, body: {type: "error.list", errors: [ code: "resource_conflict" ]}.to_json)
req = Intercom::Request.put(uri, "")
- expect { req.execute(target_base_url=uri, username: "ted", secret: "") }.must_raise(Intercom::ResourceNotUniqueError)
+ expect { req.execute(uri, username: "ted", secret: "") }.must_raise(Intercom::ResourceNotUniqueError)
end
it 'should raise ApiVersionInvalid error on intercom_version_invalid code' do
# Use webmock to mock the HTTP request
stub_request(:put, uri).\
to_return(status: [400, "Bad Request"], headers: { 'X-RateLimit-Reset' => (Time.now.utc + 10).to_i.to_s }, body: {type: "error.list", errors: [ code: "intercom_version_invalid" ]}.to_json)
req = Intercom::Request.put(uri, "")
expect { req.execute(uri, username: "ted", secret: "") }.must_raise(Intercom::ApiVersionInvalid)
+ end
+
+ it 'should raise ResourceNotFound error on company_not_found code' do
+ stub_request(:put, uri).\
+ to_return(status: [404, "Not Found"], headers: { 'X-RateLimit-Reset' => (Time.now.utc + 10).to_i.to_s }, body: {type: "error.list", errors: [ code: "company_not_found" ]}.to_json)
+ req = Intercom::Request.put(uri, "")
+ expect { req.execute(uri, username: "ted", secret: "") }.must_raise(Intercom::ResourceNotFound)
end
end
it 'parse_body returns nil if decoded_body is nil' do
response = OpenStruct.new(:code => 500)