From 4ef9066c47a1c2082feba39b874edc104e7ba435 Mon Sep 17 00:00:00 2001 From: Nathan Broadbent Date: Tue, 5 Mar 2013 13:37:12 +1300 Subject: [PATCH] Backtrace link should always default to plain text if in app repos aren't configured --- app/helpers/backtrace_line_helper.rb | 3 ++- spec/helpers/backtrace_line_helper.rb | 20 ++++++++++++++++++++ spec/spec_helper.rb | 6 ++++++ 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 spec/helpers/backtrace_line_helper.rb diff --git a/app/helpers/backtrace_line_helper.rb b/app/helpers/backtrace_line_helper.rb index 0ce77d9..34e508f 100644 --- a/app/helpers/backtrace_line_helper.rb +++ b/app/helpers/backtrace_line_helper.rb @@ -1,11 +1,12 @@ module BacktraceLineHelper def link_to_source_file(line, &block) text = capture_haml(&block) - line.in_app? ? link_to_in_app_source_file(line, text) : link_to_external_source_file(text) + link_to_in_app_source_file(line, text) || link_to_external_source_file(text) end private def link_to_in_app_source_file(line, text) + return unless line.in_app? link_to_repo_source_file(line, text) || link_to_issue_tracker_file(line, text) end diff --git a/spec/helpers/backtrace_line_helper.rb b/spec/helpers/backtrace_line_helper.rb new file mode 100644 index 0000000..f09de7c --- /dev/null +++ b/spec/helpers/backtrace_line_helper.rb @@ -0,0 +1,20 @@ +require 'spec_helper' + +describe BacktraceLineHelper do + describe "in app lines" do + let(:notice) do + Fabricate.build(:notice, :backtrace => + Fabricate.build(:backtrace, :lines => [ + Fabricate.build(:backtrace_line, :file => "[PROJECT_ROOT]/path/to/asset.js") + ]) + ) + end + + describe '#link_to_source_file' do + it 'still returns text for in app file and line number when no repo is configured' do + result = link_to_source_file(notice.backtrace.lines.first) { haml_concat "link text" } + result.strip.should == 'link text' + end + end + end +end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 04dde89..233975e 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -28,6 +28,12 @@ RSpec.configure do |config| DatabaseCleaner.clean end config.include WebMock::API + + config.include Haml, :type => :helper + config.include Haml::Helpers, :type => :helper + config.before(:each, :type => :helper) do |config| + init_haml_helpers + end end OmniAuth.config.test_mode = true -- libgit2 0.21.2