Skip to content

Commit 74cd9f0

Browse files
committed
Include a stacktrace from JS engine
1 parent b6538ae commit 74cd9f0

File tree

2 files changed

+4
-3
lines changed

2 files changed

+4
-3
lines changed

lib/react/renderer.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ class Renderer
55

66
class PrerenderError < RuntimeError
77
def initialize(component_name, props, js_message)
8-
message = "Encountered error \"#{js_message}\" when prerendering #{component_name} with #{props}"
8+
message = ["Encountered error \"#{js_message}\" when prerendering #{component_name} with #{props}",
9+
js_message.backtrace.join("\n")].join("\n")
910
super(message)
1011
end
1112
end

test/react_renderer_test.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ class ReactRendererTest < ActiveSupport::TestCase
3232
end
3333
expected_message_one = 'Encountered error "ReferenceError: Can\'t find variable: NonexistentComponent" when prerendering NonexistentComponent with {"error":true,"exists":false}'
3434
expected_message_two = 'Encountered error "ReferenceError: NonexistentComponent is not defined" when prerendering NonexistentComponent with {"error":true,"exists":false}'
35-
assert (expected_message_one == err.message || expected_message_two == err.message)
35+
assert (err.message.starts_with?(expected_message_one) || err.message.starts_with?(expected_message_two))
3636
end
3737

3838
test 'prerender errors are thrown when given a string' do
@@ -46,6 +46,6 @@ class ReactRendererTest < ActiveSupport::TestCase
4646
end
4747
expected_message_one = 'Encountered error "ReferenceError: Can\'t find variable: NonexistentComponent" when prerendering NonexistentComponent with {"error":true,"exists":false}'
4848
expected_message_two = 'Encountered error "ReferenceError: NonexistentComponent is not defined" when prerendering NonexistentComponent with {"error":true,"exists":false}'
49-
assert (expected_message_one == err.message || expected_message_two == err.message)
49+
assert (err.message.starts_with?(expected_message_one) || err.message.starts_with?(expected_message_two))
5050
end
5151
end

0 commit comments

Comments
 (0)