I've been working on a React app for a few weeks and I use Material UI components for most of by base.
I have this component that has its style change depending on the values of its props. To do this, I did something like:
const useStyles = makeStyles({
component: {
...
backgroundColor: getComponentBackgroundColor(),
...
}
});
with getComponentBackgroundColor() being defined as
const getComponentBackgroundColor = () => {
if (props.someProp) {
return "green";
}
return "red";
};
and then by setting the component's className.
My problem is that I want to test this component to ensure that the styling is correctly applied (some getStyle() methods are more complex than juste looking if a prop exists or not).
I'm using the react-testing-library and my first instinct was to check if the rendered component had the right className, but upon further inspection, I realized that makeStyle() assigns some random className like makeStyles-component-12 to each component. I also noticed that components with the same styling had different classNames. So that was a no-go.
Is there an easy way to test conditional styling when using Material UI's makeStyles() ?
Thanks a bunch.