Write render tests for component
parent
1136e750f4
commit
e7a8fb305b
|
@ -0,0 +1,86 @@
|
||||||
|
import {shallow} from 'enzyme'
|
||||||
|
import React from 'react'
|
||||||
|
import SubSections from 'src/shared/components/SubSections'
|
||||||
|
import SubSectionsTab from 'src/shared/components/SubSectionsTab'
|
||||||
|
|
||||||
|
const Guava = () => {
|
||||||
|
return <div />
|
||||||
|
}
|
||||||
|
|
||||||
|
const Mango = () => {
|
||||||
|
return <div />
|
||||||
|
}
|
||||||
|
|
||||||
|
const Pineapple = () => {
|
||||||
|
return <div />
|
||||||
|
}
|
||||||
|
|
||||||
|
const guavaURL = 'guava'
|
||||||
|
const mangoURL = 'mango'
|
||||||
|
const pineappleURL = 'pineapple'
|
||||||
|
|
||||||
|
const defaultProps = {
|
||||||
|
router: {
|
||||||
|
push: () => {},
|
||||||
|
replace: () => {},
|
||||||
|
go: () => {},
|
||||||
|
goBack: () => {},
|
||||||
|
goForward: () => {},
|
||||||
|
setRouteLeaveHook: () => {},
|
||||||
|
isActive: () => {},
|
||||||
|
},
|
||||||
|
sourceID: 'fruitstand',
|
||||||
|
parentUrl: 'fred-the-fruit-guy',
|
||||||
|
activeSection: guavaURL,
|
||||||
|
sections: [
|
||||||
|
{
|
||||||
|
url: guavaURL,
|
||||||
|
name: 'Guava',
|
||||||
|
component: <Guava />,
|
||||||
|
enabled: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
url: mangoURL,
|
||||||
|
name: 'Mango',
|
||||||
|
component: <Mango />,
|
||||||
|
enabled: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
url: pineappleURL,
|
||||||
|
name: 'Pineapple',
|
||||||
|
component: <Pineapple />,
|
||||||
|
enabled: false,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}
|
||||||
|
|
||||||
|
const setup = (override?: {}) => {
|
||||||
|
const props = {
|
||||||
|
...defaultProps,
|
||||||
|
...override,
|
||||||
|
}
|
||||||
|
|
||||||
|
return shallow(<SubSections {...props} />)
|
||||||
|
}
|
||||||
|
|
||||||
|
describe('SubSections', () => {
|
||||||
|
describe('render', () => {
|
||||||
|
it('renders the currently active tab', () => {
|
||||||
|
const wrapper = setup()
|
||||||
|
const content = wrapper.dive().find({'data-test': 'subsectionContent'})
|
||||||
|
|
||||||
|
expect(content.find(Guava).exists()).toBe(true)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('only renders enabled tabs', () => {
|
||||||
|
const wrapper = setup()
|
||||||
|
const nav = wrapper.dive().find({'data-test': 'subsectionNav'})
|
||||||
|
|
||||||
|
const tabs = nav.find(SubSectionsTab)
|
||||||
|
|
||||||
|
tabs.forEach(tab => {
|
||||||
|
expect(tab.exists()).toBe(tab.props().section.enabled)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
Loading…
Reference in New Issue