diff options
author | Douglas Barbosa Alexandre <dbalexandre@gmail.com> | 2016-03-18 13:27:27 -0300 |
---|---|---|
committer | Douglas Barbosa Alexandre <dbalexandre@gmail.com> | 2016-03-18 13:27:27 -0300 |
commit | 02b0c37cabf0456a4c36680fb1313b1107f35f54 (patch) | |
tree | e112e567c618bd8011038ba79f4a241f7117f67d | |
parent | 2a8858ca8adbc54d7e24e698fa8ce370a1e91157 (diff) | |
download | gitlab-ce-02b0c37cabf0456a4c36680fb1313b1107f35f54.tar.gz |
Refactor `Todo#target`
-rw-r--r-- | app/models/todo.rb | 6 | ||||
-rw-r--r-- | spec/models/todo_spec.rb | 24 |
2 files changed, 18 insertions, 12 deletions
diff --git a/app/models/todo.rb b/app/models/todo.rb index ab804d712a0..d85f7bfdf57 100644 --- a/app/models/todo.rb +++ b/app/models/todo.rb @@ -61,14 +61,10 @@ class Todo < ActiveRecord::Base # override to return commits, which are not active record def target if for_commit? - project.commit(commit_id) + project.commit(commit_id) rescue nil else super end - # Temp fix to prevent app crash - # if note commit id doesn't exist - rescue - nil end def target_reference diff --git a/spec/models/todo_spec.rb b/spec/models/todo_spec.rb index 22acfdfe2c0..d9b86b9368f 100644 --- a/spec/models/todo_spec.rb +++ b/spec/models/todo_spec.rb @@ -99,13 +99,23 @@ describe Todo, models: true do end describe '#target' do - it 'returns an instance of Commit for commits' do - subject.project = project - subject.target_type = 'Commit' - subject.commit_id = commit.id - - expect(subject.target).to be_a(Commit) - expect(subject.target).to eq commit + context 'for commits' do + it 'returns an instance of Commit when exists' do + subject.project = project + subject.target_type = 'Commit' + subject.commit_id = commit.id + + expect(subject.target).to be_a(Commit) + expect(subject.target).to eq commit + end + + it 'returns nil when does not exists' do + subject.project = project + subject.target_type = 'Commit' + subject.commit_id = 'xxxx' + + expect(subject.target).to be_nil + end end it 'returns the issuable for issuables' do |