What I need to test is LoginWrapper always renders inside Login component. I test it as follow but it does not pass since LoginWrapper cannot be found.
import React from 'react';
import Login from '../components/Login';
import Wrapper from '../components/Wrapper';
import styled from 'styled-components';
describe('test login', () => {
const shallowRender = (props) => shallow(<Login {...props} />);
let LoginWrapper;
beforeEach(() => {
LoginWrapper = styled(Wrapper)``;
});
afterEach(() => {
});
it('always render LoginWrapper', () => {
const login = shallowRender({
onSubmit: () => {}
});
const divs = login.find(LoginWrapper);
expect(divs).toHaveLength(1);
});
});
Login.js
import React from 'react';
import Wrapper from './Wrapper';
import { H5, Text, ALink } from '@lendi/lendi-components';
import styled from 'styled-components';
const LoginWrapper = styled(Wrapper)`
.mobile {
margin-bottom: 2px;
}
.signup {
padding-left: 5px;
}
`;
function Login ({onSubmit}) {
return (
<LoginWrapper>
<H5 style={style.center}>
{txt.title}
</H5>
</LoginWrapper>
);
}
export default Login;
It appears LoginWrapper will be rendered like <Styled(styled.div)> then what is the correct way to find it?
Any advice will be appreciated.