@@ -1020,6 +1020,7 @@ describe('igxCombo', () => {
1020
1020
newSelection : [ targetItem . itemID ] ,
1021
1021
added : [ targetItem . itemID ] ,
1022
1022
removed : [ ] ,
1023
+ textValue : `${ targetItem . value [ combo . displayKey ] } ` ,
1023
1024
event : undefined ,
1024
1025
cancel : false
1025
1026
} ) ;
@@ -1034,6 +1035,7 @@ describe('igxCombo', () => {
1034
1035
newSelection : [ ] ,
1035
1036
added : [ ] ,
1036
1037
removed : [ targetItem . itemID ] ,
1038
+ textValue : '' ,
1037
1039
event : undefined ,
1038
1040
cancel : false
1039
1041
} ) ;
@@ -1045,57 +1047,61 @@ describe('igxCombo', () => {
1045
1047
spyOn ( combo . onSelectionChange , 'emit' ) ;
1046
1048
let oldSelection = [ ] ;
1047
1049
let newSelection = [ combo . data [ 1 ] , combo . data [ 5 ] , combo . data [ 6 ] ] ;
1050
+ let newSelectionKeys = newSelection . map ( entry => entry [ combo . valueKey ] ) ;
1048
1051
1049
1052
combo . toggle ( ) ;
1050
1053
tick ( ) ;
1051
1054
fix . detectChanges ( ) ;
1052
- combo . selectItems ( newSelection ) ;
1055
+ combo . selectItems ( newSelectionKeys ) ;
1053
1056
fix . detectChanges ( ) ;
1054
1057
expect ( combo . selectedItems ( ) . length ) . toEqual ( newSelection . length ) ;
1055
1058
expect ( combo . onSelectionChange . emit ) . toHaveBeenCalledTimes ( 1 ) ;
1056
1059
expect ( combo . onSelectionChange . emit ) . toHaveBeenCalledWith ( {
1057
1060
oldSelection : oldSelection ,
1058
- newSelection : newSelection ,
1059
- added : [ combo . data [ 1 ] , combo . data [ 5 ] , combo . data [ 6 ] ] ,
1061
+ newSelection : newSelectionKeys ,
1062
+ added : newSelectionKeys ,
1060
1063
removed : [ ] ,
1064
+ textValue : newSelection . map ( entry => entry [ combo . valueKey ] ) . join ( ', ' ) ,
1061
1065
event : undefined ,
1062
1066
cancel : false
1063
1067
} ) ;
1064
1068
1065
1069
let newItem = combo . data [ 3 ] ;
1066
- combo . selectItems ( [ newItem ] ) ;
1067
- oldSelection = [ ...newSelection ] ;
1068
- newSelection . push ( newItem ) ;
1070
+ combo . selectItems ( [ newItem [ combo . valueKey ] ] ) ;
1071
+ oldSelection = [ ...newSelectionKeys ] ;
1072
+ newSelectionKeys . push ( newItem [ combo . valueKey ] ) ;
1069
1073
fix . detectChanges ( ) ;
1070
- expect ( combo . selectedItems ( ) . length ) . toEqual ( newSelection . length ) ;
1074
+ expect ( combo . selectedItems ( ) . length ) . toEqual ( newSelectionKeys . length ) ;
1071
1075
expect ( combo . onSelectionChange . emit ) . toHaveBeenCalledTimes ( 2 ) ;
1072
1076
expect ( combo . onSelectionChange . emit ) . toHaveBeenCalledWith ( {
1073
1077
oldSelection : oldSelection ,
1074
- newSelection : newSelection ,
1078
+ newSelection : newSelectionKeys ,
1075
1079
removed : [ ] ,
1076
- added : [ combo . data [ 3 ] ] ,
1080
+ added : [ newItem [ combo . valueKey ] ] ,
1081
+ textValue : newSelectionKeys . join ( ', ' ) ,
1077
1082
event : undefined ,
1078
1083
cancel : false
1079
1084
} ) ;
1080
1085
1081
- oldSelection = [ ...newSelection ] ;
1082
- newSelection = [ combo . data [ 0 ] ] ;
1083
- combo . selectItems ( newSelection , true ) ;
1086
+ oldSelection = [ ...newSelectionKeys ] ;
1087
+ newSelectionKeys = [ combo . data [ 0 ] [ combo . valueKey ] ] ;
1088
+ combo . selectItems ( newSelectionKeys , true ) ;
1084
1089
fix . detectChanges ( ) ;
1085
- expect ( combo . selectedItems ( ) . length ) . toEqual ( newSelection . length ) ;
1090
+ expect ( combo . selectedItems ( ) . length ) . toEqual ( newSelectionKeys . length ) ;
1086
1091
expect ( combo . onSelectionChange . emit ) . toHaveBeenCalledTimes ( 3 ) ;
1087
1092
expect ( combo . onSelectionChange . emit ) . toHaveBeenCalledWith ( {
1088
1093
oldSelection : oldSelection ,
1089
- newSelection : newSelection ,
1094
+ newSelection : newSelectionKeys ,
1090
1095
removed : oldSelection ,
1091
- added : [ combo . data [ 0 ] ] ,
1096
+ added : [ combo . data [ 0 ] [ combo . valueKey ] ] ,
1097
+ textValue : combo . data [ 0 ] [ combo . valueKey ] ,
1092
1098
event : undefined ,
1093
1099
cancel : false
1094
1100
} ) ;
1095
1101
1096
- oldSelection = [ ...newSelection ] ;
1102
+ oldSelection = [ ...newSelectionKeys ] ;
1097
1103
newSelection = [ ] ;
1098
- newItem = combo . data [ 0 ] ;
1104
+ newItem = combo . data [ 0 ] [ combo . valueKey ] ;
1099
1105
combo . deselectItems ( [ newItem ] ) ;
1100
1106
fix . detectChanges ( ) ;
1101
1107
expect ( combo . selectedItems ( ) . length ) . toEqual ( newSelection . length ) ;
@@ -1104,7 +1110,8 @@ describe('igxCombo', () => {
1104
1110
expect ( combo . onSelectionChange . emit ) . toHaveBeenCalledWith ( {
1105
1111
oldSelection : oldSelection ,
1106
1112
newSelection : newSelection ,
1107
- removed : [ combo . data [ 0 ] ] ,
1113
+ removed : [ newItem ] ,
1114
+ textValue : `` ,
1108
1115
added : [ ] ,
1109
1116
event : undefined ,
1110
1117
cancel : false
@@ -1422,11 +1429,12 @@ describe('igxCombo', () => {
1422
1429
const dropdown = combo . dropdown ;
1423
1430
let timesFired = 1 ;
1424
1431
const mockEvent = new MouseEvent ( 'click' ) ;
1425
- const eventParams = {
1432
+ const eventParams : IComboSelectionChangeEventArgs = {
1426
1433
oldSelection : [ ] ,
1427
1434
newSelection : [ ] ,
1428
1435
added : [ ] ,
1429
1436
removed : [ ] ,
1437
+ textValue : '' ,
1430
1438
event : mockEvent ,
1431
1439
cancel : false
1432
1440
} ;
@@ -1446,12 +1454,14 @@ describe('igxCombo', () => {
1446
1454
1447
1455
eventParams . newSelection = [ dropdown . items [ 3 ] . value ] ;
1448
1456
eventParams . added = [ dropdown . items [ 3 ] . value ] ;
1457
+ eventParams . textValue = dropdown . items [ 3 ] . value ;
1449
1458
verifyOnSelectionChangeEventIsFired ( 3 ) ;
1450
1459
timesFired ++ ;
1451
1460
1452
1461
eventParams . oldSelection = [ dropdown . items [ 3 ] . value ] ;
1453
1462
eventParams . newSelection = [ dropdown . items [ 3 ] . value , dropdown . items [ 7 ] . value ] ;
1454
1463
eventParams . added = [ dropdown . items [ 7 ] . value ] ;
1464
+ eventParams . textValue = `${ dropdown . items [ 3 ] . value } , ${ dropdown . items [ 7 ] . value } ` ;
1455
1465
verifyOnSelectionChangeEventIsFired ( 7 ) ;
1456
1466
timesFired ++ ;
1457
1467
@@ -1460,6 +1470,7 @@ describe('igxCombo', () => {
1460
1470
eventParams . newSelection = [ dropdown . items [ 3 ] . value ] ;
1461
1471
eventParams . added = [ ] ;
1462
1472
eventParams . removed = [ dropdown . items [ 7 ] . value ] ;
1473
+ eventParams . textValue = dropdown . items [ 3 ] . value ;
1463
1474
verifyOnSelectionChangeEventIsFired ( 7 ) ;
1464
1475
} ) ) ;
1465
1476
it ( 'Should be able to select item when in grouped state' , fakeAsync ( ( ) => {
@@ -1593,56 +1604,67 @@ describe('igxCombo', () => {
1593
1604
fixture . detectChanges ( ) ;
1594
1605
const combo = fixture . componentInstance . combo ;
1595
1606
const selectionSpy = spyOn ( fixture . componentInstance , 'onSelectionChange' ) ;
1596
- const expectedResults = {
1597
- newSelection : [ combo . data [ 0 ] ] ,
1607
+ const expectedResults : IComboSelectionChangeEventArgs = {
1608
+ newSelection : [ combo . data [ 0 ] [ combo . valueKey ] ] ,
1598
1609
oldSelection : [ ] ,
1599
- added : [ combo . data [ 0 ] ] ,
1610
+ added : [ combo . data [ 0 ] [ combo . valueKey ] ] ,
1600
1611
removed : [ ] ,
1601
1612
event : undefined ,
1613
+ textValue : `${ combo . data [ 0 ] [ combo . displayKey ] } ` ,
1602
1614
cancel : false
1603
1615
} ;
1604
- combo . selectItems ( [ combo . data [ 0 ] ] ) ;
1616
+ combo . selectItems ( [ combo . data [ 0 ] [ combo . valueKey ] ] ) ;
1605
1617
expect ( selectionSpy ) . toHaveBeenCalledWith ( expectedResults ) ;
1606
1618
Object . assign ( expectedResults , {
1607
1619
newSelection : [ ] ,
1608
- oldSelection : [ combo . data [ 0 ] ] ,
1620
+ oldSelection : [ combo . data [ 0 ] [ combo . valueKey ] ] ,
1609
1621
added : [ ] ,
1610
- removed : [ combo . data [ 0 ] ]
1622
+ textValue : '' ,
1623
+ removed : [ combo . data [ 0 ] [ combo . valueKey ] ]
1611
1624
} ) ;
1612
- combo . deselectItems ( [ combo . data [ 0 ] ] ) ;
1625
+ combo . deselectItems ( [ combo . data [ 0 ] [ combo . valueKey ] ] ) ;
1613
1626
expect ( selectionSpy ) . toHaveBeenCalledWith ( expectedResults ) ;
1614
1627
} ) ;
1615
1628
1616
1629
it ( 'Should properly emit added and removed values in change event - multiple values' , ( ) => {
1617
1630
const fixture = TestBed . createComponent ( IgxComboSampleComponent ) ;
1618
1631
fixture . detectChanges ( ) ;
1619
1632
const combo = fixture . componentInstance . combo ;
1633
+ let oldSelection = [ ] ;
1634
+ let newSelection = [ combo . data [ 0 ] , combo . data [ 1 ] , combo . data [ 2 ] ] ;
1620
1635
const selectionSpy = spyOn ( fixture . componentInstance , 'onSelectionChange' ) ;
1621
- const expectedResults = {
1622
- newSelection : [ combo . data [ 0 ] , combo . data [ 1 ] , combo . data [ 2 ] ] ,
1623
- oldSelection : [ ] ,
1624
- added : [ combo . data [ 0 ] , combo . data [ 1 ] , combo . data [ 2 ] ] ,
1636
+ const expectedResults : IComboSelectionChangeEventArgs = {
1637
+ newSelection : newSelection . map ( e => e [ combo . valueKey ] ) ,
1638
+ oldSelection,
1639
+ added : newSelection . map ( e => e [ combo . valueKey ] ) ,
1625
1640
removed : [ ] ,
1626
1641
event : undefined ,
1642
+ textValue : `${ newSelection . map ( entry => entry [ combo . displayKey ] ) . join ( ', ' ) } ` ,
1627
1643
cancel : false
1628
1644
} ;
1629
- combo . selectItems ( [ combo . data [ 0 ] , combo . data [ 1 ] , combo . data [ 2 ] ] ) ;
1645
+ combo . selectItems ( newSelection . map ( e => e [ combo . valueKey ] ) ) ;
1630
1646
expect ( selectionSpy ) . toHaveBeenCalledWith ( expectedResults ) ;
1631
- combo . deselectItems ( [ combo . data [ 0 ] ] ) ;
1647
+ oldSelection = [ ...newSelection ] . map ( e => e [ combo . valueKey ] ) ;
1648
+ newSelection = [ combo . data [ 1 ] , combo . data [ 2 ] ] ;
1649
+ combo . deselectItems ( [ combo . data [ 0 ] [ combo . valueKey ] ] ) ;
1632
1650
Object . assign ( expectedResults , {
1633
- newSelection : [ combo . data [ 1 ] , combo . data [ 2 ] ] ,
1634
- oldSelection : [ combo . data [ 0 ] , combo . data [ 1 ] , combo . data [ 2 ] ] ,
1651
+ newSelection : newSelection . map ( e => e [ combo . valueKey ] ) ,
1652
+ oldSelection,
1635
1653
added : [ ] ,
1636
- removed : [ combo . data [ 0 ] ]
1654
+ textValue : newSelection . map ( e => e [ combo . displayKey ] ) . join ( ', ' ) ,
1655
+ removed : [ combo . data [ 0 ] [ combo . valueKey ] ]
1637
1656
} ) ;
1657
+ oldSelection = [ ...newSelection ] . map ( e => e [ combo . valueKey ] ) ;
1658
+ newSelection = [ combo . data [ 4 ] , combo . data [ 5 ] , combo . data [ 6 ] ] ;
1638
1659
expect ( selectionSpy ) . toHaveBeenCalledWith ( expectedResults ) ;
1639
1660
Object . assign ( expectedResults , {
1640
- newSelection : [ combo . data [ 4 ] , combo . data [ 5 ] , combo . data [ 6 ] ] ,
1641
- oldSelection : [ combo . data [ 1 ] , combo . data [ 2 ] ] ,
1642
- added : [ combo . data [ 4 ] , combo . data [ 5 ] , combo . data [ 6 ] ] ,
1643
- removed : [ combo . data [ 1 ] , combo . data [ 2 ] ]
1661
+ newSelection : newSelection . map ( e => e [ combo . valueKey ] ) ,
1662
+ oldSelection,
1663
+ added : newSelection . map ( e => e [ combo . valueKey ] ) ,
1664
+ textValue : newSelection . map ( e => e [ combo . displayKey ] ) . join ( ', ' ) ,
1665
+ removed : oldSelection
1644
1666
} ) ;
1645
- combo . selectItems ( [ combo . data [ 4 ] , combo . data [ 5 ] , combo . data [ 6 ] ] , true ) ;
1667
+ combo . selectItems ( newSelection . map ( e => e [ combo . valueKey ] ) , true ) ;
1646
1668
expect ( selectionSpy ) . toHaveBeenCalledWith ( expectedResults ) ;
1647
1669
} ) ;
1648
1670
} ) ;
0 commit comments