apeman-react-mixins
Version:
React mixin set of apeman.
72 lines (63 loc) • 1.68 kB
JavaScript
/**
* Test case for apLocaleMixin.
* Runs with mocha.
*/
const ApLocaleMixin = require('../lib/ap_locale_mixin.js').default
const React = require('react')
const ReactDOM = require('react-dom/server')
const assert = require('assert')
describe('ap-locale-mixin', () => {
before((done) => {
done()
})
after((done) => {
done()
})
it('Render component.', (done) => {
const mockLocale = {
foo: 'This is foo',
bar: { 'baz': 'This is baz' },
quz: 'Quq with name: #{ vars.name }'
}
const MockClass = React.createClass({
mixins: [
ApLocaleMixin
],
render () {
const s = this
let locale = s.getLocale() || {}
return React.createElement('div', {},
s.props.children,
locale.foo
)
},
componentWillMount () {
const s = this
s.registerLocale(s.props.locale)
let locale = s.getLocale()
assert.equal(typeof locale, 'function')
assert.equal(locale('bar.baz'), 'This is baz')
assert.equal(locale.bar.baz, 'This is baz')
assert.equal(locale('quz', { vars: { name: 'hoge' } }), 'Quq with name: hoge')
}
})
let grandChild = React.createElement(MockClass, {
locale: mockLocale
})
let child = React.createElement(MockClass, {
locale: mockLocale
}, grandChild)
let parent = React.createElement(MockClass,
{
locale: mockLocale
},
child
)
let root = React.createElement('div', {}, parent)
let html = ReactDOM.renderToString(root)
assert.ok(html)
done()
})
})
/* global describe, before, after, it */