Skip to content

Instantly share code, notes, and snippets.

@dirtyhenry
Last active May 25, 2021 12:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dirtyhenry/f5afb099b011e40e8e8e0c26180af118 to your computer and use it in GitHub Desktop.
Save dirtyhenry/f5afb099b011e40e8e8e0c26180af118 to your computer and use it in GitHub Desktop.
React Component Test Template
import { ComponentProps, ReactNode } from 'react';
import { Store } from 'common/store/test-utils/factories';
import expectRenderError from 'test-utils/expectRenderError';
import { fireEvent, renderWithHoc } from 'test-utils/helpers';
import XXX from '..';
type RenderComponentProps = {
props: Partial<ComponentProps<typeof XXX>>;
jsxToRender?: (props: ComponentProps<typeof XXX>) => ReactNode;
};
describe('XXX', () => {
const renderComponent = (args: Partial<RenderComponentProps> = {}) => {
const { jsxToRender = (actualProps) => <XXX {...actualProps} />, props = {} } = args;
const store = Store.build();
const actualProps: ComponentProps<typeof XXX> = {
// TODO: complete this:
// onSubmit: jest.fn().mockResolvedValue(null),
// onChange: jest.fn(),
...props,
};
return {
...actualProps,
...renderWithHoc(jsxToRender(actualProps), {
store,
/** Uncomment if form: useFormStore: true, */
}),
};
};
it('renders without crashing', () => {
const { container } = renderComponent();
expect(container).toMatchSnapshot();
});
});
import React from 'react';
type Props = {};
const XXX = (_props: Props) => {
return <div>TODO</div>;
};
export default XXX;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment