diff options
Diffstat (limited to 'spec/services/issuable')
4 files changed, 60 insertions, 3 deletions
diff --git a/spec/services/issuable/bulk_update_service_spec.rb b/spec/services/issuable/bulk_update_service_spec.rb index c749f282cd3..dfdfb57111c 100644 --- a/spec/services/issuable/bulk_update_service_spec.rb +++ b/spec/services/issuable/bulk_update_service_spec.rb @@ -101,6 +101,22 @@ RSpec.describe Issuable::BulkUpdateService do end end + shared_examples 'scheduling cached group count clear' do + it 'schedules worker' do + expect(Issuables::ClearGroupsIssueCounterWorker).to receive(:perform_async) + + bulk_update(issuables, params) + end + end + + shared_examples 'not scheduling cached group count clear' do + it 'does not schedule worker' do + expect(Issuables::ClearGroupsIssueCounterWorker).not_to receive(:perform_async) + + bulk_update(issuables, params) + end + end + context 'with issuables at a project level' do let(:parent) { project } @@ -131,6 +147,11 @@ RSpec.describe Issuable::BulkUpdateService do expect(project.issues.opened).to be_empty expect(project.issues.closed).not_to be_empty end + + it_behaves_like 'scheduling cached group count clear' do + let(:issuables) { issues } + let(:params) { { state_event: 'close' } } + end end describe 'reopen issues' do @@ -149,6 +170,11 @@ RSpec.describe Issuable::BulkUpdateService do expect(project.issues.closed).to be_empty expect(project.issues.opened).not_to be_empty end + + it_behaves_like 'scheduling cached group count clear' do + let(:issuables) { issues } + let(:params) { { state_event: 'reopen' } } + end end describe 'updating merge request assignee' do @@ -231,6 +257,10 @@ RSpec.describe Issuable::BulkUpdateService do let(:milestone) { create(:milestone, project: project) } it_behaves_like 'updates milestones' + + it_behaves_like 'not scheduling cached group count clear' do + let(:params) { { milestone_id: milestone.id } } + end end describe 'updating labels' do diff --git a/spec/services/issuable/common_system_notes_service_spec.rb b/spec/services/issuable/common_system_notes_service_spec.rb index a988ab81754..1426ef2a1f6 100644 --- a/spec/services/issuable/common_system_notes_service_spec.rb +++ b/spec/services/issuable/common_system_notes_service_spec.rb @@ -23,7 +23,7 @@ RSpec.describe Issuable::CommonSystemNotesService do end it 'creates a resource label event' do - described_class.new(project, user).execute(issuable, old_labels: []) + described_class.new(project: project, current_user: user).execute(issuable, old_labels: []) event = issuable.reload.resource_label_events.last expect(event).not_to be_nil @@ -66,7 +66,7 @@ RSpec.describe Issuable::CommonSystemNotesService do context 'on issuable create' do let(:issuable) { build(:issue, project: project) } - subject { described_class.new(project, user).execute(issuable, old_labels: [], is_update: false) } + subject { described_class.new(project: project, current_user: user).execute(issuable, old_labels: [], is_update: false) } it 'does not create system note for title and description' do issuable.save! diff --git a/spec/services/issuable/destroy_label_links_service_spec.rb b/spec/services/issuable/destroy_label_links_service_spec.rb new file mode 100644 index 00000000000..bbc69e266c9 --- /dev/null +++ b/spec/services/issuable/destroy_label_links_service_spec.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe Issuable::DestroyLabelLinksService do + describe '#execute' do + context 'when target is an Issue' do + let_it_be(:target) { create(:issue) } + + it_behaves_like 'service deleting label links of an issuable' + end + + context 'when target is a MergeRequest' do + let_it_be(:target) { create(:merge_request) } + + it_behaves_like 'service deleting label links of an issuable' + end + end +end diff --git a/spec/services/issuable/destroy_service_spec.rb b/spec/services/issuable/destroy_service_spec.rb index fa4902e5237..c72d48d5b77 100644 --- a/spec/services/issuable/destroy_service_spec.rb +++ b/spec/services/issuable/destroy_service_spec.rb @@ -7,7 +7,7 @@ RSpec.describe Issuable::DestroyService do let(:group) { create(:group, :public) } let(:project) { create(:project, :public, group: group) } - subject(:service) { described_class.new(project, user) } + subject(:service) { described_class.new(project: project, current_user: user) } describe '#execute' do context 'when issuable is an issue' do @@ -31,6 +31,10 @@ RSpec.describe Issuable::DestroyService do it_behaves_like 'service deleting todos' do let(:issuable) { issue } end + + it_behaves_like 'service deleting label links' do + let(:issuable) { issue } + end end context 'when issuable is a merge request' do @@ -54,6 +58,10 @@ RSpec.describe Issuable::DestroyService do it_behaves_like 'service deleting todos' do let(:issuable) { merge_request } end + + it_behaves_like 'service deleting label links' do + let(:issuable) { merge_request } + end end end end |