@@ -1069,6 +1069,79 @@ describe('PolylitMixin', () => {
10691069 } ) ;
10701070 } ) ;
10711071
1072+ describe ( 'sync observers' , ( ) => {
1073+ let element ;
1074+ const readySpy = sinon . spy ( ) ;
1075+ const openedChangedSpy = sinon . spy ( ) ;
1076+ const headerChangedSpy = sinon . spy ( ) ;
1077+ const contentChangedSpy = sinon . spy ( ) ;
1078+
1079+ const tag = defineCE (
1080+ class extends PolylitMixin ( LitElement ) {
1081+ static get properties ( ) {
1082+ return {
1083+ opened : {
1084+ type : Boolean ,
1085+ sync : true ,
1086+ } ,
1087+
1088+ header : {
1089+ type : String ,
1090+ sync : true ,
1091+ } ,
1092+
1093+ content : {
1094+ type : String ,
1095+ sync : true ,
1096+ } ,
1097+ } ;
1098+ }
1099+
1100+ static get observers ( ) {
1101+ return [ 'openedChanged(opened)' , 'headerChanged(opened, header)' , 'contentChanged(opened, content)' ] ;
1102+ }
1103+
1104+ ready ( ) {
1105+ super . ready ( ) ;
1106+ readySpy ( ) ;
1107+ }
1108+
1109+ openedChanged ( opened ) {
1110+ openedChangedSpy ( ) ;
1111+
1112+ if ( opened ) {
1113+ this . header = 'Header' ;
1114+ this . content = 'Content' ;
1115+ }
1116+ }
1117+
1118+ headerChanged ( _opened , _header ) {
1119+ headerChangedSpy ( ) ;
1120+ }
1121+
1122+ contentChanged ( _opened , _content ) {
1123+ contentChangedSpy ( ) ;
1124+ }
1125+ } ,
1126+ ) ;
1127+
1128+ beforeEach ( async ( ) => {
1129+ element = fixtureSync ( `<${ tag } opened></${ tag } >` ) ;
1130+ await element . updateComplete ;
1131+ } ) ;
1132+
1133+ it ( 'should call ready after observers during initialization' , ( ) => {
1134+ expect ( openedChangedSpy ) . to . be . calledOnce ;
1135+ expect ( headerChangedSpy ) . to . be . calledTwice ;
1136+ expect ( contentChangedSpy ) . to . be . calledTwice ;
1137+
1138+ expect ( readySpy ) . to . be . calledOnce ;
1139+ expect ( readySpy ) . to . be . calledAfter ( openedChangedSpy ) ;
1140+ expect ( readySpy ) . to . be . calledAfter ( headerChangedSpy ) ;
1141+ expect ( readySpy ) . to . be . calledAfter ( contentChangedSpy ) ;
1142+ } ) ;
1143+ } ) ;
1144+
10721145 describe ( 'setProperties()' , ( ) => {
10731146 let element ;
10741147
0 commit comments