1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
|
# frozen_string_literal: true
RSpec.shared_examples 'DELETE request permissions for admin mode' do
subject { delete api(path, current_user, admin_mode: admin_mode) }
let_it_be(:user_organizations) do
Array(defined?(current_organization) ? current_organization : create(:organization))
end
let_it_be(:success_status_code) { :no_content }
let_it_be(:failed_status_code) { :forbidden }
it_behaves_like 'when admin'
it_behaves_like 'when user'
end
RSpec.shared_examples 'GET request permissions for admin mode' do
subject { get api(path, current_user, admin_mode: admin_mode) }
let_it_be(:user_organizations) do
Array(defined?(current_organization) ? current_organization : create(:organization))
end
let_it_be(:success_status_code) { :ok }
let_it_be(:failed_status_code) { :forbidden }
it_behaves_like 'when admin'
it_behaves_like 'when user'
end
RSpec.shared_examples 'PUT request permissions for admin mode' do
subject { put api(path, current_user, admin_mode: admin_mode), params: params }
let_it_be(:user_organizations) do
Array(defined?(current_organization) ? current_organization : create(:organization))
end
let_it_be(:success_status_code) { :ok }
let_it_be(:failed_status_code) { :forbidden }
it_behaves_like 'when admin'
it_behaves_like 'when user'
end
RSpec.shared_examples 'POST request permissions for admin mode' do
subject { post api(path, current_user, admin_mode: admin_mode), params: params }
let_it_be(:user_organizations) do
Array(defined?(current_organization) ? current_organization : create(:organization))
end
let_it_be(:success_status_code) { :created }
let_it_be(:failed_status_code) { :forbidden }
it_behaves_like 'when admin'
it_behaves_like 'when user'
end
RSpec.shared_examples 'when user' do
let_it_be(:current_user) { create(:user, organizations: user_organizations) }
include_examples 'makes request' do
let(:status) { failed_status_code }
let(:admin_mode) { true }
end
it_behaves_like 'makes request' do
let(:status) { failed_status_code }
let(:admin_mode) { false }
end
end
RSpec.shared_examples 'when admin' do
let_it_be(:current_user) { create(:admin, organizations: user_organizations) }
it_behaves_like 'makes request' do
let(:status) { success_status_code }
let(:admin_mode) { true }
end
it_behaves_like 'makes request' do
let(:status) { failed_status_code }
let(:admin_mode) { false }
end
end
RSpec.shared_examples "makes request" do
let_it_be(:status) { nil }
it "returns" do
subject
expect(response).to have_gitlab_http_status(status)
end
end
|