File tree Expand file tree Collapse file tree 2 files changed +23
-0
lines changed Expand file tree Collapse file tree 2 files changed +23
-0
lines changed Original file line number Diff line number Diff line change @@ -37,6 +37,8 @@ const Accordion = props => {
37
37
if ( setProps ) {
38
38
if ( active_item !== item ) {
39
39
setProps ( { active_item : item } ) ;
40
+ } else {
41
+ setProps ( { active_item : null } ) ;
40
42
}
41
43
}
42
44
} ;
Original file line number Diff line number Diff line change @@ -128,5 +128,26 @@ describe('Accordion', () => {
128
128
expect (
129
129
accordionItems . children [ 1 ] . querySelector ( 'div.accordion-collapse' )
130
130
) . toHaveClass ( 'show' ) ;
131
+
132
+ // clicking on an open item closes it
133
+ userEvent . click (
134
+ accordionItems . children [ 1 ] . querySelector ( 'h2.accordion-header > button' )
135
+ ) ;
136
+ expect ( mockSetProps . mock . calls ) . toHaveLength ( 2 ) ;
137
+
138
+ rerender (
139
+ < Accordion setProps = { mockSetProps } { ...mockSetProps . mock . calls [ 1 ] [ 0 ] } >
140
+ < AccordionItem title = "item-title-1" > item-content-1</ AccordionItem >
141
+ < AccordionItem title = "item-title-2" > item-content-2</ AccordionItem >
142
+ </ Accordion >
143
+ ) ;
144
+ jest . runAllTimers ( ) ;
145
+
146
+ expect (
147
+ accordionItems . children [ 0 ] . querySelector ( 'div.accordion-collapse' )
148
+ ) . not . toHaveClass ( 'show' ) ;
149
+ expect (
150
+ accordionItems . children [ 1 ] . querySelector ( 'div.accordion-collapse' )
151
+ ) . not . toHaveClass ( 'show' ) ;
131
152
} ) ;
132
153
} ) ;
You can’t perform that action at this time.
0 commit comments