Class: React::Test::Session
Constant Summary collapse
- DSL_METHODS =
%i[mount instance native element update_params force_update! html].freeze
Instance Method Summary collapse
- #element ⇒ Object
- #force_update! ⇒ Object
- #html ⇒ Object
- #instance ⇒ Object
- #mount(component_klass, params = {}) ⇒ Object
- #native ⇒ Object
- #update_params(params) ⇒ Object
Instance Method Details
#element ⇒ Object
24 25 26 |
# File 'lib/react/test/session.rb', line 24 def element @element end |
#force_update! ⇒ Object
35 36 37 |
# File 'lib/react/test/session.rb', line 35 def force_update! native.force_update! end |
#html ⇒ Object
39 40 41 42 43 |
# File 'lib/react/test/session.rb', line 39 def html # How can we get the current ReactElement w/o violating private APIs? elem = Native(native[:_reactInternalInstance][:_currentElement]) React.render_to_static_markup(elem) end |
#instance ⇒ Object
12 13 14 15 16 17 18 |
# File 'lib/react/test/session.rb', line 12 def instance unless @instance @native = Native(`React.addons.TestUtils.renderIntoDocument(#{element.to_n})`) @instance = `#{@native.to_n}._getOpalInstance()` end @instance end |
#mount(component_klass, params = {}) ⇒ Object
7 8 9 10 |
# File 'lib/react/test/session.rb', line 7 def mount(component_klass, params = {}) @element = React.create_element(component_klass, params) instance end |
#native ⇒ Object
20 21 22 |
# File 'lib/react/test/session.rb', line 20 def native @native end |
#update_params(params) ⇒ Object
28 29 30 31 32 33 |
# File 'lib/react/test/session.rb', line 28 def update_params(params) cloned_element = React::Element.new(`React.cloneElement(#{self.element.to_n}, #{params.to_n})`) prev_container = `#{self.instance.dom_node}.parentNode` React.render(cloned_element, prev_container) nil end |