FIX: FakeExceptions should have the original class name

FIX: FakeExceptions should have the original class name

diff --git a/lib/turbo_tests.rb b/lib/turbo_tests.rb
index 8e3b5cc..337e265 100644
--- a/lib/turbo_tests.rb
+++ b/lib/turbo_tests.rb
@@ -19,7 +19,15 @@ module TurboTests
     def self.from_obj(obj)
       if obj
         obj = obj.symbolize_keys
-        new(
+
+        klass =
+          Class.new(FakeException) do
+            define_singleton_method(:name) do
+              obj[:class_name]
+            end
+          end
+
+        klass.new(
           obj[:backtrace],
           obj[:message],
           FakeException.from_obj(obj[:cause])
diff --git a/lib/turbo_tests/json_rows_formatter.rb b/lib/turbo_tests/json_rows_formatter.rb
index 6a9ca69..b10f9d8 100644
--- a/lib/turbo_tests/json_rows_formatter.rb
+++ b/lib/turbo_tests/json_rows_formatter.rb
@@ -21,6 +21,7 @@ module TurboTests
     def exception_to_json(exception)
       if exception
         {
+          class_name: exception.class.name.to_s,
           backtrace: exception.backtrace,
           message: exception.message,
           cause: exception_to_json(exception.cause)

GitHub sha: 8a0be71b

1 Like