@@ -561,6 +561,65 @@ export function main() {
561561 } ) ;
562562 } ) ) ;
563563
564+ it ( 'should call $onInit of components' , inject ( [ AsyncTestCompleter ] , ( async ) => {
565+ var adapter = new UpgradeAdapter ( ) ;
566+ var ng1Module = angular . module ( 'ng1' , [ ] ) ;
567+ var valueToFind = '$onInit' ;
568+
569+ var ng1 = {
570+ bindings : { } ,
571+ template : '{{$ctrl.value}}' ,
572+ controller : Class (
573+ { constructor : function ( ) { } , $onInit : function ( ) { this . value = valueToFind ; } } )
574+ } ;
575+ ng1Module . component ( 'ng1' , ng1 ) ;
576+
577+ var Ng2 = Component ( {
578+ selector : 'ng2' ,
579+ template : '<ng1></ng1>' ,
580+ directives : [ adapter . upgradeNg1Component ( 'ng1' ) ]
581+ } ) . Class ( { constructor : function ( ) { } } ) ;
582+ ng1Module . directive ( 'ng2' , adapter . downgradeNg2Component ( Ng2 ) ) ;
583+
584+ var element = html ( `<div><ng2></ng2></div>` ) ;
585+ adapter . bootstrap ( element , [ 'ng1' ] )
586+ . ready ( ( ref ) => {
587+ expect ( multiTrim ( document . body . textContent ) ) . toEqual ( valueToFind ) ;
588+ ref . dispose ( ) ;
589+ async . done ( ) ;
590+ } ) ;
591+ } ) ) ;
592+
593+ it ( 'should bind input properties (<) of components' , inject ( [ AsyncTestCompleter ] , ( async ) => {
594+ var adapter = new UpgradeAdapter ( ) ;
595+ var ng1Module = angular . module ( 'ng1' , [ ] ) ;
596+
597+ var ng1 = {
598+ bindings : { personProfile : '<' } ,
599+ template : 'Hello {{$ctrl.personProfile.firstName}} {{$ctrl.personProfile.lastName}}' ,
600+ controller : Class ( { constructor : function ( ) { } } )
601+ } ;
602+ ng1Module . component ( 'ng1' , ng1 ) ;
603+
604+ var Ng2 =
605+ Component ( {
606+ selector : 'ng2' ,
607+ template : '<ng1 [personProfile]="goku"></ng1>' ,
608+ directives : [ adapter . upgradeNg1Component ( 'ng1' ) ]
609+ } )
610+ . Class ( {
611+ constructor : function ( ) { this . goku = { firstName : 'GOKU' , lastName : 'SAN' } ; }
612+ } ) ;
613+ ng1Module . directive ( 'ng2' , adapter . downgradeNg2Component ( Ng2 ) ) ;
614+
615+ var element = html ( `<div><ng2></ng2></div>` ) ;
616+ adapter . bootstrap ( element , [ 'ng1' ] )
617+ . ready ( ( ref ) => {
618+ expect ( multiTrim ( document . body . textContent ) ) . toEqual ( `Hello GOKU SAN` ) ;
619+ ref . dispose ( ) ;
620+ async . done ( ) ;
621+ } ) ;
622+ } ) ) ;
564623 } ) ;
565624
566625 describe ( 'injection' , ( ) => {
0 commit comments