diff options
Diffstat (limited to 'spec/services/notes')
-rw-r--r-- | spec/services/notes/build_service_spec.rb | 2 | ||||
-rw-r--r-- | spec/services/notes/create_service_spec.rb | 4 | ||||
-rw-r--r-- | spec/services/notes/destroy_service_spec.rb | 2 | ||||
-rw-r--r-- | spec/services/notes/post_process_service_spec.rb | 2 | ||||
-rw-r--r-- | spec/services/notes/quick_actions_service_spec.rb | 2 | ||||
-rw-r--r-- | spec/services/notes/render_service_spec.rb | 2 | ||||
-rw-r--r-- | spec/services/notes/resolve_service_spec.rb | 2 | ||||
-rw-r--r-- | spec/services/notes/update_service_spec.rb | 41 |
8 files changed, 48 insertions, 9 deletions
diff --git a/spec/services/notes/build_service_spec.rb b/spec/services/notes/build_service_spec.rb index 984658cbd19..90548cf9a99 100644 --- a/spec/services/notes/build_service_spec.rb +++ b/spec/services/notes/build_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe Notes::BuildService do +RSpec.describe Notes::BuildService do let(:note) { create(:discussion_note_on_issue) } let(:project) { note.project } let(:author) { note.author } diff --git a/spec/services/notes/create_service_spec.rb b/spec/services/notes/create_service_spec.rb index 39d6fd26e31..fd824621db7 100644 --- a/spec/services/notes/create_service_spec.rb +++ b/spec/services/notes/create_service_spec.rb @@ -2,12 +2,12 @@ require 'spec_helper' -describe Notes::CreateService do +RSpec.describe Notes::CreateService do let_it_be(:project) { create(:project, :repository) } let_it_be(:issue) { create(:issue, project: project) } let_it_be(:user) { create(:user) } let(:opts) do - { note: 'Awesome comment', noteable_type: 'Issue', noteable_id: issue.id } + { note: 'Awesome comment', noteable_type: 'Issue', noteable_id: issue.id, confidential: true } end describe '#execute' do diff --git a/spec/services/notes/destroy_service_spec.rb b/spec/services/notes/destroy_service_spec.rb index 258e5c68265..d1076f77cec 100644 --- a/spec/services/notes/destroy_service_spec.rb +++ b/spec/services/notes/destroy_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe Notes::DestroyService do +RSpec.describe Notes::DestroyService do let_it_be(:project) { create(:project, :public) } let_it_be(:issue) { create(:issue, project: project) } let(:user) { issue.author } diff --git a/spec/services/notes/post_process_service_spec.rb b/spec/services/notes/post_process_service_spec.rb index d564cacd2d8..07ef08d36c4 100644 --- a/spec/services/notes/post_process_service_spec.rb +++ b/spec/services/notes/post_process_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe Notes::PostProcessService do +RSpec.describe Notes::PostProcessService do let(:project) { create(:project) } let(:issue) { create(:issue, project: project) } let(:user) { create(:user) } diff --git a/spec/services/notes/quick_actions_service_spec.rb b/spec/services/notes/quick_actions_service_spec.rb index 7eea2a7afc6..d20824efaaa 100644 --- a/spec/services/notes/quick_actions_service_spec.rb +++ b/spec/services/notes/quick_actions_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe Notes::QuickActionsService do +RSpec.describe Notes::QuickActionsService do shared_context 'note on noteable' do let(:project) { create(:project, :repository) } let(:maintainer) { create(:user).tap { |u| project.add_maintainer(u) } } diff --git a/spec/services/notes/render_service_spec.rb b/spec/services/notes/render_service_spec.rb index ad69721d876..09cd7dc572b 100644 --- a/spec/services/notes/render_service_spec.rb +++ b/spec/services/notes/render_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe Notes::RenderService do +RSpec.describe Notes::RenderService do describe '#execute' do it 'renders a Note' do note = double(:note) diff --git a/spec/services/notes/resolve_service_spec.rb b/spec/services/notes/resolve_service_spec.rb index c98384c226e..1c5b308aed1 100644 --- a/spec/services/notes/resolve_service_spec.rb +++ b/spec/services/notes/resolve_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe Notes::ResolveService do +RSpec.describe Notes::ResolveService do let(:merge_request) { create(:merge_request) } let(:note) { create(:diff_note_on_merge_request, noteable: merge_request, project: merge_request.project) } let(:user) { merge_request.author } diff --git a/spec/services/notes/update_service_spec.rb b/spec/services/notes/update_service_spec.rb index ab28e08ec83..70dea99de4a 100644 --- a/spec/services/notes/update_service_spec.rb +++ b/spec/services/notes/update_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe Notes::UpdateService do +RSpec.describe Notes::UpdateService do let(:group) { create(:group, :public) } let(:project) { create(:project, :public, group: group) } let(:private_group) { create(:group, :private) } @@ -59,6 +59,45 @@ describe Notes::UpdateService do end end + context 'setting confidentiality' do + let(:opts) { { confidential: true } } + + context 'simple note' do + it 'updates the confidentiality' do + expect { update_note(opts) }.to change { note.reload.confidential }.from(nil).to(true) + end + end + + context 'discussion notes' do + let(:note) { create(:discussion_note, project: project, noteable: issue, author: user, note: "Old note #{user2.to_reference}") } + let!(:response_note_1) { create(:discussion_note, project: project, noteable: issue, in_reply_to: note) } + let!(:response_note_2) { create(:discussion_note, project: project, noteable: issue, in_reply_to: note, confidential: false) } + let!(:other_note) { create(:note, project: project, noteable: issue) } + + context 'when updating the root note' do + it 'updates the confidentiality of the root note and all the responses' do + update_note(opts) + + expect(note.reload.confidential).to be_truthy + expect(response_note_1.reload.confidential).to be_truthy + expect(response_note_2.reload.confidential).to be_truthy + expect(other_note.reload.confidential).to be_falsey + end + end + + context 'when updating one of the response notes' do + it 'updates only the confidentiality of the note that is being updated' do + Notes::UpdateService.new(project, user, opts).execute(response_note_1) + + expect(note.reload.confidential).to be_falsey + expect(response_note_1.reload.confidential).to be_truthy + expect(response_note_2.reload.confidential).to be_falsey + expect(other_note.reload.confidential).to be_falsey + end + end + end + end + context 'todos' do shared_examples 'does not update todos' do it 'keep todos' do |