@@ -54,7 +54,12 @@ function renderMultiselectWithSelectedOptions(props: Partial<MultiselectProps>)
54
54
return createWrapper ( renderResult . container ) . findMultiselect ( ) ! ;
55
55
}
56
56
57
- const getMetadataContexts = ( selectedOptionsCount = 0 , label = 'multiselect with metadata' , disabled ?: boolean ) => {
57
+ const getMetadataContexts = (
58
+ selectedOptionsCount = 0 ,
59
+ label = 'multiselect with metadata' ,
60
+ disabled : boolean = false ,
61
+ selectedOptions : MultiselectProps [ 'selectedOptions' ] = [ ]
62
+ ) => {
58
63
const metadata : GeneratedAnalyticsMetadataFragment = {
59
64
contexts : [
60
65
{
@@ -65,6 +70,7 @@ const getMetadataContexts = (selectedOptionsCount = 0, label = 'multiselect with
65
70
properties : {
66
71
disabled : disabled ? 'true' : 'false' ,
67
72
selectedOptionsCount : `${ selectedOptionsCount } ` ,
73
+ selectedOptionsValues : selectedOptions . map ( option => option . value ) as Array < string > ,
68
74
} ,
69
75
} ,
70
76
} ,
@@ -256,10 +262,23 @@ describe('Multiselect renders correct analytics metadata', () => {
256
262
} ) ;
257
263
} ) ;
258
264
describe ( 'with selected options' , ( ) => {
265
+ test ( 'with one selected option' , ( ) => {
266
+ const wrapper = renderMultiselectWithSelectedOptions ( { selectedOptions : [ selectedOptions [ 0 ] ] } ) ;
267
+ expect ( getGeneratedAnalyticsMetadata ( wrapper . getElement ( ) ) ) . toEqual (
268
+ getMetadataContexts ( 1 , undefined , false , [ selectedOptions [ 0 ] ] )
269
+ ) ;
270
+ } ) ;
271
+ test ( 'with selected options without value' , ( ) => {
272
+ const wrapper = renderMultiselectWithSelectedOptions ( { selectedOptions : [ { label : 'label1' } ] } ) ;
273
+ expect ( getGeneratedAnalyticsMetadata ( wrapper . getElement ( ) ) ) . toEqual ( getMetadataContexts ( 1 ) ) ;
274
+ } ) ;
275
+
259
276
test ( 'when readonly' , ( ) => {
260
277
const wrapper = renderMultiselectWithSelectedOptions ( { readOnly : true } ) ;
261
278
const simpleToken = wrapper . findToken ( 1 ) ! . findDismiss ( ) . getElement ( ) ;
262
- expect ( getGeneratedAnalyticsMetadata ( simpleToken ) ) . toEqual ( getMetadataContexts ( 5 ) ) ;
279
+ expect ( getGeneratedAnalyticsMetadata ( simpleToken ) ) . toEqual (
280
+ getMetadataContexts ( 5 , undefined , false , selectedOptions )
281
+ ) ;
263
282
} ) ;
264
283
265
284
test ( 'in dismiss button' , ( ) => {
@@ -272,13 +291,13 @@ describe('Multiselect renders correct analytics metadata', () => {
272
291
label : 'Dismiss label1' ,
273
292
position : '1' ,
274
293
} ,
275
- ...getMetadataContexts ( 5 ) ,
294
+ ...getMetadataContexts ( 5 , undefined , false , selectedOptions ) ,
276
295
} ) ;
277
296
278
297
const disabledToken = wrapper . findToken ( 3 ) ! . findDismiss ( ) . getElement ( ) ;
279
298
expect ( getGeneratedAnalyticsMetadata ( disabledToken ) ) . toEqual ( {
280
299
detail : { position : '3' } ,
281
- ...getMetadataContexts ( 5 ) ,
300
+ ...getMetadataContexts ( 5 , undefined , false , selectedOptions ) ,
282
301
} ) ;
283
302
} ) ;
284
303
@@ -298,7 +317,7 @@ describe('Multiselect renders correct analytics metadata', () => {
298
317
} ;
299
318
expect ( getGeneratedAnalyticsMetadata ( tokenToggle ) ) . toEqual ( {
300
319
...showMoreMetadata ,
301
- ...getMetadataContexts ( 5 ) ,
320
+ ...getMetadataContexts ( 5 , undefined , false , selectedOptions ) ,
302
321
} ) ;
303
322
304
323
wrapper . findTokenToggle ( ) ! . click ( ) ;
@@ -310,7 +329,7 @@ describe('Multiselect renders correct analytics metadata', () => {
310
329
} ;
311
330
expect ( getGeneratedAnalyticsMetadata ( wrapper . findTokenToggle ( ) ! . getElement ( ) ) ) . toEqual ( {
312
331
...showLessMetadata ,
313
- ...getMetadataContexts ( 5 ) ,
332
+ ...getMetadataContexts ( 5 , undefined , false , selectedOptions ) ,
314
333
} ) ;
315
334
} ) ;
316
335
} ) ;
0 commit comments