Commit c4ef403ac80204346c4cd7114e38107e6807ae3c
1 parent
cab56064
Exists in
master
and in
1 other branch
Strip any query strings from files
Showing
2 changed files
with
22 additions
and
8 deletions
Show diff stats
app/models/backtrace_line_normalizer.rb
... | ... | @@ -12,7 +12,12 @@ class BacktraceLineNormalizer |
12 | 12 | if @raw_line['file'].blank? |
13 | 13 | "[unknown source]" |
14 | 14 | else |
15 | - @raw_line['file'].to_s.gsub(/\[PROJECT_ROOT\]\/.*\/ruby\/[0-9.]+\/gems/, '[GEM_ROOT]/gems') | |
15 | + file = @raw_line['file'].to_s | |
16 | + # Detect lines from gem | |
17 | + file.gsub!(/\[PROJECT_ROOT\]\/.*\/ruby\/[0-9.]+\/gems/, '[GEM_ROOT]/gems') | |
18 | + # Strip any query strings | |
19 | + file.gsub!(/\?[^\?]*$/, '') | |
20 | + @raw_line['file'] = file | |
16 | 21 | end |
17 | 22 | end |
18 | 23 | ... | ... |
spec/models/backtrace_line_normalizer_spec.rb
... | ... | @@ -3,16 +3,25 @@ require 'spec_helper' |
3 | 3 | describe BacktraceLineNormalizer do |
4 | 4 | subject { described_class.new(raw_line).call } |
5 | 5 | |
6 | - describe "sanitize file and method" do | |
7 | - let(:raw_line) { { 'number' => rand(999), 'file' => nil, 'method' => nil } } | |
6 | + describe "sanitize" do | |
7 | + context "unknown file and method" do | |
8 | + let(:raw_line) { { 'number' => rand(999), 'file' => nil, 'method' => nil } } | |
8 | 9 | |
9 | - it "should replace nil file with [unknown source]" do | |
10 | - subject['file'].should == "[unknown source]" | |
11 | - end | |
10 | + it "should replace nil file with [unknown source]" do | |
11 | + subject['file'].should == "[unknown source]" | |
12 | + end | |
12 | 13 | |
13 | - it "should replace nil method with [unknown method]" do | |
14 | - subject['method'].should == "[unknown method]" | |
14 | + it "should replace nil method with [unknown method]" do | |
15 | + subject['method'].should == "[unknown method]" | |
16 | + end | |
15 | 17 | end |
16 | 18 | |
19 | + context "in app file" do | |
20 | + let(:raw_line) { { 'number' => rand(999), 'file' => "[PROJECT_ROOT]/assets/file.js?body=1", 'method' => nil } } | |
21 | + | |
22 | + it "should strip query strings from files" do | |
23 | + subject['file'].should == "[PROJECT_ROOT]/assets/file.js" | |
24 | + end | |
25 | + end | |
17 | 26 | end |
18 | 27 | end | ... | ... |