Sha256: 12af9a843c8511910691e92ef7a4207363b091795cd6d81b041a24d43fbd9e8a
Contents?: true
Size: 1002 Bytes
Versions: 1
Compression:
Stored size: 1002 Bytes
Contents
module RailsTwirp class IntegrationTest < ActiveSupport::TestCase attr_reader :response, :request, :controller def initialize(name) super reset! @before_rpc = [] end def reset! @request = nil @response = nil end def before_rpc(&block) @before_rpc << block end def rpc(service, rpc, request, headers: nil) @request = request service = app.twirp.routes.services[service].to_service rack_env = {} http_request = ActionDispatch::Request.new(rack_env) http_request.headers.merge! headers if headers.present? env = {rack_env: rack_env} @before_rpc.each do |hook| hook.call(env) end response = begin service.call_rpc rpc, request, env rescue => e Twirp::Error.internal_with(e) end @response = response @controller = http_request.controller_instance response end def app RailsTwirp.test_app end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rails_twirp-0.3.0 | lib/rails_twirp/testing/integration_test.rb |