Skip to content
This repository was archived by the owner on Oct 19, 2018. It is now read-only.

Commit 8847d79

Browse files
committed
Migrate all left renderElementToDocument & simulateEvent
1 parent 8878737 commit 8847d79

File tree

6 files changed

+19
-45
lines changed

6 files changed

+19
-45
lines changed

Diff for: lib/react/test/utils.rb

+3-13
Original file line numberDiff line numberDiff line change
@@ -16,19 +16,9 @@ def self.render_into_document(element, options = {})
1616
end
1717
end
1818

19-
def self.simulate(event, element)
20-
Simulate.new.click(element)
21-
end
22-
23-
class Simulate
24-
include Native
25-
def initialize
26-
super(`ReactTestUtils.Simulate`)
27-
end
28-
29-
def click(component_instance)
30-
`#{@native}['click']`.call(component_instance.dom_node, {})
31-
end
19+
def self.simulate(event, element, params = {})
20+
simulator = Native(`ReactTestUtils.Simulate`)
21+
simulator[event.to_s].call(`element.$dom_node === undefined` ? element : element.dom_node, params)
3222
end
3323
end
3424
end

Diff for: spec/react/component_spec.rb

+5-6
Original file line numberDiff line numberDiff line change
@@ -573,8 +573,8 @@ def render
573573
end
574574

575575
element = React.create_element(Foo)
576-
instance = renderElementToDocument(element)
577-
simulateEvent(:click, instance)
576+
instance = React::Test::Utils.render_into_document(element)
577+
React::Test::Utils.simulate(:click, instance)
578578
expect(instance.state.clicked).to eq(true)
579579
end
580580

@@ -645,10 +645,9 @@ def render
645645
end
646646
end
647647

648-
element = renderToDocument(Foo)
649-
simulateEvent(:click, element)
650-
651-
expect(element.refs.field.value).to eq('some_stuff')
648+
instance = React::Test::Utils.render_into_document(React.create_element(Foo))
649+
React::Test::Utils.simulate(:click, instance)
650+
expect(instance.refs[:field].value).to eq('some_stuff')
652651
end
653652

654653
it "allows access the actual DOM node" do

Diff for: spec/react/element_spec.rb

+6-6
Original file line numberDiff line numberDiff line change
@@ -110,20 +110,20 @@ def render
110110
it 'is subscribable through `on(:event_name)` method' do
111111
expect { |b|
112112
element = React.create_element("div").on(:click, &b)
113-
instance = renderElementToDocument(element)
114-
simulateEvent(:click, instance)
113+
dom_node = React::Test::Utils.render_into_document(element)
114+
React::Test::Utils.simulate(:click, dom_node)
115115
}.to yield_with_args(React::Event)
116116

117117
expect { |b|
118118
element = React.create_element("div").on(:key_down, &b)
119-
instance = renderElementToDocument(element)
120-
simulateEvent(:keyDown, instance, {key: "Enter"})
119+
dom_node = React::Test::Utils.render_into_document(element)
120+
React::Test::Utils.simulate(:keyDown, dom_node, {key: "Enter"})
121121
}.to yield_control
122122

123123
expect { |b|
124124
element = React.create_element("form").on(:submit, &b)
125-
instance = renderElementToDocument(element)
126-
simulateEvent(:submit, instance, {})
125+
dom_node = React::Test::Utils.render_into_document(element)
126+
React::Test::Utils.simulate(:submit, dom_node)
127127
}.to yield_control
128128
end
129129

Diff for: spec/react/event_spec.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717
expect(event).to respond_to(:prevent_default)
1818
expect(event).to respond_to(:stop_propagation)
1919
end
20-
instance = renderElementToDocument(element)
21-
simulateEvent(:click, instance)
20+
dom_node = React::Test::Utils.render_into_document(element)
21+
React::Test::Utils.simulate(:click, dom_node)
2222
end
2323
end
2424
end

Diff for: spec/react/test/utils_spec.rb

+3-8
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,14 @@
77
Foo.class_eval do
88
include React::Component
99

10-
def hello
11-
@hello
12-
end
13-
1410
def render
15-
@hello = 'hello'
1611
div { 'Click Me' }.on(:click) { |e| click(e) }
1712
end
1813
end
1914

20-
instance = renderToDocument(Foo)
21-
expect_any_instance_of(Foo).to receive(:click)
22-
described_class.simulate(:click, instance)
15+
instance = React::Test::Utils.render_into_document(React.create_element(Foo))
16+
expect(instance).to receive(:click)
17+
described_class.simulate(:click, instance.dom_node)
2318
end
2419

2520
describe "render_into_document" do

Diff for: spec/support/react/spec_helpers.rb

-10
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,13 @@ module React
33
module SpecHelpers
44
`var ReactTestUtils = React.addons.TestUtils`
55

6-
76
def renderToDocument(type, options = {})
87
element = React.create_element(type, options)
9-
renderElementToDocument(element)
10-
end
11-
12-
def renderElementToDocument(element)
138
instance = Native(`ReactTestUtils.renderIntoDocument(#{element.to_n})`)
149
instance.class.include(React::Component::API)
1510
instance
1611
end
1712

18-
def simulateEvent(event, element, params = {})
19-
simulator = Native(`ReactTestUtils.Simulate`)
20-
simulator[event.to_s].call(element.dom_node, params)
21-
end
22-
2313
def isElementOfType(element, type)
2414
`React.addons.TestUtils.isElementOfType(#{element.to_n}, #{type.cached_component_class})`
2515
end

0 commit comments

Comments
 (0)