spec/datadog/notifications/plugins/grape_spec.rb in datadog-notifications-0.5.0 vs spec/datadog/notifications/plugins/grape_spec.rb in datadog-notifications-0.5.1
- old
+ new
@@ -13,20 +13,20 @@
get('versioned') { "OK" }
end
Class.new(Grape::API) do
- rescue_from unauthorized do |e|
+ rescue_from unauthorized do |_e|
error!({ message: "unauthorized", error: '401 Unauthorized' }, 401)
end
get 'echo/:key1/:key2' do
"#{params['key1']} #{params['key2']}"
end
get '/rescued' do
- raise unauthorized.new("unauthorized")
+ raise unauthorized, "unauthorized"
end
namespace :sub do
mount sub_api
@@ -41,44 +41,54 @@
get '/echo/1/1234'
expect(last_response.status).to eq(200)
expect(last_response.body).to eq('1 1234')
expect(buffered).to eq([
- "api.request:1|c|#custom:tag,env:test,host:test.host,more:tags,method:GET,path:/echo/KEY1/KEY2,status:200",
- "api.request.time:333|ms|#custom:tag,env:test,host:test.host,more:tags,method:GET,path:/echo/KEY1/KEY2,status:200",
- ])
+ "api.request:1|c|#custom:tag,env:test,host:test.host,more:tags,method:GET,status:200,path:/echo/KEY1/KEY2",
+ "api.request.time:333|ms|#custom:tag,env:test,host:test.host,more:tags,method:GET,status:200,path:/echo/KEY1/KEY2",
+ ],)
end
it 'should support namespaces and versioning' do
get '/api/v1/sub/versioned.txt'
expect(last_response.status).to eq(200)
expect(last_response.body).to eq('OK')
expect(buffered).to eq([
- "api.request:1|c|#custom:tag,env:test,host:test.host,more:tags,method:GET,path:/api/sub/versioned,status:200,version:v1",
- "api.request.time:333|ms|#custom:tag,env:test,host:test.host,more:tags,method:GET,path:/api/sub/versioned,status:200,version:v1",
- ])
+ "api.request:1|c|#custom:tag,env:test,host:test.host,more:tags,method:GET,status:200,path:/api/sub/versioned,version:v1",
+ "api.request.time:333|ms|#custom:tag,env:test,host:test.host,more:tags,method:GET,status:200,path:/api/sub/versioned,version:v1",
+ ],)
end
it 'should support deep nesting' do
get '/sub/secure/resource'
expect(last_response.status).to eq(403)
expect(last_response.body).to eq('forbidden')
expect(buffered).to eq([
- "api.request:1|c|#custom:tag,env:test,host:test.host,more:tags,method:GET,path:/sub/secure/resource,status:403",
- "api.request.time:333|ms|#custom:tag,env:test,host:test.host,more:tags,method:GET,path:/sub/secure/resource,status:403",
- ])
+ "api.request:1|c|#custom:tag,env:test,host:test.host,more:tags,method:GET,status:403,path:/sub/secure/resource",
+ "api.request.time:333|ms|#custom:tag,env:test,host:test.host,more:tags,method:GET,status:403,path:/sub/secure/resource",
+ ],)
end
it 'should handle rescued errors' do
get '/rescued'
expect(last_response.status).to eq(401)
expect(buffered).to eq([
- "api.request:1|c|#custom:tag,env:test,host:test.host,more:tags,method:GET,path:/rescued,status:401",
- "api.request.time:333|ms|#custom:tag,env:test,host:test.host,more:tags,method:GET,path:/rescued,status:401",
- ])
+ "api.request:1|c|#custom:tag,env:test,host:test.host,more:tags,method:GET,status:401,path:/rescued",
+ "api.request.time:333|ms|#custom:tag,env:test,host:test.host,more:tags,method:GET,status:401,path:/rescued",
+ ],)
+ end
+
+ it 'should handle invalid method' do
+ post '/rescued'
+
+ expect(last_response.status).to eq(405)
+ expect(buffered).to eq([
+ "api.request:1|c|#custom:tag,env:test,host:test.host,more:tags,method:POST,status:405,path:/rescued",
+ "api.request.time:333|ms|#custom:tag,env:test,host:test.host,more:tags,method:POST,status:405,path:/rescued",
+ ],)
end
it 'should not report paths on 404s' do
get '/sub/missing'
expect(last_response.status).to eq(404)