@@ -266,9 +266,14 @@ describe('base', () => {
266266 expect ( serverApp . instance . counter . num ) . toBe ( 4 ) ;
267267 expect ( result2 ) . toBe ( 4 ) ;
268268
269- const result3 = await delegate ( clientApp . instance . counter , 'setNum' , [ 5 ] , {
270- respond : false ,
271- } ) ;
269+ const result3 = await delegate (
270+ clientApp . instance . counter ,
271+ 'setNum' ,
272+ [ 5 ] ,
273+ {
274+ respond : false ,
275+ }
276+ ) ;
272277
273278 expect ( clientApp . instance . counter . num ) . toBe ( 3 ) ;
274279 expect ( serverApp . instance . counter . num ) . toBe ( 5 ) ;
@@ -492,6 +497,127 @@ describe('base', () => {
492497 expect ( fn . mock . calls . length ) . toBe ( 3 ) ;
493498 } ) ;
494499
500+ test ( 'base server/Minimal set client port mode with enableTransportDebugger and transportLogger' , async ( ) => {
501+ const serverLogger = jest . fn ( ) ;
502+ const clientLogger = jest . fn ( ) ;
503+ const transports = mockPairTransports ( {
504+ serverLogger,
505+ clientLogger,
506+ serverVerbose : true ,
507+ clientVerbose : true ,
508+ } ) ;
509+
510+ const serverApp = await createSharedApp ( {
511+ modules : [ { provide : 'todoList' , useClass : TodoList } ] ,
512+ main : AppView ,
513+ render,
514+ share : {
515+ name : 'counter' ,
516+ type : 'Base' ,
517+ port : 'server' ,
518+ transports : {
519+ server : transports [ 0 ] ,
520+ } ,
521+ enableTransportDebugger : true ,
522+ transportLogger : serverLogger ,
523+ } ,
524+ } ) ;
525+ act ( ( ) => {
526+ serverApp . bootstrap ( serverContainer ) ;
527+ } ) ;
528+ expect ( serverContainer . querySelector ( '#count' ) ?. textContent ) . toBe ( '0' ) ;
529+
530+ const clientApp = await createSharedApp ( {
531+ modules : [ ] ,
532+ main : AppView ,
533+ render,
534+ share : {
535+ name : 'counter' ,
536+ type : 'Base' ,
537+ port : 'client' ,
538+ transports : {
539+ client : transports [ 1 ] ,
540+ } ,
541+ enablePatchesFilter : true ,
542+ transportLogger : clientLogger ,
543+ enableTransportDebugger : true ,
544+ } ,
545+ } ) ;
546+ await clientApp . bootstrap ( clientContainer ) ;
547+ expect ( clientContainer . querySelector ( '#count' ) ?. textContent ) . toBe ( '0' ) ;
548+
549+ act ( ( ) => {
550+ serverContainer
551+ . querySelector ( '#increase' ) !
552+ . dispatchEvent ( new MouseEvent ( 'click' , { bubbles : true } ) ) ;
553+ } ) ;
554+
555+ // waiting for sync state
556+ await new Promise ( ( resolve ) => setTimeout ( resolve ) ) ;
557+
558+ expect ( serverContainer . querySelector ( '#count' ) ?. textContent ) . toBe ( '1' ) ;
559+ expect ( clientContainer . querySelector ( '#count' ) ?. textContent ) . toBe ( '1' ) ;
560+
561+ expect ( clientApp . store ?. getState ( ) . counter . obj . number ) . toBe ( 1 ) ;
562+
563+ act ( ( ) => {
564+ clientContainer
565+ . querySelector ( '#increase' ) !
566+ . dispatchEvent ( new MouseEvent ( 'click' , { bubbles : true } ) ) ;
567+ } ) ;
568+
569+ // waiting for sync state
570+ await new Promise ( ( resolve ) => setTimeout ( resolve ) ) ;
571+
572+ expect ( serverContainer . querySelector ( '#count' ) ?. textContent ) . toBe ( '2' ) ;
573+ expect ( clientContainer . querySelector ( '#count' ) ?. textContent ) . toBe ( '2' ) ;
574+
575+ expect ( clientApp . store ?. getState ( ) . counter . obj . number ) . toBe ( 2 ) ;
576+ // waiting for sync state
577+ await new Promise ( ( resolve ) => setTimeout ( resolve ) ) ;
578+ expect ( serverLogger . mock . calls . length ) . toBe ( 6 ) ;
579+ expect ( clientLogger . mock . calls . length ) . toBe ( 8 ) ;
580+ act ( ( ) => {
581+ clientContainer
582+ . querySelector ( '#increase' ) !
583+ . dispatchEvent ( new MouseEvent ( 'click' , { bubbles : true } ) ) ;
584+ } ) ;
585+ // waiting for sync state
586+ await new Promise ( ( resolve ) => setTimeout ( resolve ) ) ;
587+
588+ const fn = jest . fn ( ) ;
589+ clientApp . store ! . subscribe ( fn ) ;
590+ expect ( fn . mock . calls . length ) . toBe ( 0 ) ;
591+ await serverApp . container . get ( PortDetector ) . syncToClients ( ) ;
592+ expect ( fn . mock . calls . length ) . toBe ( 1 ) ;
593+
594+ await clientApp . container
595+ . get ( PortDetector )
596+ . syncFullState ( { forceSync : false } ) ;
597+ expect ( fn . mock . calls . length ) . toBe ( 1 ) ;
598+ expect ( clientApp . container . get ( LastAction ) . sequence ) . toBe (
599+ serverApp . container . get ( LastAction ) . sequence
600+ ) ;
601+
602+ clientApp . container . get ( LastAction ) . sequence = - 1 ;
603+ await clientApp . container
604+ . get ( PortDetector )
605+ . syncFullState ( { forceSync : false } ) ;
606+ expect ( fn . mock . calls . length ) . toBe ( 2 ) ;
607+
608+ await clientApp . container
609+ . get ( PortDetector )
610+ . syncFullState ( { forceSync : false } ) ;
611+ expect ( fn . mock . calls . length ) . toBe ( 2 ) ;
612+
613+ await clientApp . container . get ( PortDetector ) . syncFullState ( ) ;
614+ expect ( fn . mock . calls . length ) . toBe ( 3 ) ;
615+ // waiting for sync state
616+ await new Promise ( ( resolve ) => setTimeout ( resolve ) ) ;
617+ expect ( serverLogger . mock . calls . length ) . toBe ( 13 ) ;
618+ expect ( clientLogger . mock . calls . length ) . toBe ( 20 ) ;
619+ } ) ;
620+
495621 test ( 'base SPA mode' , async ( ) => {
496622 onServerFn = jest . fn ( ) ;
497623 subscribeOnServerFn = jest . fn ( ) ;
0 commit comments