diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-08-19 12:08:42 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-08-19 12:08:42 +0300 |
commit | b76ae638462ab0f673e5915986070518dd3f9ad3 (patch) | |
tree | bdab0533383b52873be0ec0eb4d3c66598ff8b91 /spec/lib/api | |
parent | 434373eabe7b4be9593d18a585fb763f1e5f1a6f (diff) |
Add latest changes from gitlab-org/gitlab@14-2-stable-eev14.2.0-rc42
Diffstat (limited to 'spec/lib/api')
-rw-r--r-- | spec/lib/api/ci/helpers/runner_helpers_spec.rb (renamed from spec/lib/api/helpers/runner_helpers_spec.rb) | 4 | ||||
-rw-r--r-- | spec/lib/api/ci/helpers/runner_spec.rb (renamed from spec/lib/api/helpers/runner_spec.rb) | 4 | ||||
-rw-r--r-- | spec/lib/api/helpers/packages/dependency_proxy_helpers_spec.rb | 62 | ||||
-rw-r--r-- | spec/lib/api/helpers_spec.rb | 36 |
4 files changed, 85 insertions, 21 deletions
diff --git a/spec/lib/api/helpers/runner_helpers_spec.rb b/spec/lib/api/ci/helpers/runner_helpers_spec.rb index 65b35845aab..c6638bea59e 100644 --- a/spec/lib/api/helpers/runner_helpers_spec.rb +++ b/spec/lib/api/ci/helpers/runner_helpers_spec.rb @@ -2,12 +2,12 @@ require 'spec_helper' -RSpec.describe API::Helpers::Runner do +RSpec.describe API::Ci::Helpers::Runner do let(:ip_address) { '1.2.3.4' } let(:runner_class) do Class.new do include API::Helpers - include API::Helpers::Runner + include API::Ci::Helpers::Runner attr_accessor :params diff --git a/spec/lib/api/helpers/runner_spec.rb b/spec/lib/api/ci/helpers/runner_spec.rb index e55c20b7ab6..99f2db544a5 100644 --- a/spec/lib/api/helpers/runner_spec.rb +++ b/spec/lib/api/ci/helpers/runner_spec.rb @@ -2,8 +2,8 @@ require 'spec_helper' -RSpec.describe API::Helpers::Runner do - let(:helper) { Class.new { include API::Helpers::Runner }.new } +RSpec.describe API::Ci::Helpers::Runner do + let(:helper) { Class.new { include API::Ci::Helpers::Runner }.new } before do allow(helper).to receive(:env).and_return({}) diff --git a/spec/lib/api/helpers/packages/dependency_proxy_helpers_spec.rb b/spec/lib/api/helpers/packages/dependency_proxy_helpers_spec.rb index 99b52236771..ae0c0f53acd 100644 --- a/spec/lib/api/helpers/packages/dependency_proxy_helpers_spec.rb +++ b/spec/lib/api/helpers/packages/dependency_proxy_helpers_spec.rb @@ -5,7 +5,7 @@ require 'spec_helper' RSpec.describe API::Helpers::Packages::DependencyProxyHelpers do let_it_be(:helper) { Class.new.include(described_class).new } - describe 'redirect_registry_request' do + describe '#redirect_registry_request' do using RSpec::Parameterized::TableSyntax let(:options) { {} } @@ -13,7 +13,7 @@ RSpec.describe API::Helpers::Packages::DependencyProxyHelpers do subject { helper.redirect_registry_request(forward_to_registry, package_type, options) { helper.fallback } } before do - allow(helper).to receive(:options).and_return(for: API::NpmInstancePackages) + allow(helper).to receive(:options).and_return(for: described_class) end shared_examples 'executing fallback' do @@ -34,38 +34,66 @@ RSpec.describe API::Helpers::Packages::DependencyProxyHelpers do subject - expect_snowplow_event(category: 'API::NpmInstancePackages', action: 'npm_request_forward') + expect_snowplow_event(category: described_class.to_s, action: "#{package_type}_request_forward") end end - context 'with npm packages' do - let(:package_type) { :npm } + %i[npm pypi].each do |forwardable_package_type| + context "with #{forwardable_package_type} packages" do + include_context 'dependency proxy helpers context' - where(:application_setting, :forward_to_registry, :example_name) do - true | true | 'executing redirect' - true | false | 'executing fallback' - false | true | 'executing fallback' - false | false | 'executing fallback' - end + let(:package_type) { forwardable_package_type } - with_them do - before do - stub_application_setting(npm_package_requests_forwarding: application_setting) + where(:application_setting, :forward_to_registry, :example_name) do + true | true | 'executing redirect' + true | false | 'executing fallback' + false | true | 'executing fallback' + false | false | 'executing fallback' end - it_behaves_like params[:example_name] + with_them do + before do + allow_fetch_application_setting(attribute: "#{forwardable_package_type}_package_requests_forwarding", return_value: application_setting) + end + + it_behaves_like params[:example_name] + end end end - context 'with non-forwardable packages' do + context 'with non-forwardable package type' do let(:forward_to_registry) { true } before do stub_application_setting(npm_package_requests_forwarding: true) + stub_application_setting(pypi_package_requests_forwarding: true) end - Packages::Package.package_types.keys.without('npm').each do |pkg_type| + Packages::Package.package_types.keys.without('npm', 'pypi').each do |pkg_type| context "#{pkg_type}" do + let(:package_type) { pkg_type.to_sym } + + it 'raises an error' do + expect { subject }.to raise_error(ArgumentError, "Can't find application setting for package_type #{package_type}") + end + end + end + end + + describe '#registry_url' do + subject { helper.registry_url(package_type, package_name: 'test') } + + where(:package_type, :expected_result) do + :npm | 'https://registry.npmjs.org/test' + :pypi | 'https://pypi.org/simple/test/' + end + + with_them do + it { is_expected.to eq(expected_result) } + end + + Packages::Package.package_types.keys.without('npm', 'pypi').each do |pkg_type| + context "with non-forwardable package type #{pkg_type}" do let(:package_type) { pkg_type } it 'raises an error' do diff --git a/spec/lib/api/helpers_spec.rb b/spec/lib/api/helpers_spec.rb index 6e48ee4c315..587fe60860a 100644 --- a/spec/lib/api/helpers_spec.rb +++ b/spec/lib/api/helpers_spec.rb @@ -581,4 +581,40 @@ RSpec.describe API::Helpers do end end end + + describe '#order_by_similarity?' do + where(:params, :allow_unauthorized, :current_user_set, :expected) do + {} | false | false | false + {} | true | false | false + {} | false | true | false + {} | true | true | false + { order_by: 'similarity' } | false | false | false + { order_by: 'similarity' } | true | false | false + { order_by: 'similarity' } | true | true | false + { order_by: 'similarity' } | false | true | false + { search: 'test' } | false | false | false + { search: 'test' } | true | false | false + { search: 'test' } | true | true | false + { search: 'test' } | false | true | false + { order_by: 'similarity', search: 'test' } | false | false | false + { order_by: 'similarity', search: 'test' } | true | false | true + { order_by: 'similarity', search: 'test' } | true | true | true + { order_by: 'similarity', search: 'test' } | false | true | true + end + + with_them do + let_it_be(:user) { create(:user) } + + before do + u = current_user_set ? user : nil + subject.instance_variable_set(:@current_user, u) + + allow(subject).to receive(:params).and_return(params) + end + + it 'returns the expected result' do + expect(subject.order_by_similarity?(allow_unauthorized: allow_unauthorized)).to eq(expected) + end + end + end end |