Skip to content

Commit

Permalink
Filter Sorbet in backtrace
Browse files Browse the repository at this point in the history
  • Loading branch information
andyw8 committed Aug 31, 2023
1 parent c29b4e6 commit e23c79d
Showing 1 changed file with 23 additions and 2 deletions.
25 changes: 23 additions & 2 deletions test/test_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@
require "debug"
require "mocha/minitest"

sorbet_paths = Gem.loaded_specs["sorbet-runtime"].full_require_paths.freeze
DEBUGGER__::CONFIG[:skip_path] = Array(DEBUGGER__::CONFIG[:skip_path]) + sorbet_paths
SORBET_PATHS = T.let(Gem.loaded_specs["sorbet-runtime"].full_require_paths.freeze, T::Array[String])
DEBUGGER__::CONFIG[:skip_path] = Array(DEBUGGER__::CONFIG[:skip_path]) + SORBET_PATHS

minitest_reporter = if ENV["SPEC_REPORTER"]
Minitest::Reporters::SpecReporter.new(color: true)
Expand All @@ -28,3 +28,24 @@ class Test
Minitest::Test.make_my_diffs_pretty!
end
end

# based on https://github.com/minitest/minitest/blob/master/lib/minitest.rb
module BacktraceWithoutSorbetFilter
MT_RE = %r%lib/minitest%

class << self
extend T::Sig
sig { params(bt: T.nilable(T::Array[String])).returns(T::Array[String]) }
def filter(bt)
return ["No backtrace"] unless bt

return bt.dup if $DEBUG

bt.find_all do |line|
line !~ MT_RE && SORBET_PATHS.none? { |path| line.include?(path) }
end
end
end
end

Minitest.backtrace_filter = BacktraceWithoutSorbetFilter

0 comments on commit e23c79d

Please sign in to comment.