import 'reflect-metadata'; import { ToggleComponent, } from './toggle.component'; const initToggleComponent = () => { return new ToggleComponent(); }; describe('ngAfterViewInit', () => { test('Sets isAnimatable to true', () => { const toggleComponent = initToggleComponent(); toggleComponent.isAnimatable = null; toggleComponent.ngAfterViewInit(); expect( toggleComponent.isAnimatable, ).toBe(true); }); }); describe('toggleButton', () => { test('It sets isOn to false if isOn is true and disabled is false', () => { const toggleComponent = initToggleComponent(); toggleComponent.isOn = true; toggleComponent.disabled = false; toggleComponent.toggleButton(); expect(toggleComponent.isOn).toBe(false); }); test('It sets isOn to true if isOn is false and disabled is false', () => { const toggleComponent = initToggleComponent(); toggleComponent.isOn = false; toggleComponent.disabled = false; toggleComponent.toggleButton(); expect(toggleComponent.isOn).toBe(true); }); test('Does not change isOn if disabled is true', () => { const toggleComponent = initToggleComponent(); toggleComponent.isOn = false; toggleComponent.disabled = true; toggleComponent.toggleButton(); expect(toggleComponent.isOn).toBe(false); }); // tslint:disable-next-line test('It calls onToggle.emit with the value of isOn if disabled is false', () => { const toggleComponent = initToggleComponent(); toggleComponent.isOn = true; toggleComponent.disabled = false; toggleComponent.onToggle.emit = jest.fn(); toggleComponent.toggleButton(); expect(toggleComponent.onToggle.emit) .toHaveBeenCalledWith(false); }); // tslint:disable-next-line test('Does not call onToggle.emit if disabled is true', () => { const toggleComponent = initToggleComponent(); toggleComponent.isOn = true; toggleComponent.disabled = true; toggleComponent.onToggle.emit = jest.fn(); toggleComponent.toggleButton(); expect(toggleComponent.onToggle.emit).not.toHaveBeenCalled(); }); test('Calls onDisabledClick.emit if disabled is true', () => { const toggleComponent = initToggleComponent(); toggleComponent.isOn = true; toggleComponent.disabled = true; toggleComponent.onDisabledClick.emit = jest.fn(); toggleComponent.toggleButton(); expect(toggleComponent.onDisabledClick.emit).toHaveBeenCalled(); }); test('Does not call onDisabledClick.emit if disabled is false', () => { const toggleComponent = initToggleComponent(); toggleComponent.isOn = true; toggleComponent.disabled = false; toggleComponent.onDisabledClick.emit = jest.fn(); toggleComponent.toggleButton(); expect(toggleComponent.onDisabledClick.emit).not.toHaveBeenCalled(); }); });