import {mountWithTheme} from 'sentry-test/enzyme'; import GlobalSelectionStore from 'app/stores/globalSelectionStore'; import withGlobalSelection from 'app/utils/withGlobalSelection'; describe('withGlobalSelection HoC', function () { beforeEach(() => { GlobalSelectionStore.init(); }); it('handles projects', function () { const MyComponent = () => null; const Container = withGlobalSelection(MyComponent); const wrapper = mountWithTheme(); expect(wrapper.find('MyComponent').prop('selection').projects).toEqual([]); GlobalSelectionStore.updateProjects([1]); wrapper.update(); expect(wrapper.find('MyComponent').prop('selection').projects).toEqual([1]); }); it('handles datetime', function () { let selection; const MyComponent = () => null; const Container = withGlobalSelection(MyComponent); const wrapper = mountWithTheme(); selection = wrapper.find('MyComponent').prop('selection'); expect(selection.datetime.period).toEqual('14d'); expect(selection.datetime.start).toEqual(null); expect(selection.datetime.end).toEqual(null); GlobalSelectionStore.updateDateTime({ period: '7d', start: null, end: null, }); wrapper.update(); selection = wrapper.find('MyComponent').prop('selection'); expect(selection.datetime.period).toEqual('7d'); expect(selection.datetime.start).toEqual(null); expect(selection.datetime.end).toEqual(null); GlobalSelectionStore.updateDateTime({ period: null, start: '2018-08-08T00:00:00', end: '2018-08-08T00:00:00', }); wrapper.update(); selection = wrapper.find('MyComponent').prop('selection'); expect(selection.datetime.period).toEqual(null); expect(selection.datetime.start).toEqual('2018-08-08T00:00:00'); expect(selection.datetime.end).toEqual('2018-08-08T00:00:00'); }); it('handles environments', function () { const MyComponent = () => null; const Container = withGlobalSelection(MyComponent); const wrapper = mountWithTheme(); expect(wrapper.find('MyComponent').prop('selection').environments).toEqual([]); GlobalSelectionStore.updateEnvironments(['beta', 'alpha']); wrapper.update(); expect(wrapper.find('MyComponent').prop('selection').environments).toEqual([ 'beta', 'alpha', ]); }); });