Created
May 10, 2019 14:48
-
-
Save mark-stephenson-/697eb52774b730e921c1d42c13834ad1 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { mount } from 'enzyme'; | |
import toJSON from 'enzyme-to-json'; | |
import wait from 'waait'; | |
import Nav from '../components/Nav'; | |
import { CURRENT_USER_QUERY } from '../components/User'; | |
import { MockedProvider } from 'react-apollo/test-utils'; | |
import { fakeUser, fakeCartItem } from '../lib/testUtils'; | |
const notSignedInMocks = [ | |
{ | |
request: { query: CURRENT_USER_QUERY}, | |
result: { data: { me: null }}, | |
}, | |
]; | |
const SignedInMocks = [ | |
{ | |
request: { query: CURRENT_USER_QUERY}, | |
result: { data: { me: fakeUser() }}, | |
}, | |
]; | |
describe('<Nav />',()=> { | |
it('renders a minimal nav when logged out', async () => { | |
const wrapper = mount( | |
<MockedProvider mocks={notSignedInMocks}> | |
<Nav /> | |
</MockedProvider> | |
); | |
await wait(); | |
wrapper.update(); | |
const nav = wrapper.find('[data-test="nav"]'); | |
expect(toJSON(nav)).toMatchSnapshot(); | |
}); | |
it('renders full nav when signed in', async () => { | |
const wrapper = mount( | |
<MockedProvider mocks={SignedInMocks}> | |
<Nav /> | |
</MockedProvider> | |
); | |
await wait(); | |
wrapper.update(); | |
const nav = wrapper.find('ul[data-test="nav"]'); | |
expect(nav.children().length).toBe(6); | |
expect(nav.text()).toContain('Sign Out'); | |
}); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment