diff options
| author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-08-11 15:10:57 +0000 |
|---|---|---|
| committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-08-11 15:10:57 +0000 |
| commit | 4f54ec92edd344449ee005fd4dd727fa2e3e3ffd (patch) | |
| tree | e8e8fe275493e6af3c572c0b93525c77a4623400 /spec/requests/api/graphql/packages/nuget_spec.rb | |
| parent | 4d68d8b937211e5cdcf58443ddf693f0f1d13794 (diff) | |
| download | gitlab-ce-4f54ec92edd344449ee005fd4dd727fa2e3e3ffd.tar.gz | |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/requests/api/graphql/packages/nuget_spec.rb')
| -rw-r--r-- | spec/requests/api/graphql/packages/nuget_spec.rb | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/spec/requests/api/graphql/packages/nuget_spec.rb b/spec/requests/api/graphql/packages/nuget_spec.rb index 1de16009684..ba8d2ca42d2 100644 --- a/spec/requests/api/graphql/packages/nuget_spec.rb +++ b/spec/requests/api/graphql/packages/nuget_spec.rb @@ -6,8 +6,11 @@ RSpec.describe 'nuget package details' do include_context 'package details setup' let_it_be(:package) { create(:nuget_package, :with_metadatum, project: project) } + let_it_be(:dependency_link) { create(:packages_dependency_link, :with_nuget_metadatum, package: package) } let(:metadata) { query_graphql_fragment('NugetMetadata') } + let(:dependency_link_response) { graphql_data_at(:package, :dependency_links, :nodes, 0) } + let(:dependency_response) { graphql_data_at(:package, :dependency_links, :nodes, 0, :dependency) } subject { post_graphql(query, current_user: user) } @@ -26,4 +29,34 @@ RSpec.describe 'nuget package details' do 'iconUrl' => package.nuget_metadatum.icon_url ) end + + it 'has dependency links' do + expect(dependency_link_response).to include( + 'id' => global_id_of(dependency_link), + 'dependencyType' => dependency_link.dependency_type.upcase + ) + + expect(dependency_response).to include( + 'id' => global_id_of(dependency_link.dependency), + 'name' => dependency_link.dependency.name, + 'versionPattern' => dependency_link.dependency.version_pattern + ) + end + + it 'avoids N+1 queries' do + first_user = create(:user) + second_user = create(:user) + + control_count = ActiveRecord::QueryRecorder.new do + post_graphql(query, current_user: first_user) + end + + create_list(:packages_dependency_link, 10, :with_nuget_metadatum, package: package) + + expect do + post_graphql(query, current_user: second_user) + end.not_to exceed_query_limit(control_count) + + expect(response).to have_gitlab_http_status(:ok) + end end |
