diff options
author | Douglas Barbosa Alexandre <dbalexandre@gmail.com> | 2019-04-04 18:46:15 +0000 |
---|---|---|
committer | Douglas Barbosa Alexandre <dbalexandre@gmail.com> | 2019-04-04 18:46:15 +0000 |
commit | 6d000c9f9cbc65f92ed27ea55a14e5de9b11320d (patch) | |
tree | 5bf39716ebd10e4d6001a56d44798f974fd8d613 | |
parent | 3958b4d358596cbb6198708d997c14dbe13b400a (diff) | |
parent | beeeede2eed9bd78a5948178e270935fa9d92c51 (diff) | |
download | gitlab-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.rb | 2 | ||||
-rw-r--r-- | 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 |