diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-11-30 18:14:19 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-11-30 18:14:19 +0300 |
commit | 048f666f8a2ba77e45146845ad280ea1c5460ccd (patch) | |
tree | 38a2d1438d6c3bd060a72f889f9c1eaa4e7b79b3 /spec/graphql/resolvers | |
parent | 19c9422e1f3792680aa3f9e6190218b31a838fe3 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/graphql/resolvers')
-rw-r--r-- | spec/graphql/resolvers/container_repository_tags_resolver_spec.rb | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/spec/graphql/resolvers/container_repository_tags_resolver_spec.rb b/spec/graphql/resolvers/container_repository_tags_resolver_spec.rb new file mode 100644 index 00000000000..4e7ea253c87 --- /dev/null +++ b/spec/graphql/resolvers/container_repository_tags_resolver_spec.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe Resolvers::ContainerRepositoryTagsResolver do + include GraphqlHelpers + + let_it_be(:user) { create(:user) } + let_it_be(:project) { create(:project, :public) } + let_it_be_with_reload(:repository) { create(:container_repository, project: project) } + + let(:args) { { sort: nil } } + + describe '#resolve' do + let(:resolver) { resolve(described_class, ctx: { current_user: user }, obj: repository, args: args) } + + before do + stub_container_registry_config(enabled: true) + end + + context 'by name' do + subject { resolver.map(&:name) } + + before do + stub_container_registry_tags(repository: repository.path, tags: %w(aaa bab bbb ccc 123), with_manifest: false) + end + + context 'without sort' do + # order is not guaranteed + it { is_expected.to contain_exactly('aaa', 'bab', 'bbb', 'ccc', '123') } + end + + context 'with sorting and filtering' do + context "name_asc" do + let(:args) { { sort: :name_asc } } + + it { is_expected.to eq(%w(123 aaa bab bbb ccc)) } + end + + context "name_desc" do + let(:args) { { sort: :name_desc } } + + it { is_expected.to eq(%w(ccc bbb bab aaa 123)) } + end + + context 'filter by name' do + let(:args) { { sort: :name_desc, name: 'b' } } + + it { is_expected.to eq(%w(bbb bab)) } + end + end + end + end +end |