import { mount, shallow } from 'enzyme'; import * as React from 'react'; import { ElectronReleaseChannel, VersionSource, VersionState, } from '../../../src/interfaces'; import { VersionChooser } from '../../../src/renderer/components/commands-version-chooser'; import { StateMock, VersionsMock } from '../../mocks/mocks'; const { unknown } = VersionState; const { remote } = VersionSource; describe('VersionSelect component', () => { let store: StateMock; const mockVersion1 = { source: remote, state: unknown, version: '1.0.0', }; const mockVersion2 = { source: remote, state: unknown, version: '3.0.0-unsupported', }; beforeEach(() => { ({ state: store } = (window as any).ElectronFiddle.app); const { mockVersions } = new VersionsMock(); store.initVersions('2.0.2', { ...mockVersions, '1.0.0': { ...mockVersion1 }, '3.0.0-unsupported': { ...mockVersion2 }, }); store.channelsToShow = [ ElectronReleaseChannel.stable, ElectronReleaseChannel.beta, ]; }); it('renders', () => { const wrapper = shallow(); expect(wrapper).toMatchSnapshot(); }); it('selects a new version', () => { const wrapper = mount(); const onVersionSelect: any = wrapper .find('VersionSelect') .prop('onVersionSelect'); onVersionSelect(mockVersion1); expect(store.setVersion).toHaveBeenCalledWith(mockVersion1.version); }); });