diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-04-26 18:10:20 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-04-26 18:10:20 +0300 |
commit | aad3ac9e5e59d47e389ff387e9fc2ae3a008de33 (patch) | |
tree | 42ab9daf2c541be5fe58798d7ea0d86b190c2df8 /spec/graphql | |
parent | e5e0589e097991ca671a348de81331240e85719d (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/graphql')
-rw-r--r-- | spec/graphql/resolvers/group_packages_resolver_spec.rb | 41 | ||||
-rw-r--r-- | spec/graphql/resolvers/project_packages_resolver_spec.rb | 39 | ||||
-rw-r--r-- | spec/graphql/types/query_type_spec.rb | 13 | ||||
-rw-r--r-- | spec/graphql/types/user_type_spec.rb | 6 |
4 files changed, 91 insertions, 8 deletions
diff --git a/spec/graphql/resolvers/group_packages_resolver_spec.rb b/spec/graphql/resolvers/group_packages_resolver_spec.rb index 59438b8d5ad..d2695a3c43a 100644 --- a/spec/graphql/resolvers/group_packages_resolver_spec.rb +++ b/spec/graphql/resolvers/group_packages_resolver_spec.rb @@ -8,11 +8,46 @@ RSpec.describe Resolvers::GroupPackagesResolver do let_it_be(:user) { create(:user) } let_it_be(:group) { create(:group, :public) } let_it_be(:project) { create(:project, :public, group: group) } - let_it_be(:package) { create(:package, project: project) } + + let(:args) do + { sort: :created_desc } + end describe '#resolve' do - subject(:packages) { resolve(described_class, ctx: { current_user: user }, obj: group) } + subject { resolve(described_class, ctx: { current_user: user }, obj: group, args: args).to_a } + + context 'without sort' do + let_it_be(:package) { create(:package, project: project) } + + it { is_expected.to contain_exactly(package) } + end + + context 'with a sort argument' do + let_it_be(:project2) { create(:project, :public, group: group) } + + let_it_be(:sort_repository) do + create(:conan_package, name: 'bar', project: project, created_at: 1.day.ago, version: "1.0.0") + end + + let_it_be(:sort_repository2) do + create(:maven_package, name: 'foo', project: project2, created_at: 1.hour.ago, version: "2.0.0") + end + + [:created_desc, :name_desc, :version_desc, :type_asc, :project_path_desc].each do |order| + context "#{order}" do + let(:args) { { sort: order } } + + it { is_expected.to eq([sort_repository2, sort_repository]) } + end + end + + [:created_asc, :name_asc, :version_asc, :type_desc, :project_path_asc].each do |order| + context "#{order}" do + let(:args) { { sort: order } } - it { is_expected.to contain_exactly(package) } + it { is_expected.to eq([sort_repository, sort_repository2]) } + end + end + end end end diff --git a/spec/graphql/resolvers/project_packages_resolver_spec.rb b/spec/graphql/resolvers/project_packages_resolver_spec.rb index c8105ed2a38..695db64743d 100644 --- a/spec/graphql/resolvers/project_packages_resolver_spec.rb +++ b/spec/graphql/resolvers/project_packages_resolver_spec.rb @@ -7,11 +7,44 @@ RSpec.describe Resolvers::ProjectPackagesResolver do let_it_be(:user) { create(:user) } let_it_be(:project) { create(:project, :public) } - let_it_be(:package) { create(:package, project: project) } + + let(:args) do + { sort: :created_desc } + end describe '#resolve' do - subject(:packages) { resolve(described_class, ctx: { current_user: user }, obj: project) } + subject { resolve(described_class, ctx: { current_user: user }, obj: project, args: args).to_a } + + context 'without sort' do + let_it_be(:package) { create(:package, project: project) } + + it { is_expected.to contain_exactly(package) } + end + + context 'with a sort argument' do + let_it_be(:sort_repository) do + create(:conan_package, name: 'bar', project: project, created_at: 1.day.ago, version: "1.0.0") + end + + let_it_be(:sort_repository2) do + create(:maven_package, name: 'foo', project: project, created_at: 1.hour.ago, version: "2.0.0") + end + + [:created_desc, :name_desc, :version_desc, :type_asc].each do |order| + context "#{order}" do + let(:args) { { sort: order } } + + it { is_expected.to eq([sort_repository2, sort_repository]) } + end + end + + [:created_asc, :name_asc, :version_asc, :type_desc].each do |order| + context "#{order}" do + let(:args) { { sort: order } } - it { is_expected.to contain_exactly(package) } + it { is_expected.to eq([sort_repository, sort_repository2]) } + end + end + end end end diff --git a/spec/graphql/types/query_type_spec.rb b/spec/graphql/types/query_type_spec.rb index d3dcdd260b0..a877e19c069 100644 --- a/spec/graphql/types/query_type_spec.rb +++ b/spec/graphql/types/query_type_spec.rb @@ -21,6 +21,7 @@ RSpec.describe GitlabSchema.types['Query'] do user users issue + merge_request usage_trends_measurements runner_platforms ] @@ -60,11 +61,21 @@ RSpec.describe GitlabSchema.types['Query'] do describe 'issue field' do subject { described_class.fields['issue'] } - it 'returns issue' do + it "finds an issue by it's gid" do + is_expected.to have_graphql_arguments(:id) is_expected.to have_graphql_type(Types::IssueType) end end + describe 'merge_request field' do + subject { described_class.fields['mergeRequest'] } + + it "finds a merge_request by it's gid" do + is_expected.to have_graphql_arguments(:id) + is_expected.to have_graphql_type(Types::MergeRequestType) + end + end + describe 'usage_trends_measurements field' do subject { described_class.fields['usageTrendsMeasurements'] } diff --git a/spec/graphql/types/user_type_spec.rb b/spec/graphql/types/user_type_spec.rb index d9e67ff348b..7d73727b041 100644 --- a/spec/graphql/types/user_type_spec.rb +++ b/spec/graphql/types/user_type_spec.rb @@ -5,7 +5,11 @@ require 'spec_helper' RSpec.describe GitlabSchema.types['User'] do specify { expect(described_class.graphql_name).to eq('User') } - specify { expect(described_class).to require_graphql_authorizations(:read_user) } + specify do + runtime_type = described_class.resolve_type(build(:user), {}) + + expect(runtime_type).to require_graphql_authorizations(:read_user) + end it 'has the expected fields' do expected_fields = %w[ |