Commit 4ef9066c47a1c2082feba39b874edc104e7ba435
1 parent
c4ef403a
Exists in
master
and in
1 other branch
Backtrace link should always default to plain text if in app repos aren't configured
Showing
3 changed files
with
28 additions
and
1 deletions
Show diff stats
app/helpers/backtrace_line_helper.rb
| 1 | module BacktraceLineHelper | 1 | module BacktraceLineHelper |
| 2 | def link_to_source_file(line, &block) | 2 | def link_to_source_file(line, &block) |
| 3 | text = capture_haml(&block) | 3 | text = capture_haml(&block) |
| 4 | - line.in_app? ? link_to_in_app_source_file(line, text) : link_to_external_source_file(text) | 4 | + link_to_in_app_source_file(line, text) || link_to_external_source_file(text) |
| 5 | end | 5 | end |
| 6 | 6 | ||
| 7 | private | 7 | private |
| 8 | def link_to_in_app_source_file(line, text) | 8 | def link_to_in_app_source_file(line, text) |
| 9 | + return unless line.in_app? | ||
| 9 | link_to_repo_source_file(line, text) || link_to_issue_tracker_file(line, text) | 10 | link_to_repo_source_file(line, text) || link_to_issue_tracker_file(line, text) |
| 10 | end | 11 | end |
| 11 | 12 |
| @@ -0,0 +1,20 @@ | @@ -0,0 +1,20 @@ | ||
| 1 | +require 'spec_helper' | ||
| 2 | + | ||
| 3 | +describe BacktraceLineHelper do | ||
| 4 | + describe "in app lines" do | ||
| 5 | + let(:notice) do | ||
| 6 | + Fabricate.build(:notice, :backtrace => | ||
| 7 | + Fabricate.build(:backtrace, :lines => [ | ||
| 8 | + Fabricate.build(:backtrace_line, :file => "[PROJECT_ROOT]/path/to/asset.js") | ||
| 9 | + ]) | ||
| 10 | + ) | ||
| 11 | + end | ||
| 12 | + | ||
| 13 | + describe '#link_to_source_file' do | ||
| 14 | + it 'still returns text for in app file and line number when no repo is configured' do | ||
| 15 | + result = link_to_source_file(notice.backtrace.lines.first) { haml_concat "link text" } | ||
| 16 | + result.strip.should == 'link text' | ||
| 17 | + end | ||
| 18 | + end | ||
| 19 | + end | ||
| 20 | +end |
spec/spec_helper.rb
| @@ -28,6 +28,12 @@ RSpec.configure do |config| | @@ -28,6 +28,12 @@ RSpec.configure do |config| | ||
| 28 | DatabaseCleaner.clean | 28 | DatabaseCleaner.clean |
| 29 | end | 29 | end |
| 30 | config.include WebMock::API | 30 | config.include WebMock::API |
| 31 | + | ||
| 32 | + config.include Haml, :type => :helper | ||
| 33 | + config.include Haml::Helpers, :type => :helper | ||
| 34 | + config.before(:each, :type => :helper) do |config| | ||
| 35 | + init_haml_helpers | ||
| 36 | + end | ||
| 31 | end | 37 | end |
| 32 | 38 | ||
| 33 | OmniAuth.config.test_mode = true | 39 | OmniAuth.config.test_mode = true |