| ... | ... | @@ -4,12 +4,14 @@ describe API::Releases do |
|
|
|
let(:project) { create(:project, :repository, :private) }
|
|
|
|
let(:maintainer) { create(:user) }
|
|
|
|
let(:reporter) { create(:user) }
|
|
|
|
let(:guest) { create(:user) }
|
|
|
|
let(:non_project_member) { create(:user) }
|
|
|
|
let(:commit) { create(:commit, project: project) }
|
|
|
|
|
|
|
|
before do
|
|
|
|
project.add_maintainer(maintainer)
|
|
|
|
project.add_reporter(reporter)
|
|
|
|
project.add_guest(guest)
|
|
|
|
|
|
|
|
project.repository.add_tag(maintainer, 'v0.1', commit.id)
|
|
|
|
project.repository.add_tag(maintainer, 'v0.2', commit.id)
|
| ... | ... | @@ -66,6 +68,24 @@ describe API::Releases do |
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
context 'when user is a guest' do
|
|
|
|
it 'responds 403 Forbidden' do
|
|
|
|
get api("/projects/#{project.id}/releases", guest)
|
|
|
|
|
|
|
|
expect(response).to have_gitlab_http_status(:forbidden)
|
|
|
|
end
|
|
|
|
|
|
|
|
context 'when project is public' do
|
|
|
|
let(:project) { create(:project, :repository, :public) }
|
|
|
|
|
|
|
|
it 'responds 200 OK' do
|
|
|
|
get api("/projects/#{project.id}/releases", guest)
|
|
|
|
|
|
|
|
expect(response).to have_gitlab_http_status(:ok)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
context 'when user is not a project member' do
|
|
|
|
it 'cannot find the project' do
|
|
|
|
get api("/projects/#{project.id}/releases", non_project_member)
|
| ... | ... | @@ -189,6 +209,24 @@ describe API::Releases do |
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
context 'when user is a guest' do
|
|
|
|
it 'responds 403 Forbidden' do
|
|
|
|
get api("/projects/#{project.id}/releases/v0.1", guest)
|
|
|
|
|
|
|
|
expect(response).to have_gitlab_http_status(:forbidden)
|
|
|
|
end
|
|
|
|
|
|
|
|
context 'when project is public' do
|
|
|
|
let(:project) { create(:project, :repository, :public) }
|
|
|
|
|
|
|
|
it 'responds 200 OK' do
|
|
|
|
get api("/projects/#{project.id}/releases/v0.1", guest)
|
|
|
|
|
|
|
|
expect(response).to have_gitlab_http_status(:ok)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
context 'when specified tag is not found in the project' do
|
| ... | ... | |
| ... | ... | |