Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Speicher <rspeicher@gmail.com>2012-10-03 02:57:13 +0400
committerRobert Speicher <rspeicher@gmail.com>2012-10-03 03:00:41 +0400
commit5e3be9cda0e23e2c62a3e3b08791357ce572d998 (patch)
tree3366e026075f8f783087b0668fb59cd2a5c36bd0 /spec/models/commit_spec.rb
parent38ca52f33b6a6824268f3dc92cf5ca13ad737c20 (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.rb37
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]}&hellip;"
+ 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]}&hellip;"
+ end
+ end
+ end
+end