Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/services/issuable')
-rw-r--r--spec/services/issuable/bulk_update_service_spec.rb30
-rw-r--r--spec/services/issuable/common_system_notes_service_spec.rb4
-rw-r--r--spec/services/issuable/destroy_label_links_service_spec.rb19
-rw-r--r--spec/services/issuable/destroy_service_spec.rb10
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