ldx-widgets
Version:
widgets
72 lines (46 loc) • 2.12 kB
text/coffeescript
describe 'ConfirmUserAction', ->
React = require 'react'
ConfirmUserAction = React.createFactory require('../../src/components/confirm_user_action')
_ = require 'lodash'
TestUtils = require 'react-dom/test-utils'
ReactDOM = require 'react-dom'
#--------------------------------------------------------------------- Default Props
it 'Should have default props', ->
confirmUserAction = TestUtils.renderIntoDocument ConfirmUserAction {
onOkay: ->
close: ->
}
defaultProps = confirmUserAction.props
expect(defaultProps.confirmText).to.equal('Are you sure?')
expect(defaultProps.confirmBtnLabel).to.equal('OK')
expect(defaultProps.cancelBtnLabel).to.equal('Cancel')
#--------------------------------------------------------------------- Click handling
it 'Should call the onOkay when okay button is clicked', ->
onOkay = sinon.spy()
confirmBox = TestUtils.renderIntoDocument ConfirmUserAction {
close: ->
onOkay: onOkay
}
okayBtn = TestUtils.findRenderedDOMComponentWithClass confirmBox, 'okay-btn'
TestUtils.Simulate.click okayBtn
expect(onOkay.called).to.equal(true)
it 'Should not call the onOkay when cancel button is clicked', ->
onOkay = sinon.spy()
confirmBox = TestUtils.renderIntoDocument ConfirmUserAction {
close: ->
onOkay: onOkay
}
cancelBtn = TestUtils.findRenderedDOMComponentWithClass confirmBox, 'cancel-btn'
TestUtils.Simulate.click cancelBtn
expect(onOkay.called).to.equal(false)
#--------------------------------------------------------------------- Text and Button Labels
it 'Should set the text and button labels to the props passed in', ->
message = TestUtils.renderIntoDocument ConfirmUserAction {
close: ->
onOkay: ->
confirmText: "This is a test message"
confirmBtnLabel: "ConfirmTest"
cancelBtnLabel: "CancelTest"
}
messageText = TestUtils.scryRenderedDOMComponentsWithTag(message, 'div')[0].innerText
expect(messageText).to.equal('This is a test messageConfirmTestCancelTest')