apeman-react-mixins
Version:
React mixin set of apeman.
62 lines (54 loc) • 1.46 kB
JavaScript
/**
* Test case for apFormMixin.
* Runs with mocha.
*/
const ApFormMixin = require('../lib/ap_form_mixin.js').default
const React = require('react')
const ReactDOM = require('react-dom/server')
const assert = require('assert')
describe('ap-form-mixin', () => {
before((done) => {
done()
})
after((done) => {
done()
})
it('Ap form mixin', (done) => {
const MockClass = React.createClass({
mixins: [
ApFormMixin
],
render () {
const s = this
return React.createElement('div', {},
s.props.children
)
},
componentWillMount () {
const s = this
assert.ok(s.handleFormChange)
assert.ok(s.handleFormSubmit)
let formValues = s.getFormValues()
assert.equal(formValues.foo, 'formatted:bar')
assert.equal(s.getFormIcon('foo'), 'icon-of-foo')
assert.equal(s.getFormImage('foo'), 'image-of-foo')
},
formatFormValues (value) {
return Object.assign(value, {
foo: `formatted:${value.foo}`
})
}
})
let root = React.createElement(MockClass, {
formValues: { 'foo': 'bar' },
formActions: { 'foo': () => console.log('foo') },
formIcons: { 'foo': 'icon-of-foo' },
formImages: { 'foo': 'image-of-foo' }
})
let html = ReactDOM.renderToString(root)
assert.ok(html)
done()
})
})
/* global describe, before, after, it */