Sha256: 17cf4100c636d8b4e0d8c31903698898f2d277c9825247c076dff3e56ed3277d

Contents?: true

Size: 1.44 KB

Versions: 2

Compression:

Stored size: 1.44 KB

Contents

require_relative './spec_helper'
require_relative './test_service_services_pb'
require 'gruf'

class GrufServerImpl < Gruf::Controllers::Base

  bind ::Testdata::MyService::Service

  def test
    Testdata::TestResponse.new(some_int: 1, full_response: request.message.to_json)
  end

  def test_2
    Testdata::TestResponse.new(some_int: 2, full_response: request.message.to_json)
  end

  def test_3
    Testdata::TestResponse.new(some_int: 3, full_response: request.message.to_json)
  end

  def test_4
    Testdata::TestResponse.new(some_int: 4, full_response: request.message.to_json)
  end

  cattr_accessor :intercepted
end

class TestInterceptor < ::Gruf::Interceptors::ServerInterceptor
  def call
    GrufServerImpl.intercepted = true
    yield
  end
end

Gruf::Server.new.add_interceptor(TestInterceptor, option_foo: 'value 123')

RSpec.describe MyServiceController, type: :request do
  describe 'using get' do
    it 'should be successful and call interceptors' do
      GrufServerImpl.intercepted = false
      get "/test/blah/xyz?test_id=abc"
      expect(response).to be_successful
      expect(response.parsed_body).to eq({
                                           'someInt' => 1,
                                           'fullResponse' => %({"testId":"abc","foobar":"xyz"}),
                                           "ignoredKey" => ''
                                         })
      expect(GrufServerImpl.intercepted).to eq(true)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
grpc-rest-0.1.22 spec/gruf_spec.rb
grpc-rest-0.1.21 spec/gruf_spec.rb