summaryrefslogtreecommitdiff
path: root/spec/lib/api/helpers/packages_helpers_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/lib/api/helpers/packages_helpers_spec.rb')
-rw-r--r--spec/lib/api/helpers/packages_helpers_spec.rb29
1 files changed, 27 insertions, 2 deletions
diff --git a/spec/lib/api/helpers/packages_helpers_spec.rb b/spec/lib/api/helpers/packages_helpers_spec.rb
index a3b21059334..de9d139a7b6 100644
--- a/spec/lib/api/helpers/packages_helpers_spec.rb
+++ b/spec/lib/api/helpers/packages_helpers_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe API::Helpers::PackagesHelpers do
+RSpec.describe API::Helpers::PackagesHelpers, feature_category: :package_registry do
let_it_be(:helper) { Class.new.include(API::Helpers).include(described_class).new }
let_it_be(:project) { create(:project) }
let_it_be(:group) { create(:group) }
@@ -17,6 +17,31 @@ RSpec.describe API::Helpers::PackagesHelpers do
expect(subject).to eq nil
end
+
+ context 'with an allowed required permission' do
+ subject { helper.authorize_packages_access!(project, :read_group) }
+
+ it 'authorizes packages access' do
+ expect(helper).to receive(:require_packages_enabled!)
+ expect(helper).not_to receive(:authorize_read_package!)
+ expect(helper).to receive(:authorize!).with(:read_group, project)
+
+ expect(subject).to eq nil
+ end
+ end
+
+ context 'with a not allowed permission' do
+ subject { helper.authorize_packages_access!(project, :read_permission) }
+
+ it 'rejects packages access' do
+ expect(helper).to receive(:require_packages_enabled!)
+ expect(helper).not_to receive(:authorize_read_package!)
+ expect(helper).not_to receive(:authorize!).with(:test_permission, project)
+ expect(helper).to receive(:forbidden!)
+
+ expect(subject).to eq nil
+ end
+ end
end
describe 'authorize_read_package!' do
@@ -32,7 +57,7 @@ RSpec.describe API::Helpers::PackagesHelpers do
it 'calls authorize! with correct subject' do
expect(helper).to receive(:authorize!).with(:read_package, have_attributes(id: subject.id, class: expected_class))
- expect(helper.send('authorize_read_package!', subject)).to eq nil
+ expect(helper.send(:authorize_read_package!, subject)).to eq nil
end
end
end