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

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/graphql/resolvers/paginated_tree_resolver_spec.rb')
-rw-r--r--spec/graphql/resolvers/paginated_tree_resolver_spec.rb21
1 files changed, 18 insertions, 3 deletions
diff --git a/spec/graphql/resolvers/paginated_tree_resolver_spec.rb b/spec/graphql/resolvers/paginated_tree_resolver_spec.rb
index 4b05e9076d7..9a04b716001 100644
--- a/spec/graphql/resolvers/paginated_tree_resolver_spec.rb
+++ b/spec/graphql/resolvers/paginated_tree_resolver_spec.rb
@@ -66,9 +66,8 @@ RSpec.describe Resolvers::PaginatedTreeResolver do
let(:args) { super().merge(after: 'invalid') }
it 'generates an error' do
- expect_graphql_error_to_be_created(Gitlab::Graphql::Errors::ArgumentError) do
- subject
- end
+ expect_graphql_error_to_be_created(Gitlab::Graphql::Errors::BaseError) { subject }
+ expect(subject.extensions.keys).to match_array([:code, :gitaly_code, :service])
end
end
@@ -92,6 +91,22 @@ RSpec.describe Resolvers::PaginatedTreeResolver do
expect(collected_entries).to match_array(expected_entries)
end
end
+
+ describe 'Custom error handling' do
+ before do
+ grpc_err = GRPC::Unavailable.new
+ allow(repository).to receive(:tree).and_raise(Gitlab::Git::CommandError, grpc_err)
+ end
+
+ context 'when gitaly is not available' do
+ let(:request) { get :index, format: :html, params: { namespace_id: project.namespace, project_id: project } }
+
+ it 'generates an unavailable error' do
+ expect_graphql_error_to_be_created(Gitlab::Graphql::Errors::BaseError) { subject }
+ expect(subject.extensions).to eq(code: 'unavailable', gitaly_code: 14, service: 'git')
+ end
+ end
+ end
end
def resolve_repository(args, opts = {})