spec/requests_spec.rb in grape-batch-1.0.2 vs spec/requests_spec.rb in grape-batch-1.0.3
- old
+ new
@@ -3,12 +3,15 @@
require 'grape/batch'
require 'grape'
require 'api'
RSpec.describe Grape::Batch::Base do
- let(:app) { Twitter::API.new }
- let(:stack) { Grape::Batch::Base.new(app) }
+ before :context do
+ @app = Twitter::API.new
+ end
+
+ let(:stack) { Grape::Batch::Base.new(@app) }
let(:request) { Rack::MockRequest.new(stack) }
def encode(message)
MultiJson.encode(message)
end
@@ -16,10 +19,11 @@
def decode(message)
MultiJson.decode(message)
end
describe '/api' do
+
describe 'GET /hello' do
let(:response) { request.get('/api/v1/hello') }
it { expect(response.status).to eq(200) }
it { expect(response.body).to eq(encode('world')) }
@@ -144,9 +148,17 @@
context 'with a body' do
let(:request_body) { encode({requests: [{method: 'POST', path: '/api/v1/status', body: {id: 856}}]}) }
it { expect(response.status).to eq(200) }
it { expect(response.body).to eq(encode([{success: 'status 856'}])) }
+ end
+ end
+
+ describe 'POST' do
+ context 'with multiple requests' do
+ let(:request_body) { encode({requests: [{method: 'POST', path: '/api/v1/hello'}, {method: 'GET', path: '/api/v1/user/856'}]}) }
+ it { expect(response.status).to eq(200) }
+ it { expect(decode(response.body).size).to eq(2) }
end
end
end
end