import React from 'react'; import {mount, shallow} from 'enzyme'; import UserBadge from 'app/components/idBadge/userBadge'; describe('UserBadge', function() { let member = TestStubs.Member(); let user = TestStubs.User(); it('renders with link when member is supplied', function() { let wrapper = mount(); expect(wrapper.find('StyledUserBadge')).toHaveLength(1); expect(wrapper.find('StyledName').prop('children')).toBe('Foo Bar'); expect(wrapper.find('StyledEmail').prop('children')).toBe('foo@example.com'); expect(wrapper.find('StyledName Link')).toHaveLength(1); }); it('renders with no link when user is supplied', function() { let wrapper = mount(); expect(wrapper.find('StyledUserBadge')).toHaveLength(1); expect(wrapper.find('StyledName').prop('children')).toBe('Foo Bar'); expect(wrapper.find('StyledEmail').prop('children')).toBe('foo@example.com'); expect(wrapper.find('StyledName Link')).toHaveLength(0); }); it('can display alternate display names/emails', function() { let wrapper = shallow( ); expect(wrapper.find('StyledName').prop('children')).toBe('Other Display Name'); expect(wrapper.find('StyledEmail').prop('children')).toBe('Other Display Email'); }); it('does not use a link for member name', function() { let wrapper = mount(); expect(wrapper.find('StyledName Link')).toHaveLength(0); }); it('can hide email address', function() { let wrapper = mount(); expect(wrapper.find('StyledEmail')).toHaveLength(0); }); it('renders when a member without a user to passed to member', function() { let wrapper = mount(); expect(wrapper.find('StyledName').prop('children')).toBe('Sentry 1 Name'); }); });