diff options
author | Alessio Caiazza <acaiazza@gitlab.com> | 2018-12-17 10:53:17 +0100 |
---|---|---|
committer | Alessio Caiazza <acaiazza@gitlab.com> | 2018-12-18 11:07:31 +0100 |
commit | 867a1acc9046ed15afffe8ebc04e93a3628de1d2 (patch) | |
tree | c06712017480cc65c018a48479e04c5fdca19d23 /spec/controllers | |
parent | 9004e18e6e0bca3deb7115b16e345f9755c012f3 (diff) | |
download | gitlab-ce-867a1acc9046ed15afffe8ebc04e93a3628de1d2.tar.gz |
Move Projects::ReleasesController under Tags
Rename Projects::ReleasesController to
Projects::Tags::ReleasesController
Diffstat (limited to 'spec/controllers')
-rw-r--r-- | spec/controllers/projects/releases_controller_spec.rb | 78 | ||||
-rw-r--r-- | spec/controllers/projects/tags/releases_controller_spec.rb | 57 |
2 files changed, 101 insertions, 34 deletions
diff --git a/spec/controllers/projects/releases_controller_spec.rb b/spec/controllers/projects/releases_controller_spec.rb index 20a6beb3df8..d9fb6e0d838 100644 --- a/spec/controllers/projects/releases_controller_spec.rb +++ b/spec/controllers/projects/releases_controller_spec.rb @@ -1,55 +1,65 @@ +# frozen_string_literal: true + require 'spec_helper' describe Projects::ReleasesController do - let!(:project) { create(:project, :repository) } + let!(:project) { create(:project, :repository, :public) } let!(:user) { create(:user) } - let!(:release) { create(:release, project: project) } - let!(:tag) { release.tag } before do - project.add_developer(user) - sign_in(user) + stub_feature_flags(releases_page: true) end - describe 'GET #edit' do - it 'initializes a new release' do - tag_id = release.tag - project.releases.destroy_all # rubocop: disable DestroyAll - - get :edit, namespace_id: project.namespace, project_id: project, tag_id: tag_id + describe 'GET #index' do + it 'renders a 200' do + get_index - release = assigns(:release) - expect(release).not_to be_nil - expect(release).not_to be_persisted + expect(response.status).to eq(200) end - it 'retrieves an existing release' do - get :edit, namespace_id: project.namespace, project_id: project, tag_id: release.tag + context 'when the project is private' do + let!(:project) { create(:project, :repository, :private) } - release = assigns(:release) - expect(release).not_to be_nil - expect(release).to be_persisted - end - end + it 'renders a 302' do + get_index + + expect(response.status).to eq(302) + end + + it 'renders a 200 for a logged in developer' do + project.add_developer(user) + sign_in(user) - describe 'PUT #update' do - it 'updates release note description' do - update_release('description updated') + get_index - release = project.releases.find_by_tag(tag) - expect(release.description).to eq("description updated") + expect(response.status).to eq(200) + end + + it 'renders a 404 when logged in but not in the project' do + sign_in(user) + + get_index + + expect(response.status).to eq(404) + end end - it 'deletes release note when description is null' do - expect { update_release('') }.to change(project.releases, :count).by(-1) + context 'when releases_page feature flag is disabled' do + before do + stub_feature_flags(releases_page: false) + end + + it 'renders a 404' do + get_index + + expect(response.status).to eq(404) + end end end - def update_release(description) - put :update, - namespace_id: project.namespace.to_param, - project_id: project, - tag_id: release.tag, - release: { description: description } + private + + def get_index + get :index, namespace_id: project.namespace, project_id: project end end diff --git a/spec/controllers/projects/tags/releases_controller_spec.rb b/spec/controllers/projects/tags/releases_controller_spec.rb new file mode 100644 index 00000000000..6bf4ac65a45 --- /dev/null +++ b/spec/controllers/projects/tags/releases_controller_spec.rb @@ -0,0 +1,57 @@ +# frozen_string_literal: true + +require 'spec_helper' + +describe Projects::Tags::ReleasesController do + let!(:project) { create(:project, :repository) } + let!(:user) { create(:user) } + let!(:release) { create(:release, project: project) } + let!(:tag) { release.tag } + + before do + project.add_developer(user) + sign_in(user) + end + + describe 'GET #edit' do + it 'initializes a new release' do + tag_id = release.tag + project.releases.destroy_all # rubocop: disable DestroyAll + + get :edit, namespace_id: project.namespace, project_id: project, tag_id: tag_id + + release = assigns(:release) + expect(release).not_to be_nil + expect(release).not_to be_persisted + end + + it 'retrieves an existing release' do + get :edit, namespace_id: project.namespace, project_id: project, tag_id: release.tag + + release = assigns(:release) + expect(release).not_to be_nil + expect(release).to be_persisted + end + end + + describe 'PUT #update' do + it 'updates release note description' do + update_release('description updated') + + release = project.releases.find_by_tag(tag) + expect(release.description).to eq("description updated") + end + + it 'deletes release note when description is null' do + expect { update_release('') }.to change(project.releases, :count).by(-1) + end + end + + def update_release(description) + put :update, + namespace_id: project.namespace.to_param, + project_id: project, + tag_id: release.tag, + release: { description: description } + end +end |