import { mount } from 'enzyme'; import * as React from 'react'; import { TableFilter } from './table-filter'; import { PeriodicContext } from '../periodic-table-state/periodic-selection-context'; describe('', () => { it('should be rendered', () => { const wrapper = renderElement(); expect(wrapper.find('.mat-table-filter').length).toBe(1); }); it('once a subselector is clicked, all others should be deselected', () => { const wrapper = renderElement(); wrapper.find('.current-filter-selector').at(1).simulate('click'); expect(wrapper.find('.current-filter-selector.selected').at(0).text()).toBe('Metals'); expect( wrapper.find('.sub-filter-selector .current-filter-selector.selected').at(1).simulate('click') ); expect(wrapper.find('.sub-filter-selector .current-filter-selector.selected').length).toBe(1); }); xit('check callbacks', () => {}); //TODO(chab) this is too close to the implementation, but it's mainly to close the coverage gap //TODO(chab) this would be better to be tested without context it('fitering on periods/groups does not use a mapping function', () => { const wrapper = renderElement(); wrapper.find('.current-filter-selector').at(5).simulate('click'); wrapper.find('.sub-filter-selector .current-filter-selector').at(1).simulate('click'); // should expect a console.log statement }); }); function renderElement() { // we use mount to test the rendering of the underlying elements return mount( ); }