@@ -21,7 +21,7 @@ import {
21
21
MdAutocomplete ,
22
22
MdAutocompleteModule ,
23
23
MdAutocompleteTrigger ,
24
- MdAutocompleteSelect ,
24
+ MdAutocompleteSelectedEvent ,
25
25
} from './index' ;
26
26
import { MdInputModule } from '../input/index' ;
27
27
import { Subscription } from 'rxjs/Subscription' ;
@@ -1551,7 +1551,7 @@ describe('MdAutocomplete', () => {
1551
1551
} ) ;
1552
1552
} ) ) ;
1553
1553
1554
- it ( 'should call emit an event when an option is selected' , fakeAsync ( ( ) => {
1554
+ it ( 'should emit an event when an option is selected' , fakeAsync ( ( ) => {
1555
1555
let fixture = TestBed . createComponent ( AutocompleteWithSelectEvent ) ;
1556
1556
1557
1557
fixture . detectChanges ( ) ;
@@ -1560,19 +1560,45 @@ describe('MdAutocomplete', () => {
1560
1560
fixture . detectChanges ( ) ;
1561
1561
1562
1562
let options = overlayContainerElement . querySelectorAll ( 'md-option' ) as NodeListOf < HTMLElement > ;
1563
- let spy = fixture . componentInstance . select ;
1563
+ let spy = fixture . componentInstance . optionSelected ;
1564
1564
1565
1565
options [ 1 ] . click ( ) ;
1566
1566
tick ( ) ;
1567
1567
fixture . detectChanges ( ) ;
1568
1568
1569
1569
expect ( spy ) . toHaveBeenCalledTimes ( 1 ) ;
1570
1570
1571
- let event = spy . calls . mostRecent ( ) . args [ 0 ] as MdAutocompleteSelect ;
1571
+ let event = spy . calls . mostRecent ( ) . args [ 0 ] as MdAutocompleteSelectedEvent ;
1572
1572
1573
1573
expect ( event . source ) . toBe ( fixture . componentInstance . autocomplete ) ;
1574
1574
expect ( event . option . value ) . toBe ( 'Washington' ) ;
1575
1575
} ) ) ;
1576
+
1577
+ it ( 'should emit an event when a newly-added option is selected' , fakeAsync ( ( ) => {
1578
+ let fixture = TestBed . createComponent ( AutocompleteWithSelectEvent ) ;
1579
+
1580
+ fixture . detectChanges ( ) ;
1581
+ fixture . componentInstance . trigger . openPanel ( ) ;
1582
+ tick ( ) ;
1583
+ fixture . detectChanges ( ) ;
1584
+
1585
+ fixture . componentInstance . states . push ( 'Puerto Rico' ) ;
1586
+ fixture . detectChanges ( ) ;
1587
+
1588
+ let options = overlayContainerElement . querySelectorAll ( 'md-option' ) as NodeListOf < HTMLElement > ;
1589
+ let spy = fixture . componentInstance . optionSelected ;
1590
+
1591
+ options [ 3 ] . click ( ) ;
1592
+ tick ( ) ;
1593
+ fixture . detectChanges ( ) ;
1594
+
1595
+ expect ( spy ) . toHaveBeenCalledTimes ( 1 ) ;
1596
+
1597
+ let event = spy . calls . mostRecent ( ) . args [ 0 ] as MdAutocompleteSelectedEvent ;
1598
+
1599
+ expect ( event . source ) . toBe ( fixture . componentInstance . autocomplete ) ;
1600
+ expect ( event . option . value ) . toBe ( 'Puerto Rico' ) ;
1601
+ } ) ) ;
1576
1602
} ) ;
1577
1603
1578
1604
@Component ( {
@@ -1857,7 +1883,8 @@ class AutocompleteWithGroups {
1857
1883
<md-input-container>
1858
1884
<input mdInput placeholder="State" [mdAutocomplete]="auto" [(ngModel)]="selectedState">
1859
1885
</md-input-container>
1860
- <md-autocomplete #auto="mdAutocomplete" (select)="select($event)">
1886
+
1887
+ <md-autocomplete #auto="mdAutocomplete" (optionSelected)="optionSelected($event)">
1861
1888
<md-option *ngFor="let state of states" [value]="state">
1862
1889
<span>{{ state }}</span>
1863
1890
</md-option>
@@ -1867,7 +1894,7 @@ class AutocompleteWithGroups {
1867
1894
class AutocompleteWithSelectEvent {
1868
1895
selectedState : string ;
1869
1896
states = [ 'New York' , 'Washington' , 'Oregon' ] ;
1870
- select = jasmine . createSpy ( 'select callback' ) ;
1897
+ optionSelected = jasmine . createSpy ( 'optionSelected callback' ) ;
1871
1898
1872
1899
@ViewChild ( MdAutocompleteTrigger ) trigger : MdAutocompleteTrigger ;
1873
1900
@ViewChild ( MdAutocomplete ) autocomplete : MdAutocomplete ;
0 commit comments