import React from 'react'; import { shallow } from 'enzyme'; import { NavLink } from '../'; describe('NavLink', () => { it('should render .nav-link markup', () => { const wrapper = shallow(); expect(wrapper.html()).toBe(''); }); it('should render custom tag', () => { const wrapper = shallow(); expect(wrapper.html()).toBe(''); }); it('should render children', () => { const wrapper = shallow(Children); expect(wrapper.html()).toBe('Children'); }); it('should pass additional classNames', () => { const wrapper = shallow(); expect(wrapper.hasClass('extra')).toBe(true); expect(wrapper.hasClass('nav-link')).toBe(true); }); it('should render active class', () => { const wrapper = shallow(); expect(wrapper.hasClass('active')).toBe(true); }); it('should render disabled markup', () => { const wrapper = shallow(); expect(wrapper.hasClass('disabled')).toBe(true); }); it('handles onClick prop', () => { const onClick = jest.fn(); const e = createSpyObj('e', ['preventDefault']); const wrapper = shallow( ); wrapper.find('a').simulate('click', e); expect(onClick).toHaveBeenCalled(); expect(e.preventDefault).not.toHaveBeenCalled(); }); it('handles onClick events', () => { const e = createSpyObj('e', ['preventDefault']); const wrapper = shallow( ); wrapper.find('a').simulate('click', e); expect(e.preventDefault).not.toHaveBeenCalled(); }); it('prevents link clicks via onClick for dropdown nav-items', () => { const e = createSpyObj('e', ['preventDefault']); const wrapper = shallow( ); wrapper.find('a').simulate('click', e); expect(e.preventDefault).toHaveBeenCalled(); }); it('is not called when disabled', () => { const onClick = jest.fn(); const e = createSpyObj('e', ['preventDefault']); const wrapper = shallow( ); wrapper.find('a').simulate('click', e); expect(e.preventDefault).toHaveBeenCalled(); expect(onClick).not.toHaveBeenCalled(); }); });