diff options
author | Robert Speicher <rspeicher@gmail.com> | 2012-10-03 02:57:13 +0400 |
---|---|---|
committer | Robert Speicher <rspeicher@gmail.com> | 2012-10-03 03:00:41 +0400 |
commit | 5e3be9cda0e23e2c62a3e3b08791357ce572d998 (patch) | |
tree | 3366e026075f8f783087b0668fb59cd2a5c36bd0 /spec/models/commit_spec.rb | |
parent | 38ca52f33b6a6824268f3dc92cf5ca13ad737c20 (diff) |
Cache the value of safe_message
Also, just for extra paranoia, only call safe_message once in the
decorator methods
Adds specs to make sure it still works
Diffstat (limited to 'spec/models/commit_spec.rb')
-rw-r--r-- | spec/models/commit_spec.rb | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/spec/models/commit_spec.rb b/spec/models/commit_spec.rb new file mode 100644 index 00000000000..e4bc1936839 --- /dev/null +++ b/spec/models/commit_spec.rb @@ -0,0 +1,37 @@ +require 'spec_helper' + +describe Commit do + let(:commit) { create(:project).commit } + + describe CommitDecorator do + let(:decorator) { CommitDecorator.new(commit) } + + describe '#title' do + it "returns no_commit_message when safe_message is blank" do + decorator.stub(:safe_message).and_return('') + decorator.title.should == "--no commit message" + end + + it "truncates a message without a newline at 70 characters" do + message = commit.safe_message * 10 + + decorator.stub(:safe_message).and_return(message) + decorator.title.should == "#{message[0..69]}…" + end + + it "truncates a message with a newline before 80 characters at the newline" do + message = commit.safe_message.split(" ").first + + decorator.stub(:safe_message).and_return(message + "\n" + message) + decorator.title.should == message + end + + it "truncates a message with a newline after 80 characters at 70 characters" do + message = (commit.safe_message * 10) + "\n" + + decorator.stub(:safe_message).and_return(message) + decorator.title.should == "#{message[0..69]}…" + end + end + end +end |