@kiwicom/smart-faq
Version:
96 lines (86 loc) • 2.22 kB
JavaScript
// @flow
import React from 'react';
import { render } from 'enzyme';
import { MemoryRouter } from 'react-router-dom';
import { ThemeProvider } from 'styled-components';
import { UserContext } from '../../../context/User';
import { RawContentHeader } from '../Header';
describe('ContentHeader', () => {
const props = {
renderOnlyLoggedOut: false,
onLogin: jest.fn(),
location: {
pathname: '/content',
search: '',
hash: '',
},
match: {
params: {
categoryId: '21',
},
isExact: true,
path: '',
url: '',
},
};
const theme = {
orbit: {
colorIconPrimary: '#46515e',
},
};
const user = {
brand: 'kiwicom',
user: {
id: '1',
email: 'joe.doe@example.com',
firstname: 'Joe',
lastname: 'Doe',
},
loginToken: 'AAAABBBBCCCC',
simpleToken: null,
kwAuthToken: null,
onLogin: jest.fn(),
onLogout: jest.fn(),
};
it('should render loggedIn user header', () => {
const wrapper = render(
<UserContext.Provider value={user}>
<MemoryRouter>
<RawContentHeader {...props} />
</MemoryRouter>
</UserContext.Provider>,
);
expect(wrapper.find('.loggedIn')).toHaveLength(1);
expect(wrapper).toMatchSnapshot();
});
it('should render loggedOut user header', () => {
const wrapper = render(
<MemoryRouter>
<ThemeProvider theme={theme}>
<RawContentHeader {...props} />
</ThemeProvider>
</MemoryRouter>,
);
expect(wrapper.find('.backButton').text()).toEqual(
'smartfaq.back_button.back',
);
expect(wrapper.find('.loggedOut')).toHaveLength(1);
expect(wrapper).toMatchSnapshot();
});
it('should render without SignIn on Home page without booking', () => {
const match = {
params: {},
isExact: true,
path: '',
url: '',
};
const wrapper = render(
<MemoryRouter>
<ThemeProvider theme={theme}>
<RawContentHeader {...props} renderOnlyLoggedOut match={match} />
</ThemeProvider>
</MemoryRouter>,
);
expect(wrapper.find('.signInOrBack').children()).toHaveLength(0);
});
});