| 123456789101112131415161718192021222324252627282930313233343536373839 |
- 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<'web', any>) {
- assertStyledComponent(styledComponent);
- return wrapper.find(`.${styledComponent.styledComponentId}`);
- }
- export function find(element: Element, styledComponent: IStyledComponent<'web', any>) {
- assertElement(element);
- assertStyledComponent(styledComponent);
- return element.querySelector(`.${styledComponent.styledComponentId}`);
- }
- export function findAll(element: Element, styledComponent: IStyledComponent<'web', any>) {
- assertElement(element);
- assertStyledComponent(styledComponent);
- return element.querySelectorAll(`.${styledComponent.styledComponentId}`);
- }
|