import 'reflect-metadata'; import { MultiFilterChipsComponent, } from './multi-filter-chips.component'; const initMultiFilterChipsComponent = () => { return new MultiFilterChipsComponent(); }; describe('get noSelectedFilters', () => { test('Returns false if there at least 1 selected filter', () => { const multiFilterChipsComponent = initMultiFilterChipsComponent(); multiFilterChipsComponent.selectedFilters = ['foo']; expect(multiFilterChipsComponent.noSelectedFilters) .toBe(false); }); test('Returns true if there are no selected filter', () => { const multiFilterChipsComponent = initMultiFilterChipsComponent(); multiFilterChipsComponent.selectedFilters = []; expect(multiFilterChipsComponent.noSelectedFilters) .toBe(true); }); }); describe('isSelected', () => { test('Returns false if selectedFilter is empty', () => { const multiFilterChipsComponent = initMultiFilterChipsComponent(); multiFilterChipsComponent.selectedFilters = []; const result = multiFilterChipsComponent.isSelected('foo'); expect(result).toBe(false); }); // tslint:disable-next-line test('Returns false if supplied filter is not found selectedFilter is not found in the selectedFilters array', () => { const multiFilterChipsComponent = initMultiFilterChipsComponent(); multiFilterChipsComponent.selectedFilters = ['bar', 'baz']; const result = multiFilterChipsComponent.isSelected('foo'); expect(result).toBe(false); }); // tslint:disable-next-line test('Returns true if supplied filter is found selectedFilter is not found in the selectedFilters array', () => { const multiFilterChipsComponent = initMultiFilterChipsComponent(); multiFilterChipsComponent.selectedFilters = ['bar', 'foo', 'baz']; const result = multiFilterChipsComponent.isSelected('foo'); expect(result).toBe(true); }); }); describe('toggleFilter', () => { test('Calls onToggleFilter.emit with the filter', () => { const multiFilterChipsComponent = initMultiFilterChipsComponent(); multiFilterChipsComponent.onToggleFilter.emit = jest.fn(); multiFilterChipsComponent.toggleFilter('foo'); expect(multiFilterChipsComponent.onToggleFilter.emit) .toHaveBeenCalledWith('foo'); }); }); describe('clearAllFilters', () => { test('Calls onClearAllFilters.emit if there are filters selected', () => { const multiFilterChipsComponent = initMultiFilterChipsComponent(); multiFilterChipsComponent.selectedFilters = ['foo']; multiFilterChipsComponent.onClearAllFilters.emit = jest.fn(); multiFilterChipsComponent.clearAllFilters(); expect(multiFilterChipsComponent.onClearAllFilters.emit) .toHaveBeenCalled(); }); // tslint:disable-next-line test('Does not call onClearAllFilters.emit if there are no filters selected', () => { const multiFilterChipsComponent = initMultiFilterChipsComponent(); multiFilterChipsComponent.selectedFilters = []; multiFilterChipsComponent.onClearAllFilters.emit = jest.fn(); multiFilterChipsComponent.clearAllFilters(); expect(multiFilterChipsComponent.onClearAllFilters.emit) .not.toHaveBeenCalled(); }); });