import { mockClass, mockObject } from './mockClass'; import { MockHelper } from './MockHelper'; type ConstructorType = new (...args : any[]) => T; export function mockHtmlElement() { return mockObject(['focus', 'blur', 'addEventListener', 'removeEventListener', 'children', 'click']) as jest.Mocked; } export function mockComponent>(component: T) { const componentMock: jest.Mocked> = mockClass(component); const componentDOMMock = MockHelper.generateDOMMock(); const componentHTMLMock = mockHtmlElement(); componentDOMMock.get.mockReturnValue([componentHTMLMock] as any); componentMock.getDomElement.mockReturnValue(componentDOMMock); return componentMock; } export function getFirstDomElement(componentMock: jest.Mocked): jest.Mocked { return componentMock.getDomElement().get()[0] as jest.Mocked; }