summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouglas Barbosa Alexandre <dbalexandre@gmail.com>2019-04-04 18:46:15 +0000
committerDouglas Barbosa Alexandre <dbalexandre@gmail.com>2019-04-04 18:46:15 +0000
commit6d000c9f9cbc65f92ed27ea55a14e5de9b11320d (patch)
tree5bf39716ebd10e4d6001a56d44798f974fd8d613
parent3958b4d358596cbb6198708d997c14dbe13b400a (diff)
parentbeeeede2eed9bd78a5948178e270935fa9d92c51 (diff)
downloadgitlab-ce-6d000c9f9cbc65f92ed27ea55a14e5de9b11320d.tar.gz
Merge branch '60057-fix-gitlab-schema-keyerror' into 'master'
Fix a KeyError in GitlabSchema Closes #60057 See merge request gitlab-org/gitlab-ce!27011
-rw-r--r--app/graphql/gitlab_schema.rb2
-rw-r--r--spec/graphql/gitlab_schema_spec.rb14
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