You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Ah, that's interesting, the ^^^^^^^ is even in the error message itself. Is this is a new thing in Ruby 3.1? I haven't seen this before. Regardless this does seem like a bug. It's possible RSpec is doing something extra to show that second (first) backtrace and super_diff is not recreating it. I'll take a look when I get a chance!
Thanks for the quick response! I didn't to much diligence beyond "here's what it looks like on my computer" so happy to dig a little deeper and get back to you.
Ah yeah, that would be much appreciated! Some pointers: super_diff does a fair bit of monkey patching to RSpec and the current error handling code is located here. The corresponding RSpec code is here. It's very possible that there is something in the RSpec code that I accidentally overrode. It's also possible there is something else in the rspec-core gem that is responsible for error handling that I haven't included.
In addition to the backtrace for the failing assertion, RSpec's raise_error matcher shows a backtrace for the error site in the application code.
It appears that SuperDiff swallows this trace.
Example
let's say you've got an assertion that looks like this:
where
execute
maybe calls out to other methods in your application.Here's what you see in vanilla RSpec when the assertion fails:
vs. SuperDiff:
Environment
The text was updated successfully, but these errors were encountered: