У меня есть компонент со способом привязки к событию дочернего компонента onChange
. В двух словах:Как протестировать асинхронный метод реактивной составляющей
DOM = React.DOM
Range = React.createClass
getInitialState: ->
isRange: false
render: ->
check = DOM.input
type: "checkbox",
onChange: @rangeChanged,
checked: @state.isRange
name: "isRange"
DOM.form {}, [check]
rangeChanged: React.autoBind ->
@setState
isRange: [email protected]
Во время теста я хочу, чтобы изменить значение флажка и вызвать change
событие. Мой тест выглядит (с использованием mocha.js + expect.js):
root = $("#root")
describe "test Range", ->
beforeEach ->
@range = Range()
React.renderComponent(@range, root[0])
afterEach ->
React.unmountAndReleaseReactRootNode(root[0])
it "should run event", (done) ->
r = root.find("input[name=isRange]").prop("checked", true).trigger('change')
setTimeout (=> expect(@range.state.isRange).to.be.true; done()), 10
К сожалению, я не могу получить любое решение, чтобы сделать этот тест работать. Любая идея, как заставить его работать?