From f5d7a61760d8f60c27b8838db826468768154733 Mon Sep 17 00:00:00 2001 From: Valery Sizov Date: Fri, 2 Dec 2016 14:03:30 +0200 Subject: Fixes ActionView::Template::Error: undefined method `text?` for nil:NilClass --- ...view-template-error-undefined-method-text-for-nil-nilclass.yml | 5 +++++ lib/gitlab/diff/file_collection/merge_request_diff.rb | 2 +- spec/lib/gitlab/diff/file_collection/merge_request_diff_spec.rb | 8 ++++++++ 3 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 changelogs/unreleased/25251-actionview-template-error-undefined-method-text-for-nil-nilclass.yml diff --git a/changelogs/unreleased/25251-actionview-template-error-undefined-method-text-for-nil-nilclass.yml b/changelogs/unreleased/25251-actionview-template-error-undefined-method-text-for-nil-nilclass.yml new file mode 100644 index 00000000000..7f1c417bc77 --- /dev/null +++ b/changelogs/unreleased/25251-actionview-template-error-undefined-method-text-for-nil-nilclass.yml @@ -0,0 +1,5 @@ +--- +title: 'Fixes "ActionView::Template::Error: undefined method `text?` for nil:NilClass" + on MR pages' +merge_request: +author: diff --git a/lib/gitlab/diff/file_collection/merge_request_diff.rb b/lib/gitlab/diff/file_collection/merge_request_diff.rb index 26bb0bc16f5..56530448f36 100644 --- a/lib/gitlab/diff/file_collection/merge_request_diff.rb +++ b/lib/gitlab/diff/file_collection/merge_request_diff.rb @@ -61,7 +61,7 @@ module Gitlab end def cacheable?(diff_file) - @merge_request_diff.present? && diff_file.blob.text? + @merge_request_diff.present? && diff_file.blob && diff_file.blob.text? end def cache_key diff --git a/spec/lib/gitlab/diff/file_collection/merge_request_diff_spec.rb b/spec/lib/gitlab/diff/file_collection/merge_request_diff_spec.rb index c863a5f04cc..2a680f03476 100644 --- a/spec/lib/gitlab/diff/file_collection/merge_request_diff_spec.rb +++ b/spec/lib/gitlab/diff/file_collection/merge_request_diff_spec.rb @@ -10,4 +10,12 @@ describe Gitlab::Diff::FileCollection::MergeRequestDiff do described_class.new(merge_request.merge_request_diff, diff_options: nil).diff_files end + + it 'does not hightlight file if blob is not accessable' do + allow_any_instance_of(Gitlab::Diff::File).to receive(:blob).and_return(nil) + + expect_any_instance_of(Gitlab::Diff::File).not_to receive(:highlighted_diff_lines) + + described_class.new(merge_request.merge_request_diff, diff_options: nil).diff_files + end end -- cgit v1.2.1