From beeeede2eed9bd78a5948178e270935fa9d92c51 Mon Sep 17 00:00:00 2001 From: Nick Thomas Date: Thu, 4 Apr 2019 18:52:29 +0100 Subject: [PATCH] Fix a KeyError in GitlabSchema --- app/graphql/gitlab_schema.rb | 2 +- spec/graphql/gitlab_schema_spec.rb | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/app/graphql/gitlab_schema.rb b/app/graphql/gitlab_schema.rb index 7e3c09440a2..53efd9042b1 100644 --- a/app/graphql/gitlab_schema.rb +++ b/app/graphql/gitlab_schema.rb @@ -31,7 +31,7 @@ class GitlabSchema < GraphQL::Schema end def self.max_query_complexity(ctx) - current_user = ctx&.fetch(:current_user) + current_user = ctx&.fetch(:current_user, nil) if current_user&.admin ADMIN_COMPLEXITY diff --git a/spec/graphql/gitlab_schema_spec.rb b/spec/graphql/gitlab_schema_spec.rb index a535d9cdc7e..74e93b2c4df 100644 --- a/spec/graphql/gitlab_schema_spec.rb +++ b/spec/graphql/gitlab_schema_spec.rb @@ -34,12 +34,22 @@ describe GitlabSchema do end context 'for different types of users' do - it 'returns DEFAULT_MAX_COMPLEXITY for no user' do - expect(GraphQL::Schema).to receive(:execute).with('query', hash_including(max_complexity: GitlabSchema::DEFAULT_MAX_COMPLEXITY)) + it 'returns DEFAULT_MAX_COMPLEXITY for no context' do + expect(GraphQL::Schema) + .to receive(:execute) + .with('query', hash_including(max_complexity: GitlabSchema::DEFAULT_MAX_COMPLEXITY)) described_class.execute('query') end + it 'returns DEFAULT_MAX_COMPLEXITY for no user' do + expect(GraphQL::Schema) + .to receive(:execute) + .with('query', hash_including(max_complexity: GitlabSchema::DEFAULT_MAX_COMPLEXITY)) + + described_class.execute('query', context: {}) + end + it 'returns AUTHENTICATED_COMPLEXITY for a logged in user' do user = build :user -- GitLab