@@ -808,3 +808,89 @@ test('fork with args', async () => {
808808 expect ( server . instance . count ) . toBe ( 3 ) ;
809809 expect ( client0 . instance . count ) . toBe ( 4 ) ;
810810} ) ;
811+
812+ test ( 'fork with args with destroy on Client' , async ( ) => {
813+ const transports = mockPairTransports ( ) ;
814+
815+ const server = await createSharedApp ( {
816+ modules : [ ] ,
817+ main : Counter ,
818+ render : ( ) => { } ,
819+ share : {
820+ name : 'counter' ,
821+ type : 'Base' ,
822+ port : 'server' ,
823+ transports : {
824+ server : transports [ 0 ] ,
825+ } ,
826+ } ,
827+ } ) ;
828+
829+ expect ( server . instance . count ) . toBe ( 0 ) ;
830+
831+ const client0 = await createSharedApp ( {
832+ modules : [ ] ,
833+ main : Counter ,
834+ render : ( ) => { } ,
835+ share : {
836+ name : 'counter' ,
837+ type : 'Base' ,
838+ port : 'client' ,
839+ transports : {
840+ client : transports [ 1 ] ,
841+ } ,
842+ } ,
843+ } ) ;
844+ await client0 . bootstrap ( ) ;
845+ expect ( client0 . instance . count ) . toBe ( 0 ) ;
846+
847+ client0 . destroy ( ) ;
848+ await server . instance . increase ( ) ;
849+
850+ expect ( server . instance . count ) . toBe ( 1 ) ;
851+ expect ( client0 . instance . count ) . toBe ( 0 ) ;
852+ } ) ;
853+
854+ test ( 'fork with args with destroy on Server' , async ( ) => {
855+ const transports = mockPairTransports ( ) ;
856+
857+ const server = await createSharedApp ( {
858+ modules : [ ] ,
859+ main : Counter ,
860+ render : ( ) => { } ,
861+ share : {
862+ name : 'counter' ,
863+ type : 'Base' ,
864+ port : 'server' ,
865+ transports : {
866+ server : transports [ 0 ] ,
867+ } ,
868+ } ,
869+ } ) ;
870+
871+ expect ( server . instance . count ) . toBe ( 0 ) ;
872+
873+ const client0 = await createSharedApp ( {
874+ modules : [ ] ,
875+ main : Counter ,
876+ render : ( ) => { } ,
877+ share : {
878+ name : 'counter' ,
879+ type : 'Base' ,
880+ port : 'client' ,
881+ transports : {
882+ client : transports [ 1 ] ,
883+ } ,
884+ } ,
885+ } ) ;
886+ await client0 . bootstrap ( ) ;
887+ expect ( client0 . instance . count ) . toBe ( 0 ) ;
888+
889+ server . destroy ( ) ;
890+ await server . instance . increase ( ) ;
891+ // jest can send message to client after server destroyed
892+ expect ( server . instance . count ) . toBe ( 1 ) ;
893+ expect ( client0 . instance . count ) . toBe ( 1 ) ;
894+
895+ await expect ( client0 . instance . increase ( ) ) . rejects . toThrowError ( ) ;
896+ } ) ;
0 commit comments