@@ -38,4 +38,72 @@ describe('DropdownItem', () => {
3838 expect ( wrapper . find ( '.dropdown-divider' ) . length ) . toBe ( 1 ) ;
3939 } ) ;
4040 } ) ;
41+
42+ describe ( 'onClick' , ( ) => {
43+ it ( 'should not be called when disabled' , ( ) => {
44+ const e = { preventDefault : jasmine . createSpy ( 'preventDefault' ) } ;
45+ const wrapper = mount ( < DropdownItem disabled > Item</ DropdownItem > ) ;
46+ const instance = wrapper . instance ( ) ;
47+
48+ instance . onClick ( e ) ;
49+ expect ( e . preventDefault ) . toHaveBeenCalled ( ) ;
50+ } ) ;
51+
52+ it ( 'should not be called when divider is set' , ( ) => {
53+ const e = { preventDefault : jasmine . createSpy ( 'preventDefault' ) } ;
54+ const wrapper = mount ( < DropdownItem divider /> ) ;
55+ const instance = wrapper . instance ( ) ;
56+
57+ instance . onClick ( e ) ;
58+ expect ( e . preventDefault ) . toHaveBeenCalled ( ) ;
59+ } ) ;
60+
61+ it ( 'should not be called when header item' , ( ) => {
62+ const e = { preventDefault : jasmine . createSpy ( 'preventDefault' ) } ;
63+ const wrapper = mount ( < DropdownItem header > Header</ DropdownItem > ) ;
64+ const instance = wrapper . instance ( ) ;
65+
66+ instance . onClick ( e ) ;
67+ expect ( e . preventDefault ) . toHaveBeenCalled ( ) ;
68+ } ) ;
69+
70+ it ( 'should be called not disabled, heading, or divider' , ( ) => {
71+ const e = { preventDefault : jasmine . createSpy ( 'preventDefault' ) } ;
72+ const onClick = jasmine . createSpy ( 'onClick' ) ;
73+ const wrapper = mount ( < DropdownItem onClick = { onClick . bind ( this ) } > Click me</ DropdownItem > ) ;
74+ const instance = wrapper . instance ( ) ;
75+
76+ instance . onClick ( e ) ;
77+ expect ( onClick ) . toHaveBeenCalled ( ) ;
78+ } ) ;
79+
80+ it ( 'should call onClose' , ( ) => {
81+ const wrapper = mount ( < DropdownItem > Click me</ DropdownItem > ) ;
82+ const instance = wrapper . instance ( ) ;
83+ spyOn ( instance , 'onClose' ) ;
84+
85+ instance . onClick ( { } ) ;
86+ expect ( instance . onClose ) . toHaveBeenCalled ( ) ;
87+ } ) ;
88+ } ) ;
89+
90+ describe ( 'onClose' , ( ) => {
91+ it ( 'should call props.onClose' , ( ) => {
92+ const onClose = jasmine . createSpy ( 'onClose' ) ;
93+ const wrapper = mount ( < DropdownItem onClose = { onClose . bind ( this ) } > Click me</ DropdownItem > ) ;
94+ const instance = wrapper . instance ( ) ;
95+
96+ instance . onClose ( { } ) ;
97+ expect ( onClose ) . toHaveBeenCalled ( ) ;
98+ } ) ;
99+
100+ it ( 'should call props.closeDropdown' , ( ) => {
101+ const closeDropdown = jasmine . createSpy ( 'closeDropdown' ) ;
102+ const wrapper = mount ( < DropdownItem closeDropdown = { closeDropdown . bind ( this ) } > Click me</ DropdownItem > ) ;
103+ const instance = wrapper . instance ( ) ;
104+
105+ instance . onClose ( { } ) ;
106+ expect ( closeDropdown ) . toHaveBeenCalled ( ) ;
107+ } ) ;
108+ } ) ;
41109} ) ;
0 commit comments