@@ -33,6 +33,7 @@ describe('SyncHostService endpoint', () => {
3333 let baseUrl : string
3434 let backupBytes : Buffer
3535 let publicationDir : string
36+ let changed : ReturnType < typeof vi . fn >
3637
3738 beforeEach ( async ( ) => {
3839 tempDir = await mkdtemp ( path . join ( os . tmpdir ( ) , 'deepchat-sync-host-' ) )
@@ -52,7 +53,9 @@ describe('SyncHostService endpoint', () => {
5253 await writeFile ( path . join ( syncDir , BACKUP_FILE_NAME ) , backupBytes )
5354
5455 publicationDir = path . join ( tempDir , 'sync-host' , 'snapshots' )
56+ changed = vi . fn ( )
5557 service = new SyncHostService ( {
58+ changed,
5659 createBackup : async ( ) => ( {
5760 fileName : BACKUP_FILE_NAME ,
5861 createdAt : 1_700_000_000_000 ,
@@ -690,6 +693,30 @@ describe('SyncHostService endpoint', () => {
690693 await expect ( fetch ( `${ baseUrl } ${ SYNC_HOST_PATH_PREFIX } /handshake` ) ) . rejects . toThrow ( )
691694 } )
692695
696+ it ( 'keeps status refreshes silent while notifying host lifecycle changes' , async ( ) => {
697+ changed . mockClear ( )
698+ await service . initialize ( )
699+ const statuses = await Promise . all ( [ service . getStatus ( ) , service . getStatus ( ) ] )
700+ expect ( statuses . map ( ( { running } ) => running ) ) . toEqual ( [ true , true ] )
701+ expect ( changed ) . not . toHaveBeenCalled ( )
702+
703+ const disabled = await service . setEnabled ( false )
704+ expect ( disabled . running ) . toBe ( false )
705+ expect ( changed ) . toHaveBeenCalled ( )
706+
707+ changed . mockClear ( )
708+ const enabled = await service . setEnabled ( true , {
709+ port : Number ( new URL ( baseUrl ) . port ) ,
710+ consent : true
711+ } )
712+ expect ( enabled . running ) . toBe ( true )
713+ expect ( changed ) . toHaveBeenCalled ( )
714+
715+ changed . mockClear ( )
716+ expect ( ( await service . getStatus ( ) ) . running ) . toBe ( true )
717+ expect ( changed ) . not . toHaveBeenCalled ( )
718+ } )
719+
693720 it ( 'keeps the listener and the enabled flag consistent under interleaved enable/disable' , async ( ) => {
694721 await Promise . all ( [
695722 service . setEnabled ( false ) ,
0 commit comments