Существует действительно простой подход: 1. если mobile.image
существует - <MobileBanner>
отображается с mobile={mobile}
пройдено
it("renders MobileBanner is mobile passed`, () => {
const mobile = {image: 'test'};
const root = shallow(<YourComponent mobile={mobile} />);
expect(root.find(MobileBanner).prop().mobile).toEqual(mobile);
expect(root.find(DesktopBanner)).toHaveLength(0);
});
если существует
desktop.image
-
<DesktopBanner
отображается с
desktop={desktop}
пройдено
it("renders DesktopBanner is mobile passed`, () => {
const desktop = {image: 'test'};
const root = shallow(<YourComponent desktop={desktop} />);
expect(root.find(DesktopBanner).prop().desktop).toEqual(desktop);
expect(root.find(MobileBanner)).toHaveLength(0);
});
, даже если
mobile
и
desktop
равны
undefined
- ошибки нет (по крайней мере
<ImageBanner>
отображается)
it("does not fail if neither mobile nor desktop prop passed", () => {
const root = shallow(<YourComponent />);
expect(root.find(MobileBanner)).toHaveLength(0);
expect(root.find(DesktopBanner)).toHaveLength(0);
expect(root.find(ImageBanner).exists()).toBeTruthy();
});