import LocaleToggle, { mapDispatchToProps } from '../index';
import { changeLocale } from '../../LanguageProvider/actions';
import LanguageProvider from '../../LanguageProvider';
import expect from 'expect';
import { shallow, mount } from 'enzyme';
import configureStore from '../../../store';
import React from 'react';
import { Provider } from 'react-redux';
import { browserHistory } from 'react-router';
import { translationMessages } from '../../../i18n';
describe('', () => {
let store;
before(() => {
store = configureStore({}, browserHistory);
});
it('should render the default language messages', () => {
const renderedComponent = shallow(
);
expect(renderedComponent.contains()).toEqual(true);
});
it('should present the default `en` english language option', () => {
const renderedComponent = mount(
);
expect(renderedComponent.contains()).toEqual(true);
});
describe('mapDispatchToProps', () => {
describe('onLocaleToggle', () => {
it('should be injected', () => {
const dispatch = expect.createSpy();
const result = mapDispatchToProps(dispatch);
expect(result.onLocaleToggle).toExist();
});
it('should dispatch changeLocale when called', () => {
const dispatch = expect.createSpy();
const result = mapDispatchToProps(dispatch);
const locale = 'de';
const evt = { target: { value: locale } };
result.onLocaleToggle(evt);
expect(dispatch).toHaveBeenCalledWith(changeLocale(locale));
});
});
});
});