Welcome to mirror list, hosted at ThFree Co, Russian Federation.

grpc_patch_spec.rb « initializers « spec - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 90d1269e4c105e7060bbcfba16e347d6d85276aa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# frozen_string_literal: true

require 'spec_helper'

RSpec.describe 'GRPC monkey patch', feature_category: :shared do
  let(:server) { GRPC::RpcServer.new }
  let(:stub) do
    Class.new(Gitaly::CommitService::Service) do
      def find_all_commits(_request, _call)
        sleep 1

        nil
      end
    end
  end

  it 'raises DeadlineExceeded on a late server streaming response' do
    server_port = server.add_http2_port('0.0.0.0:0', :this_port_is_insecure)
    host = "localhost:#{server_port}"
    server.handle(stub)
    thr = Thread.new { server.run }

    stub = Gitaly::CommitService::Stub.new(host, :this_channel_is_insecure)
    request = Gitaly::FindAllCommitsRequest.new
    response = stub.find_all_commits(request, deadline: Time.now + 0.1)
    expect { response.to_a }.to raise_error(GRPC::DeadlineExceeded)

    server.stop
    thr.join
  end
end