@@ -12,9 +12,14 @@ import {
1212 warmupSessionDirectoryCache ,
1313} from "../../src/session/cache-manager.js" ;
1414
15- const { sessionListMock } = vi . hoisted ( ( ) => ( {
16- sessionListMock : vi . fn ( ) ,
17- } ) ) ;
15+ const { sessionListMock, loggerWarnMock, loggerDebugMock, loggerInfoMock, loggerErrorMock } =
16+ vi . hoisted ( ( ) => ( {
17+ sessionListMock : vi . fn ( ) ,
18+ loggerWarnMock : vi . fn ( ) ,
19+ loggerDebugMock : vi . fn ( ) ,
20+ loggerInfoMock : vi . fn ( ) ,
21+ loggerErrorMock : vi . fn ( ) ,
22+ } ) ) ;
1823
1924vi . mock ( "../../src/opencode/client.js" , ( ) => ( {
2025 opencodeClient : {
@@ -24,6 +29,15 @@ vi.mock("../../src/opencode/client.js", () => ({
2429 } ,
2530} ) ) ;
2631
32+ vi . mock ( "../../src/utils/logger.js" , ( ) => ( {
33+ logger : {
34+ debug : loggerDebugMock ,
35+ info : loggerInfoMock ,
36+ warn : loggerWarnMock ,
37+ error : loggerErrorMock ,
38+ } ,
39+ } ) ) ;
40+
2741function createSession ( directory : string , updated : number ) {
2842 return {
2943 id : `ses_${ updated } ` ,
@@ -48,6 +62,7 @@ describe("session/cache-manager", () => {
4862 setRuntimeMode ( "installed" ) ;
4963 await loadSettings ( ) ;
5064 sessionListMock . mockReset ( ) ;
65+ loggerWarnMock . mockReset ( ) ;
5166 __resetSessionDirectoryCacheForTests ( ) ;
5267 } ) ;
5368
@@ -118,6 +133,20 @@ describe("session/cache-manager", () => {
118133 expect ( directories . map ( ( item ) => item . worktree ) ) . toEqual ( [ "D:/repo-c" , "D:/repo-a" ] ) ;
119134 } ) ;
120135
136+ it ( "logs friendly message when server is not running during warmup sync" , async ( ) => {
137+ sessionListMock . mockResolvedValueOnce ( {
138+ data : null ,
139+ error : new TypeError ( "fetch failed" ) ,
140+ } ) ;
141+
142+ await warmupSessionDirectoryCache ( ) ;
143+
144+ expect ( loggerWarnMock ) . toHaveBeenCalledTimes ( 1 ) ;
145+ expect ( loggerWarnMock ) . toHaveBeenCalledWith (
146+ "[SessionCache] OpenCode server is not running. Start it with: opencode serve" ,
147+ ) ;
148+ } ) ;
149+
121150 it ( "updates existing directory with newer timestamp" , async ( ) => {
122151 await upsertSessionDirectory ( "D:/repo-a" , 1_700_000_000_100 ) ;
123152 await upsertSessionDirectory ( "D:/repo-a" , 1_700_000_000_900 ) ;
0 commit comments