diff options
author | Valeriy Sizov <vsv2711@gmail.com> | 2011-12-27 14:49:38 -0800 |
---|---|---|
committer | Valeriy Sizov <vsv2711@gmail.com> | 2011-12-27 14:49:38 -0800 |
commit | 5d6e79f4b97290829e4c22aecf91e57519107a5c (patch) | |
tree | 29c52b2fbad0f74f34a9c9c1bf4f2e8b5b83f698 /spec | |
parent | 86d18ca715a2ecf0a572013bcd64aa93f6d8765f (diff) | |
parent | 0aef2fe437d5f2e46a2de379610352bb97d65f6c (diff) | |
download | gitlab-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.rb | 67 |
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 
 as specified in preserve_rspec + expected = "My brand new
 Commit on multiple
 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}.
 "+ + "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
 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 |