diff options
Diffstat (limited to 'spec')
-rw-r--r-- | spec/controllers/projects/notes_controller_spec.rb | 58 | ||||
-rw-r--r-- | spec/requests/api/notes_spec.rb | 38 |
2 files changed, 95 insertions, 1 deletions
diff --git a/spec/controllers/projects/notes_controller_spec.rb b/spec/controllers/projects/notes_controller_spec.rb index 00bc38b6071..e71b2200846 100644 --- a/spec/controllers/projects/notes_controller_spec.rb +++ b/spec/controllers/projects/notes_controller_spec.rb @@ -4,7 +4,50 @@ describe Projects::NotesController do let(:user) { create(:user) } let(:project) { create(:project) } let(:issue) { create(:issue, project: project) } - let(:note) { create(:note, noteable: issue, project: project) } + let(:note) { create(:note, noteable: issue, project: project, author: user) } + + describe 'POST #create' do + before do + sign_in(user) + project.team << [user, :developer] + end + + context 'when creating notes is disabled' do + it 'responds with a service unavailable error' do + expect(Gitlab::Feature).to receive(:feature_enabled?). + with(:creating_notes). + and_return(false) + + post(:create, + namespace_id: project.namespace.path, + project_id: project.path) + + expect(response.status).to eq(503) + end + end + end + + describe 'PUT #update' do + before do + sign_in(user) + project.team << [user, :developer] + end + + context 'when updating notes is disabled' do + it 'responds with a service unavailable error' do + expect(Gitlab::Feature).to receive(:feature_enabled?). + with(:updating_notes). + and_return(false) + + put(:update, + namespace_id: project.namespace.path, + project_id: project.path, + id: note.id) + + expect(response.status).to eq(503) + end + end + end describe 'POST #toggle_award_emoji' do before do @@ -32,5 +75,18 @@ describe Projects::NotesController do expect(response.status).to eq(200) end + + context 'when toggling award emoji is disabled' do + it 'responds with a service unavailable error' do + expect(Gitlab::Feature).to receive(:feature_enabled?). + with(:toggling_award_emoji). + and_return(false) + + post(:toggle_award_emoji, namespace_id: project.namespace.path, + project_id: project.path, id: note.id, name: "thumbsup") + + expect(response.status).to eq(503) + end + end end end diff --git a/spec/requests/api/notes_spec.rb b/spec/requests/api/notes_spec.rb index beb29a68692..6f4ad308946 100644 --- a/spec/requests/api/notes_spec.rb +++ b/spec/requests/api/notes_spec.rb @@ -266,6 +266,18 @@ describe API::API, api: true do expect(private_issue.notes.reload).to be_empty end end + + context 'when creating notes is disabled' do + it 'responds with a service unavailable error' do + expect(Gitlab::Feature).to receive(:feature_enabled?). + with(:creating_notes). + and_return(false) + + post api("/projects/#{project.id}/issues/#{issue.id}/notes", user), body: 'hi!' + + expect(response.status).to eq(503) + end + end end describe "POST /projects/:id/noteable/:noteable_id/notes to test observer on create" do @@ -334,6 +346,19 @@ describe API::API, api: true do expect(response.status).to eq(404) end end + + context 'when updating notes is disabled' do + it 'responds with a service unavailable error' do + expect(Gitlab::Feature).to receive(:feature_enabled?). + with(:updating_notes). + and_return(false) + + put api("/projects/#{project.id}/issues/#{issue.id}/notes/"\ + "#{issue_note.id}", user), body: 'hi!' + + expect(response.status).to eq(503) + end + end end describe 'DELETE /projects/:id/noteable/:noteable_id/notes/:note_id' do @@ -395,6 +420,19 @@ describe API::API, api: true do expect(response.status).to eq(404) end end + + context 'when deleting notes is disabled' do + it 'responds with a service unavailable error' do + expect(Gitlab::Feature).to receive(:feature_enabled?). + with(:removing_notes). + and_return(false) + + delete api("/projects/#{project.id}/issues/#{issue.id}/notes/"\ + "#{issue_note.id}", user) + + expect(response.status).to eq(503) + end + end end end |