UNPKG

quickbuild

Version:

A mature, feature-complete application generator with an emphasis on speed

61 lines (52 loc) 1.88 kB
import React from 'react'; import { Provider } from 'react-redux'; import { browserHistory } from 'react-router-dom'; import { render } from 'react-testing-library'; import LocaleToggle, { mapDispatchToProps } from '../index'; import { changeLocale } from '../../LanguageProvider/actions'; import LanguageProvider from '../../LanguageProvider'; import configureStore from '../../../configureStore'; import { translationMessages } from '../../../i18n'; describe('<LocaleToggle />', () => { let store; beforeAll(() => { store = configureStore({}, browserHistory); }); it('should match the snapshot', () => { const { container } = render( <Provider store={store}> <LanguageProvider messages={translationMessages}> <LocaleToggle /> </LanguageProvider> </Provider>, ); expect(container.firstChild).toMatchSnapshot(); }); it('should present the default `en` english language option', () => { const { container } = render( <Provider store={store}> <LanguageProvider messages={translationMessages}> <LocaleToggle /> </LanguageProvider> </Provider>, ); expect(container.querySelector('option[value="en"]')).not.toBeNull(); }); describe('mapDispatchToProps', () => { describe('onLocaleToggle', () => { it('should be injected', () => { const dispatch = jest.fn(); const result = mapDispatchToProps(dispatch); expect(result.onLocaleToggle).toBeDefined(); }); it('should dispatch changeLocale when called', () => { const dispatch = jest.fn(); const result = mapDispatchToProps(dispatch); const locale = 'de'; const evt = { target: { value: locale } }; result.onLocaleToggle(evt); expect(dispatch).toHaveBeenCalledWith(changeLocale(locale)); }); }); }); });