Commit 5bd8b016 authored by Robert Speicher's avatar Robert Speicher

Merge branch 'fix-jira-mention-spec' into 'master'

Fix JIRA mention spec

Fixes spec that was skipped in 10de4261.

The expected behavior with commits mentioning issues, is that when the commit _closes_ the issue, the issue only gets the "closed by commit X" comment, and not also the "mentioned in commit X" comment.

With JIRA, it used to get both, and now does no longer.

The spec was updated to test the new ("correct") behavior.

See merge request !36
parents 01c027e5 eb014dd5
...@@ -933,6 +933,3 @@ DEPENDENCIES ...@@ -933,6 +933,3 @@ DEPENDENCIES
virtus (~> 1.0.1) virtus (~> 1.0.1)
webmock (~> 1.21.0) webmock (~> 1.21.0)
wikicloth (= 0.8.1) wikicloth (= 0.8.1)
BUNDLED WITH
1.10.6
...@@ -96,7 +96,7 @@ class GitPushService ...@@ -96,7 +96,7 @@ class GitPushService
Issues::CloseService.new(project, authors[commit], {}).execute(issue, commit) Issues::CloseService.new(project, authors[commit], {}).execute(issue, commit)
end end
end end
commit.create_cross_references!(authors[commit], closed_issues) commit.create_cross_references!(authors[commit], closed_issues)
end end
end end
......
...@@ -274,7 +274,7 @@ describe GitPushService do ...@@ -274,7 +274,7 @@ describe GitPushService do
allow(closing_commit).to receive_messages({ allow(closing_commit).to receive_messages({
issue_closing_regex: Regexp.new(Gitlab.config.gitlab.issue_closing_pattern), issue_closing_regex: Regexp.new(Gitlab.config.gitlab.issue_closing_pattern),
safe_message: "this is some work.\n\ncloses JIRA-1", safe_message: message,
author_name: commit_author.name, author_name: commit_author.name,
author_email: commit_author.email author_email: commit_author.email
}) })
...@@ -286,33 +286,40 @@ describe GitPushService do ...@@ -286,33 +286,40 @@ describe GitPushService do
jira_tracker.destroy! jira_tracker.destroy!
end end
it "should initiate one api call to jira server to close the issue" do context "mentioning an issue" do
message = { let(:message) { "this is some work.\n\nrelated to JIRA-1" }
update: {
comment: [{
add: {
body: "Issue solved with [#{closing_commit.id}|http://localhost/#{project.path_with_namespace}/commit/#{closing_commit.id}]."
}
}]
},
transition: {
id: '2'
}
}.to_json
service.execute(project, user, @oldrev, @newrev, @ref) it "should initiate one api call to jira server to mention the issue" do
expect(WebMock).to have_requested(:post, jira_api_transition_url).with( service.execute(project, user, @oldrev, @newrev, @ref)
body: message
).once
end
it "should initiate one api call to jira server to mention the issue" do expect(WebMock).to have_requested(:post, jira_api_comment_url).with(
skip "This spec was broken during the CE-to-EE merge and needs to be fixed. See https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/34" body: /mentioned this issue in/
service.execute(project, user, @oldrev, @newrev, @ref) ).once
end
end
expect(WebMock).to have_requested(:post, jira_api_comment_url).with( context "closing an issue" do
body: /mentioned this issue in/ let(:message) { "this is some work.\n\ncloses JIRA-1" }
).once
it "should initiate one api call to jira server to close the issue" do
body = {
update: {
comment: [{
add: {
body: "Issue solved with [#{closing_commit.id}|http://localhost/#{project.path_with_namespace}/commit/#{closing_commit.id}]."
}
}]
},
transition: {
id: '2'
}
}.to_json
service.execute(project, user, @oldrev, @newrev, @ref)
expect(WebMock).to have_requested(:post, jira_api_transition_url).with(
body: body
).once
end
end end
end end
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment