@@ -18,7 +18,10 @@ function createItems(accordion: AccordionWidget, n = 3): AccordionItemWidget[] {
1818 for ( let i = 0 ; i < n ; i ++ ) {
1919 items . push ( accordion . api . registerItem ( ) ) ;
2020 }
21- items . forEach ( ( i ) => i . directives . itemDirective ( el ) ) ;
21+ items . forEach ( ( i ) => {
22+ i . directives . itemDirective ( el ) ;
23+ i . directives . bodyContainerDirective ( el ) ;
24+ } ) ;
2225 return items ;
2326}
2427
@@ -125,38 +128,44 @@ describe(`Accordion`, () => {
125128 button . click ( ) ;
126129 } ) ;
127130
128- test ( `should expand all the items and close them` , ( ) => {
131+ test ( `should expand all the items and close them` , async ( ) => {
129132 const el = document . createElement ( 'div' ) ;
130- accordion . api . registerItem ( ) . directives . itemDirective ( el ) ;
131- accordion . api . registerItem ( ) . directives . itemDirective ( el ) ;
132- accordion . api . registerItem ( ) . directives . itemDirective ( el ) ;
133+ const item1 = accordion . api . registerItem ( ) ;
134+ const item2 = accordion . api . registerItem ( ) ;
135+ const item3 = accordion . api . registerItem ( ) ;
136+ item1 . directives . itemDirective ( el ) ;
137+ item1 . directives . bodyContainerDirective ( el ) ;
138+ item2 . directives . itemDirective ( el ) ;
139+ item2 . directives . bodyContainerDirective ( el ) ;
140+ item3 . directives . itemDirective ( el ) ;
141+ item3 . directives . bodyContainerDirective ( el ) ;
133142 expectOpenItems ( state , [ false , false , false ] ) ;
134- accordion . api . expandAll ( ) ;
143+ await accordion . api . expandAll ( ) ;
135144 expectOpenItems ( state , [ true , true , true ] ) ;
136- accordion . api . collapseAll ( ) ;
145+ await accordion . api . collapseAll ( ) ;
137146 expectOpenItems ( state , [ false , false , false ] ) ;
138147 } ) ;
139148
140- test ( `should toggle items from accordion api` , ( ) => {
149+ test ( `should toggle items from accordion api` , async ( ) => {
141150 const items = createItems ( accordion ) ;
142151 const itemIds = items . map ( ( i ) => i . state$ ( ) . id ) ;
143152 expectOpenItems ( state , [ false , false , false ] ) ;
144- accordion . api . expand ( itemIds [ 0 ] ) ;
145- accordion . api . expand ( itemIds [ 2 ] ) ;
153+ await accordion . api . expand ( itemIds [ 0 ] ) ;
154+ await accordion . api . expand ( itemIds [ 2 ] ) ;
146155 expectOpenItems ( state , [ true , false , true ] ) ;
147- accordion . api . toggle ( itemIds [ 1 ] ) ;
148- accordion . api . collapse ( itemIds [ 2 ] ) ;
156+ await accordion . api . toggle ( itemIds [ 1 ] ) ;
157+ await accordion . api . collapse ( itemIds [ 2 ] ) ;
149158 expectOpenItems ( state , [ true , true , false ] ) ;
150159 } ) ;
151160
152- test ( `should toggle items with item api` , ( ) => {
161+ test ( `should toggle items with item api` , async ( ) => {
153162 const items = createItems ( accordion ) ;
154163 expectOpenItems ( state , [ false , false , false ] ) ;
155- items [ 0 ] . api . expand ( ) ;
156- items [ 2 ] . api . expand ( ) ;
164+ await items [ 0 ] . api . expand ( ) ;
165+ await items [ 2 ] . api . expand ( ) ;
157166 expectOpenItems ( state , [ true , false , true ] ) ;
158- items [ 1 ] . api . toggle ( ) ;
159- items [ 2 ] . api . collapse ( ) ;
167+ await items [ 1 ] . api . toggle ( ) ;
168+ await items [ 2 ] . api . collapse ( ) ;
160169 expectOpenItems ( state , [ true , true , false ] ) ;
161170 } ) ;
162171
@@ -167,12 +176,12 @@ describe(`Accordion`, () => {
167176 i . directives . bodyContainerDirective ( element ) ;
168177 expectOpenItems ( state , [ false ] ) ;
169178 //calling it twice to ensure only one event is fired
170- i . api . toggle ( ) ;
171- i . api . expand ( ) ;
179+ void i . api . toggle ( ) ;
180+ void i . api . expand ( ) ;
172181 await promiseOnShownItem . promise ;
173182 expectOpenItems ( state , [ true ] ) ;
174- i . api . toggle ( ) ;
175- i . api . collapse ( ) ;
183+ void i . api . toggle ( ) ;
184+ void i . api . collapse ( ) ;
176185 await promiseOnHiddenItem . promise ;
177186 expectOpenItems ( state , [ false ] ) ;
178187 expect ( itemShown ) . toBe ( 1 ) ;
@@ -188,10 +197,10 @@ describe(`Accordion`, () => {
188197 bodyContainerDirective ( element ) ;
189198 itemDirective ( element ) ;
190199 expectOpenItems ( state , [ false ] ) ;
191- accordion . api . toggle ( id$ ( ) ) ;
192- accordion . api . expand ( id$ ( ) ) ;
200+ void accordion . api . toggle ( id$ ( ) ) ;
201+ void accordion . api . expand ( id$ ( ) ) ;
193202 await promiseOnShown . promise ;
194- accordion . api . collapse ( id$ ( ) ) ;
203+ void accordion . api . collapse ( id$ ( ) ) ;
195204 await promiseOnHidden . promise ;
196205 expect ( showns ) . toMatchObject ( [ id$ ( ) ] ) ;
197206 expect ( hiddens ) . toMatchObject ( [ id$ ( ) ] ) ;
@@ -208,7 +217,7 @@ describe(`Accordion`, () => {
208217 expectOpenItems ( state , [ true , true , false ] ) ;
209218 } ) ;
210219
211- test ( `should close the old item if closeOthers` , ( ) => {
220+ test ( `should close the old item if closeOthers` , async ( ) => {
212221 const element = document . createElement ( 'div' ) ;
213222 accordion . directives . accordionDirective ( element ) ;
214223 const items = createItems ( accordion , 2 ) ;
@@ -220,11 +229,11 @@ describe(`Accordion`, () => {
220229 expectOpenItems ( state , [ true , false ] ) ;
221230
222231 // item api
223- items [ 1 ] . api . expand ( ) ;
232+ await items [ 1 ] . api . expand ( ) ;
224233 expectOpenItems ( state , [ false , true ] ) ;
225234
226235 // accordion api
227- accordion . api . expand ( items [ 0 ] . state$ ( ) . id ) ;
236+ await accordion . api . expand ( items [ 0 ] . state$ ( ) . id ) ;
228237 expectOpenItems ( state , [ true , false ] ) ;
229238 } ) ;
230239
@@ -241,40 +250,42 @@ describe(`Accordion`, () => {
241250 expectOpenItems ( state , [ false , true , false , false ] ) ;
242251 } ) ;
243252
244- test ( `should have correct value for shouldBeInDOM` , ( ) => {
253+ test ( `should have correct value for shouldBeInDOM` , async ( ) => {
254+ const el = document . createElement ( 'div' ) ;
245255 const i = accordion . api . registerItem ( { props : { visible : true } } ) ;
256+ i . directives . bodyContainerDirective ( el ) ;
246257 expect ( i . state$ ( ) . shouldBeInDOM ) . toBe ( true ) ;
247- i . api . collapse ( ) ;
258+ await i . api . collapse ( ) ;
248259 expect ( i . state$ ( ) . shouldBeInDOM ) . toBe ( false ) ;
249260 i . patch ( { destroyOnHide : false } ) ;
250261 expect ( i . state$ ( ) . shouldBeInDOM ) . toBe ( true ) ;
251262 } ) ;
252263
253- test ( `should closeOthers work when oldOpen is undefined` , ( ) => {
264+ test ( `should closeOthers work when oldOpen is undefined` , async ( ) => {
254265 const element = document . createElement ( 'div' ) ;
255266 accordion . directives . accordionDirective ( element ) ;
256267 const items = createItems ( accordion , 4 ) ;
257- items [ 0 ] . api . expand ( ) ;
258- items [ 1 ] . api . expand ( ) ;
268+ await items [ 0 ] . api . expand ( ) ;
269+ await items [ 1 ] . api . expand ( ) ;
259270 expectOpenItems ( state , [ true , true , false , false ] ) ;
260271 //oldOpenItem is undefined because initially openItems was [] and the first value of
261272 //oldOpenItem is openItems[0]
262273 accordion . patch ( { closeOthers : true } ) ;
263274 expectOpenItems ( state , [ false , true , false , false ] ) ;
264275 } ) ;
265276
266- test ( `should call initDone to enable the transition on item` , ( ) => {
277+ test ( `should call initDone to enable the transition on item` , async ( ) => {
267278 const el = document . createElement ( 'div' ) ;
268279 const transition = vi . fn ( ) ;
269280 const itemWidget = accordion . api . registerItem ( { props : { transition} } ) ;
270281 itemWidget . directives . itemDirective ( el ) ;
271282 itemWidget . directives . bodyContainerDirective ( el ) ;
272283 expectOpenItems ( state , [ false ] ) ;
273- itemWidget . api . expand ( ) ;
284+ await itemWidget . api . expand ( ) ;
274285 expectOpenItems ( state , [ true ] ) ;
275286 expect ( transition . mock . calls [ transition . mock . calls . length - 1 ] . slice ( 1 , 3 ) ) . toEqual ( [ 'show' , false ] ) ;
276287 itemWidget . api . initDone ( ) ;
277- itemWidget . api . collapse ( ) ;
288+ await itemWidget . api . collapse ( ) ;
278289 expectOpenItems ( state , [ false ] ) ;
279290 expect ( transition . mock . calls [ transition . mock . calls . length - 1 ] . slice ( 1 , 3 ) ) . toEqual ( [ 'hide' , true ] ) ;
280291 } ) ;
0 commit comments