summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorValeriy Sizov <vsv2711@gmail.com>2011-12-27 14:49:38 -0800
committerValeriy Sizov <vsv2711@gmail.com>2011-12-27 14:49:38 -0800
commit5d6e79f4b97290829e4c22aecf91e57519107a5c (patch)
tree29c52b2fbad0f74f34a9c9c1bf4f2e8b5b83f698 /spec
parent86d18ca715a2ecf0a572013bcd64aa93f6d8765f (diff)
parent0aef2fe437d5f2e46a2de379610352bb97d65f6c (diff)
downloadgitlab-ce-5d6e79f4b97290829e4c22aecf91e57519107a5c.tar.gz
Merge pull request #237 from CedricGatay/feature/expand_issues_ref_in_commit
Autolinks to issues in commit message (see #155)
Diffstat (limited to 'spec')
-rw-r--r--spec/helpers/commit_helper_spec.rb67
1 files changed, 67 insertions, 0 deletions
diff --git a/spec/helpers/commit_helper_spec.rb b/spec/helpers/commit_helper_spec.rb
new file mode 100644
index 00000000000..747a28a35b9
--- /dev/null
+++ b/spec/helpers/commit_helper_spec.rb
@@ -0,0 +1,67 @@
+require "spec_helper"
+include Haml::Helpers
+
+describe CommitsHelper do
+
+ before do
+ @project = Factory :project
+ @other_project = Factory :project, :path => "OtherPath", :code => "OtherCode"
+ @fake_user = Factory :user
+ @valid_issue = Factory :issue, :assignee => @fake_user, :author => @fake_user, :project => @project
+ @invalid_issue = Factory :issue, :assignee => @fake_user, :author => @fake_user, :project => @other_project
+ end
+
+ it "should provides return message untouched if no issue number present" do
+ message = "Dummy message without issue number"
+
+ commit_msg_with_link_to_issues(@project, message).should eql message
+ end
+
+ it "should returns message handled by preserve" do
+ message = "My brand new
+ Commit on multiple
+ lines !"
+
+ #\n are converted to &#x000A as specified in preserve_rspec
+ expected = "My brand new&#x000A; Commit on multiple&#x000A; lines !"
+
+ commit_msg_with_link_to_issues(@project, message).should eql expected
+ end
+
+ it "should returns empty string if message undefined" do
+ commit_msg_with_link_to_issues(@project, nil).should eql ''
+ end
+
+ it "should returns link_to issue for one valid issue in message" do
+ issue_id = @valid_issue.id
+ message = "One commit message ##{issue_id}"
+ expected = "One commit message <a href=\"/#{@project.code}/issues/#{issue_id}\">##{issue_id}</a>"
+
+ commit_msg_with_link_to_issues(@project, message).should eql expected
+ end
+
+ it "should returns message untouched for one invalid issue in message" do
+ issue_id = @invalid_issue.id
+ message = "One commit message ##{issue_id}"
+
+ commit_msg_with_link_to_issues(@project, message).should eql message
+ end
+
+ it "should handle multiple issue references in commit message" do
+ issue_id = @valid_issue.id
+ invalid_issue_id = @invalid_issue.id
+
+ message = "One big commit message with a valid issue ##{issue_id} and an invalid one ##{invalid_issue_id}.
+ We reference valid ##{issue_id} multiple times (##{issue_id}) as the invalid ##{invalid_issue_id} is also
+ referenced another time (##{invalid_issue_id})"
+
+ expected = "One big commit message with a valid issue <a href=\"/#{@project.code}/issues/#{issue_id}\">##{issue_id}</a>"+
+ " and an invalid one ##{invalid_issue_id}.&#x000A; "+
+ "We reference valid <a href=\"/#{@project.code}/issues/#{issue_id}\">##{issue_id}</a> multiple times "+
+ "(<a href=\"/#{@project.code}/issues/#{issue_id}\">##{issue_id}</a>) "+
+ "as the invalid ##{invalid_issue_id} is also&#x000A; referenced another time (##{invalid_issue_id})"
+
+ commit_msg_with_link_to_issues(@project, message).should eql expected
+ end
+
+end \ No newline at end of file