UNPKG

apeman-react-mixins

Version:
73 lines (62 loc) 1.92 kB
/** * Test case for apLocaleMixin. * Runs with mocha. */ "use strict"; const ApLocaleMixin = require('../lib/ap_locale_mixin.js'), React = require('react'), ReactDOM = require('react-dom/server'), 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: __name__' }; const MockClass = React.createClass({ mixins: [ ApLocaleMixin ], render(){ let s = this; let locale = s.getLocale() || {}; return React.createElement('div', {}, s.props.children, locale.foo ); }, componentWillMount(){ let 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(); }); });