import 'reflect-metadata'; import { LoadingButtonComponent, } from './loading-button.component'; const initLoadingButtonComponent = () => { return new LoadingButtonComponent(); }; describe('defaults', () => { test('Sets classes to the expected values by default', () => { const loadingButtonComponent = initLoadingButtonComponent(); expect(loadingButtonComponent.classes).toEqual([ 'c-btn', 'c-btn--primary', ]); }); test('Sets isLoading to false by default', () => { const loadingButtonComponent = initLoadingButtonComponent(); expect(loadingButtonComponent.isLoading).toBe(false); }); test('Sets disabled to false by default', () => { const loadingButtonComponent = initLoadingButtonComponent(); expect(loadingButtonComponent.disabled).toBe(false); }); }); describe('isDisabled', () => { test('Returns true if the button is disabled but it is not loading', () => { const loadingButtonComponent = initLoadingButtonComponent(); loadingButtonComponent.disabled = true; loadingButtonComponent.isLoading = false; expect(loadingButtonComponent.isDisabled()).toBe(true); }); test('Returns true if the button is not disabled but it is loading', () => { const loadingButtonComponent = initLoadingButtonComponent(); loadingButtonComponent.disabled = false; loadingButtonComponent.isLoading = true; expect(loadingButtonComponent.isDisabled()).toBe(true); }); // tslint:disable-next-line test('Returns false if the button is not disabled and it is not loading', () => { const loadingButtonComponent = initLoadingButtonComponent(); loadingButtonComponent.disabled = false; loadingButtonComponent.isLoading = false; expect(loadingButtonComponent.isDisabled()).toBe(false); }); }); describe('click', () => { test('Emits an event to onClick', () => { const loadingButtonComponent = initLoadingButtonComponent(); loadingButtonComponent.onClick.emit = jest.fn(); loadingButtonComponent.click(); expect(loadingButtonComponent.onClick.emit) .toHaveBeenCalled(); }); });