Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-05-19 18:44:42 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2021-05-19 18:44:42 +0300
commit4555e1b21c365ed8303ffb7a3325d773c9b8bf31 (patch)
tree5423a1c7516cffe36384133ade12572cf709398d /spec/support/shared_examples/graphql/resolvers
parente570267f2f6b326480d284e0164a6464ba4081bc (diff)
Add latest changes from gitlab-org/gitlab@13-12-stable-eev13.12.0-rc42
Diffstat (limited to 'spec/support/shared_examples/graphql/resolvers')
-rw-r--r--spec/support/shared_examples/graphql/resolvers/packages_resolvers_shared_examples.rb63
1 files changed, 63 insertions, 0 deletions
diff --git a/spec/support/shared_examples/graphql/resolvers/packages_resolvers_shared_examples.rb b/spec/support/shared_examples/graphql/resolvers/packages_resolvers_shared_examples.rb
new file mode 100644
index 00000000000..3d6fec85490
--- /dev/null
+++ b/spec/support/shared_examples/graphql/resolvers/packages_resolvers_shared_examples.rb
@@ -0,0 +1,63 @@
+# frozen_string_literal: true
+
+RSpec.shared_examples 'group and projects packages resolver' do
+ context 'without sort' do
+ let_it_be(:npm_package) { create(:package, project: project) }
+
+ it { is_expected.to contain_exactly(npm_package) }
+ end
+
+ context 'with sorting and filtering' do
+ let_it_be(:conan_package) do
+ create(:conan_package, name: 'bar', project: project, created_at: 1.day.ago, version: "1.0.0", status: 'default')
+ end
+
+ let_it_be(:maven_package) do
+ create(:maven_package, name: 'foo', project: project, created_at: 1.hour.ago, version: "2.0.0", status: 'error')
+ end
+
+ let_it_be(:repository3) do
+ create(:maven_package, name: 'baz', project: project, created_at: 1.minute.ago, version: nil)
+ end
+
+ [:created_desc, :name_desc, :version_desc, :type_asc].each do |order|
+ context "#{order}" do
+ let(:args) { { sort: order } }
+
+ it { is_expected.to eq([maven_package, conan_package]) }
+ end
+ end
+
+ [:created_asc, :name_asc, :version_asc, :type_desc].each do |order|
+ context "#{order}" do
+ let(:args) { { sort: order } }
+
+ it { is_expected.to eq([conan_package, maven_package]) }
+ end
+ end
+
+ context 'filter by package_name' do
+ let(:args) { { package_name: 'bar', sort: :created_desc } }
+
+ it { is_expected.to eq([conan_package]) }
+ end
+
+ context 'filter by package_type' do
+ let(:args) { { package_type: 'conan', sort: :created_desc } }
+
+ it { is_expected.to eq([conan_package]) }
+ end
+
+ context 'filter by status' do
+ let(:args) { { status: 'error', sort: :created_desc } }
+
+ it { is_expected.to eq([maven_package]) }
+ end
+
+ context 'include_versionless' do
+ let(:args) { { include_versionless: true, sort: :created_desc } }
+
+ it { is_expected.to include(repository3) }
+ end
+ end
+end