Skip to content
Snippets Groups Projects

Add License Management API to the backend

Merged Gilbert Roulot requested to merge 5488_license_management_app_blacklist_backend into master
All threads resolved!
1 file
+ 60
50
Compare changes
  • Side-by-side
  • Inline
require 'spec_helper'
describe Projects::ManagedLicensesController do
let(:project) { create(:project) }
let(:maintainer_user) { create(:user) }
let(:dev_user) { create(:user) }
let(:project) do
create(:project).tap do |p|
@software_license_policy = create(:software_license_policy, project: p)
end
end
let(:maintainer_user) do
create(:user).tap do |u|
project.add_maintainer(u)
end
end
let(:dev_user) do
create(:user).tap do |u|
project.add_developer(u)
end
end
let(:reporter_user) do
create(:user).tap do |u|
create(:project_member, :reporter, user: u, project: project)
end
end
let(:other_user) { create(:user) }
let(:unsigned_user) { create(:user) }
before do
project.add_maintainer(maintainer_user)
project.add_developer(dev_user)
let(:unlogged_user) { nil }
let(:software_license_policy) do
@software_license_policy ||= create(:software_license_policy, project: project)
end
describe 'GET #index' do
let!(:software_license_policy) { create(:software_license_policy, project: project) }
before { stub_licensed_features(license_management: true) }
describe 'GET #index' do
subject do
allow(controller).to receive(:current_user).and_return(user)
@@ -32,12 +53,12 @@
end
context 'with no logged in user' do
let(:user) { unsigned_user }
let(:user) { unlogged_user }
it 'returns a 404 error code' do
it 'returns a 401 error code' do
subject
expect(response).to have_gitlab_http_status(:not_found)
expect(response).to have_gitlab_http_status(:unauthorized)
end
end
@@ -59,8 +80,6 @@
end
describe 'GET #show' do
let!(:software_license_policy) { create(:software_license_policy, project: project) }
subject do
allow(controller).to receive(:current_user).and_return(user)
@@ -82,12 +101,12 @@
end
context 'with no logged in user' do
let(:user) { unsigned_user }
let(:user) { unlogged_user }
it 'returns a 404 error code' do
it 'returns a 401 error code' do
subject
expect(response).to have_gitlab_http_status(:not_found)
expect(response).to have_gitlab_http_status(:unauthorized)
end
end
@@ -110,7 +129,6 @@
end
describe 'GET #show with license name as identifier' do
let!(:software_license_policy) { create(:software_license_policy, project: project) }
let(:user) { dev_user }
subject do
@@ -138,9 +156,6 @@
end
describe 'POST #create' do
let!(:software_license_policy) { create(:software_license_policy, project: project) }
let(:owner) { project }
let(:software_license_policy_attributes) do
{ id: software_license_policy.id,
name: software_license_policy.name,
@@ -170,7 +185,7 @@
end
it 'returns a 403 error code' do
expect { subject }.not_to change { owner.software_license_policies.count }
expect { subject }.not_to change { project.software_license_policies.count }
expect(response).to have_gitlab_http_status(:forbidden)
end
@@ -184,23 +199,23 @@
end
it 'returns a 404 error code' do
expect { subject }.not_to change { owner.software_license_policies.count }
expect { subject }.not_to change { project.software_license_policies.count }
expect(response).to have_gitlab_http_status(:not_found)
end
end
context 'with no logged in user' do
let(:user) { unsigned_user }
let(:user) { unlogged_user }
let(:to_create_software_license_policy_attributes) do
new_software_license_policy_attributes
end
it 'returns a 404 error code' do
expect { subject }.not_to change { owner.software_license_policies.count }
it 'returns a 401 error code' do
expect { subject }.not_to change { project.software_license_policies.count }
expect(response).to have_gitlab_http_status(:not_found)
expect(response).to have_gitlab_http_status(:unauthorized)
end
end
@@ -217,7 +232,7 @@
end
it 'does not create the new software license policy' do
expect { subject }.not_to change { owner.software_license_policies.count }
expect { subject }.not_to change { project.software_license_policies.count }
end
it 'returns a bad request response' do
@@ -233,7 +248,7 @@
end
it 'creates the new software license policy' do
expect { subject }.to change { owner.software_license_policies.count }.by(1)
expect { subject }.to change { project.software_license_policies.count }.by(1)
end
it 'returns a 200 response' do
@@ -246,9 +261,6 @@
end
describe 'PATCH #update' do
let!(:software_license_policy) { create(:software_license_policy, project: project) }
let(:owner) { project }
let(:software_license_policy_attributes) do
{ id: software_license_policy.id,
name: software_license_policy.name,
@@ -283,7 +295,7 @@
end
it 'returns a 403 error code' do
expect { subject }.not_to change { owner.software_license_policies.count }
expect { subject }.not_to change { project.software_license_policies.count }
expect(response).to have_gitlab_http_status(:forbidden)
end
@@ -297,23 +309,23 @@
end
it 'returns a 404 error code' do
expect { subject }.not_to change { owner.software_license_policies.count }
expect { subject }.not_to change { project.software_license_policies.count }
expect(response).to have_gitlab_http_status(:not_found)
end
end
context 'with no logged in user' do
let(:user) { unsigned_user }
let(:user) { unlogged_user }
let(:to_create_software_license_policy_attributes) do
new_software_license_policy_attributes
end
it 'returns a 404 error code' do
expect { subject }.not_to change { owner.software_license_policies.count }
it 'returns a 401 error code' do
expect { subject }.not_to change { project.software_license_policies.count }
expect(response).to have_gitlab_http_status(:not_found)
expect(response).to have_gitlab_http_status(:unauthorized)
end
end
@@ -330,7 +342,7 @@
end
it 'does not create the new software license policy' do
expect { subject }.not_to change { owner.software_license_policies.count }
expect { subject }.not_to change { project.software_license_policies.count }
end
it 'returns a bad request response' do
@@ -346,7 +358,7 @@
end
it 'does not create a new software license policy' do
expect { subject }.not_to change { owner.software_license_policies.count }
expect { subject }.not_to change { project.software_license_policies.count }
end
it 'returns a successful response' do
@@ -366,8 +378,6 @@
end
describe 'DELETE #destroy' do
let!(:software_license_policy) { create(:software_license_policy, project: project) }
let(:owner) { project }
let(:id_to_destroy) { software_license_policy.id }
subject do
@@ -388,7 +398,7 @@
end
it 'returns a 403 error code' do
expect { subject }.not_to change { owner.software_license_policies.count }
expect { subject }.not_to change { project.software_license_policies.count }
expect(response).to have_gitlab_http_status(:forbidden)
end
@@ -402,23 +412,23 @@
end
it 'returns a 404 error code' do
expect { subject }.not_to change { owner.software_license_policies.count }
expect { subject }.not_to change { project.software_license_policies.count }
expect(response).to have_gitlab_http_status(:not_found)
end
end
context 'with no logged in user' do
let(:user) { unsigned_user }
let(:user) { unlogged_user }
let(:to_create_software_license_policy_attributes) do
new_software_license_policy_attributes
end
it 'returns a 404 error code' do
expect { subject }.not_to change { owner.software_license_policies.count }
it 'returns a 401 error code' do
expect { subject }.not_to change { project.software_license_policies.count }
expect(response).to have_gitlab_http_status(:not_found)
expect(response).to have_gitlab_http_status(:unauthorized)
end
end
@@ -427,7 +437,7 @@
context 'with an existing software license policy' do
it 'destroys the software license policy' do
expect { subject }.to change { owner.software_license_policies.count }.by(-1)
expect { subject }.to change { project.software_license_policies.count }.by(-1)
expect { software_license_policy.reload }.to raise_error ActiveRecord::RecordNotFound
end
@@ -448,7 +458,7 @@
let(:id_to_destroy) { 12341234 }
it 'does not destroy any software license policy' do
expect { subject }.to change { owner.software_license_policies.count }.by(0)
expect { subject }.to change { project.software_license_policies.count }.by(0)
expect { software_license_policy.reload }.not_to raise_error
end
Loading