2017-08-14 17:08:09 +00:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2016-08-06 17:16:09 +00:00
|
|
|
require "abstract_unit"
|
|
|
|
require "rails/backtrace_cleaner"
|
2008-11-24 10:25:28 +00:00
|
|
|
|
2016-07-01 23:33:26 +00:00
|
|
|
class BacktraceCleanerTest < ActiveSupport::TestCase
|
2012-05-02 10:56:13 +00:00
|
|
|
def setup
|
|
|
|
@cleaner = Rails::BacktraceCleaner.new
|
|
|
|
end
|
|
|
|
|
|
|
|
test "should format installed gems correctly" do
|
2016-07-01 23:33:26 +00:00
|
|
|
backtrace = [ "#{Gem.path[0]}/gems/nosuchgem-1.2.3/lib/foo.rb" ]
|
|
|
|
result = @cleaner.clean(backtrace, :all)
|
|
|
|
assert_equal "nosuchgem (1.2.3) lib/foo.rb", result[0]
|
2012-05-02 10:56:13 +00:00
|
|
|
end
|
2009-03-05 20:48:56 +00:00
|
|
|
|
2012-05-02 10:56:13 +00:00
|
|
|
test "should format installed gems not in Gem.default_dir correctly" do
|
2016-07-01 23:33:26 +00:00
|
|
|
target_dir = Gem.path.detect { |p| p != Gem.default_dir }
|
2012-05-02 10:56:13 +00:00
|
|
|
# skip this test if default_dir is the only directory on Gem.path
|
2016-11-26 01:55:11 +00:00
|
|
|
if target_dir
|
2016-07-01 23:33:26 +00:00
|
|
|
backtrace = [ "#{target_dir}/gems/nosuchgem-1.2.3/lib/foo.rb" ]
|
|
|
|
result = @cleaner.clean(backtrace, :all)
|
|
|
|
assert_equal "nosuchgem (1.2.3) lib/foo.rb", result[0]
|
2009-03-05 20:48:56 +00:00
|
|
|
end
|
2009-10-20 14:32:26 +00:00
|
|
|
end
|
2016-07-01 23:33:26 +00:00
|
|
|
|
|
|
|
test "should consider traces from irb lines as User code" do
|
2018-08-06 05:40:49 +00:00
|
|
|
backtrace = [ "(irb):1",
|
|
|
|
"/Path/to/rails/railties/lib/rails/commands/console.rb:77:in `start'",
|
|
|
|
"bin/rails:4:in `<main>'" ]
|
|
|
|
result = @cleaner.clean(backtrace)
|
|
|
|
assert_equal "(irb):1", result[0]
|
|
|
|
assert_equal 1, result.length
|
2016-07-01 23:33:26 +00:00
|
|
|
end
|
2009-03-05 20:48:56 +00:00
|
|
|
end
|