diff options
author | Bob Van Landuyt <bob@vanlanduyt.co> | 2019-06-03 19:38:16 +0200 |
---|---|---|
committer | Bob Van Landuyt <bob@vanlanduyt.co> | 2019-06-03 21:59:25 +0200 |
commit | ed503d51a39943b482e917028d589cc26ec01c95 (patch) | |
tree | e41dfcd7d63d8c69ed2ffc5f08e229589a344b9e /spec/requests | |
parent | 07630b3bdf7b386b820b2b7c82ba756c46a52be6 (diff) | |
download | gitlab-ce-ed503d51a39943b482e917028d589cc26ec01c95.tar.gz |
Expose IDs in GraphQL as a GlobalID
This exposes all fields named `id` as GlobalIDs so they can be used
across our entire GraphQL implementation.
When the objects loaded are `ApplicationRecord`s. We'll use our
existing batchloading to find them. Otherwise, we'll fall back to the
default implementation of `GlobalID`: Calling the `.find` method on
the class.
Diffstat (limited to 'spec/requests')
-rw-r--r-- | spec/requests/api/graphql/gitlab_schema_spec.rb | 13 | ||||
-rw-r--r-- | spec/requests/api/graphql/group_query_spec.rb | 2 | ||||
-rw-r--r-- | spec/requests/api/graphql/namespace/projects_spec.rb | 2 |
3 files changed, 14 insertions, 3 deletions
diff --git a/spec/requests/api/graphql/gitlab_schema_spec.rb b/spec/requests/api/graphql/gitlab_schema_spec.rb index b6ca9246399..28676bb02f4 100644 --- a/spec/requests/api/graphql/gitlab_schema_spec.rb +++ b/spec/requests/api/graphql/gitlab_schema_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' describe 'GitlabSchema configurations' do include GraphqlHelpers - let(:project) { create(:project) } + set(:project) { create(:project) } shared_examples 'imposing query limits' do describe '#max_complexity' do @@ -136,4 +136,15 @@ describe 'GitlabSchema configurations' do post_graphql(query, current_user: nil) end end + + context "global id's" do + it 'uses GlobalID to expose ids' do + post_graphql(graphql_query_for('project', { 'fullPath' => project.full_path }, %w(id)), + current_user: project.owner) + + parsed_id = GlobalID.parse(graphql_data['project']['id']) + + expect(parsed_id).to eq(project.to_global_id) + end + end end diff --git a/spec/requests/api/graphql/group_query_spec.rb b/spec/requests/api/graphql/group_query_spec.rb index db9f2ac9dd0..e0f1e4dbe9e 100644 --- a/spec/requests/api/graphql/group_query_spec.rb +++ b/spec/requests/api/graphql/group_query_spec.rb @@ -56,7 +56,7 @@ describe 'getting group information' do post_graphql(group_query(group1), current_user: user1) expect(response).to have_gitlab_http_status(200) - expect(graphql_data['group']['id']).to eq(group1.id.to_s) + expect(graphql_data['group']['id']).to eq(group1.to_global_id.to_s) expect(graphql_data['group']['name']).to eq(group1.name) expect(graphql_data['group']['path']).to eq(group1.path) expect(graphql_data['group']['description']).to eq(group1.description) diff --git a/spec/requests/api/graphql/namespace/projects_spec.rb b/spec/requests/api/graphql/namespace/projects_spec.rb index e05273da4bd..de1cd9586b6 100644 --- a/spec/requests/api/graphql/namespace/projects_spec.rb +++ b/spec/requests/api/graphql/namespace/projects_spec.rb @@ -60,7 +60,7 @@ describe 'getting projects', :nested_groups do expect(graphql_data['namespace']['projects']['edges'].size).to eq(1) project = graphql_data['namespace']['projects']['edges'][0]['node'] - expect(project['id']).to eq(public_project.id.to_s) + expect(project['id']).to eq(public_project.to_global_id.to_s) end end end |