UNPKG

apeman-react-mixins

Version:
72 lines (63 loc) 1.68 kB
/** * Test case for apLocaleMixin. * Runs with mocha. */ 'use strict' 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 */