summaryrefslogtreecommitdiff
path: root/spec/services/issues
diff options
context:
space:
mode:
Diffstat (limited to 'spec/services/issues')
-rw-r--r--spec/services/issues/move_service_spec.rb11
-rw-r--r--spec/services/issues/related_branches_service_spec.rb39
-rw-r--r--spec/services/issues/update_service_spec.rb9
3 files changed, 55 insertions, 4 deletions
diff --git a/spec/services/issues/move_service_spec.rb b/spec/services/issues/move_service_spec.rb
index 609eef76d2c..b5767583952 100644
--- a/spec/services/issues/move_service_spec.rb
+++ b/spec/services/issues/move_service_spec.rb
@@ -122,6 +122,17 @@ describe Issues::MoveService do
end
end
+ context 'issue with resource label events' do
+ it 'assigns resource label events to new issue' do
+ old_issue.resource_label_events = create_list(:resource_label_event, 2, issue: old_issue)
+
+ new_issue = move_service.execute(old_issue, new_project)
+
+ expected = old_issue.resource_label_events.map(&:label_id)
+ expect(new_issue.resource_label_events.map(&:label_id)).to match_array(expected)
+ end
+ end
+
context 'generic issue' do
include_context 'issue move executed'
diff --git a/spec/services/issues/related_branches_service_spec.rb b/spec/services/issues/related_branches_service_spec.rb
new file mode 100644
index 00000000000..c2e1eba6a63
--- /dev/null
+++ b/spec/services/issues/related_branches_service_spec.rb
@@ -0,0 +1,39 @@
+require 'spec_helper'
+
+describe Issues::RelatedBranchesService do
+ let(:user) { create(:admin) }
+ let(:issue) { create(:issue) }
+
+ subject { described_class.new(issue.project, user) }
+
+ describe '#execute' do
+ before do
+ allow(issue.project.repository).to receive(:branch_names).and_return(["mpempe", "#{issue.iid}mepmep", issue.to_branch_name, "#{issue.iid}-branch"])
+ end
+
+ it "selects the right branches when there are no referenced merge requests" do
+ expect(subject.execute(issue)).to eq([issue.to_branch_name, "#{issue.iid}-branch"])
+ end
+
+ it "selects the right branches when there is a referenced merge request" do
+ merge_request = create(:merge_request, { description: "Closes ##{issue.iid}",
+ source_project: issue.project,
+ source_branch: "#{issue.iid}-branch" })
+ merge_request.create_cross_references!(user)
+
+ referenced_merge_requests = Issues::ReferencedMergeRequestsService
+ .new(issue.project, user)
+ .referenced_merge_requests(issue)
+
+ expect(referenced_merge_requests).not_to be_empty
+ expect(subject.execute(issue)).to eq([issue.to_branch_name])
+ end
+
+ it 'excludes stable branches from the related branches' do
+ allow(issue.project.repository).to receive(:branch_names)
+ .and_return(["#{issue.iid}-0-stable"])
+
+ expect(subject.execute(issue)).to eq []
+ end
+ end
+end
diff --git a/spec/services/issues/update_service_spec.rb b/spec/services/issues/update_service_spec.rb
index 5bcfef46b75..07aa8449a66 100644
--- a/spec/services/issues/update_service_spec.rb
+++ b/spec/services/issues/update_service_spec.rb
@@ -189,11 +189,12 @@ describe Issues::UpdateService, :mailer do
expect(note.note).to include "assigned to #{user2.to_reference}"
end
- it 'creates system note about issue label edit' do
- note = find_note('added ~')
+ it 'creates a resource label event' do
+ event = issue.resource_label_events.last
- expect(note).not_to be_nil
- expect(note.note).to include "added #{label.to_reference} label"
+ expect(event).not_to be_nil
+ expect(event.label_id).to eq label.id
+ expect(event.user_id).to eq user.id
end
it 'creates system note about title change' do