UNPKG

@baolq/styled-components

Version:

Visual primitives for the component age. Use the best bits of ES6 and CSS to style your apps without stress

39 lines (32 loc) 1.27 kB
import { ReactWrapper } from "enzyme"; import { IStyledComponent } from "../src/types"; function assertElement(element: any) { if (!(element instanceof HTMLElement)) { throw new Error('Must pass a DOM element to find/findAll(element, styledComponent)"'); } } function assertStyledComponent(styledComponent: any) { if ( !(styledComponent.styledComponentId && typeof styledComponent.styledComponentId === 'string') ) { throw new Error( `${ styledComponent.displayName || styledComponent.name || 'Component' } is not a styled component.` ); } } export function enzymeFind(wrapper: ReactWrapper, styledComponent: IStyledComponent) { assertStyledComponent(styledComponent); return wrapper.find(`.${styledComponent.styledComponentId}`); } export function find(element: Element, styledComponent: IStyledComponent) { assertElement(element); assertStyledComponent(styledComponent); return element.querySelector(`.${styledComponent.styledComponentId}`); } export function findAll(element: Element, styledComponent: IStyledComponent) { assertElement(element); assertStyledComponent(styledComponent); return element.querySelectorAll(`.${styledComponent.styledComponentId}`); }