diff options
Diffstat (limited to 'spec/lib/gitlab/git/base_error_spec.rb')
-rw-r--r-- | spec/lib/gitlab/git/base_error_spec.rb | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/spec/lib/gitlab/git/base_error_spec.rb b/spec/lib/gitlab/git/base_error_spec.rb index d4db7cf2430..6efebd778b7 100644 --- a/spec/lib/gitlab/git/base_error_spec.rb +++ b/spec/lib/gitlab/git/base_error_spec.rb @@ -21,7 +21,7 @@ RSpec.describe Gitlab::Git::BaseError do it { is_expected.to eq(result) } end - describe "When initialized with GRPC errors" do + describe "when initialized with GRPC errors without metadata" do let(:grpc_error) { GRPC::DeadlineExceeded.new } let(:git_error) { described_class.new grpc_error } @@ -29,6 +29,33 @@ RSpec.describe Gitlab::Git::BaseError do expect(git_error.service).to eq('git') expect(git_error.status).to eq(4) expect(git_error.code).to eq('deadline_exceeded') + expect(git_error.metadata).to eq({}) + end + end + + describe "when initialized with GRPC errors with metadata" do + let(:grpc_error) do + GRPC::DeadlineExceeded.new( + "deadline exceeded", + gitaly_error_metadata: { + storage: "default", + address: "unix://gitaly.socket", + service: :ref_service, rpc: :find_local_branches + } + ) + end + + let(:git_error) { described_class.new grpc_error } + + it "has status, code, and metadata fields" do + expect(git_error.service).to eq('git') + expect(git_error.status).to eq(4) + expect(git_error.code).to eq('deadline_exceeded') + expect(git_error.metadata).to eq( + storage: "default", + address: "unix://gitaly.socket", + service: :ref_service, rpc: :find_local_branches + ) end end end |