@@ -10,11 +10,11 @@ vi.mock("../service-factory")
1010vi . mock ( "../git-branch-watcher" )
1111vi . mock ( "../../../utils/git" )
1212
13- import { ServiceFactory } from "../service-factory"
13+ import { CodeIndexServiceFactory } from "../service-factory"
1414import { GitBranchWatcher } from "../git-branch-watcher"
1515import { getCurrentBranch } from "../../../utils/git"
1616
17- const mockedServiceFactory = vi . mocked ( ServiceFactory )
17+ const mockedServiceFactory = vi . mocked ( CodeIndexServiceFactory )
1818const mockedGitBranchWatcher = vi . mocked ( GitBranchWatcher )
1919const mockedGetCurrentBranch = vi . mocked ( getCurrentBranch )
2020
@@ -97,15 +97,16 @@ describe("CodeIndexManager + GitBranchWatcher Integration", () => {
9797 if ( manager ) {
9898 manager . dispose ( )
9999 }
100+ CodeIndexManager . disposeAll ( )
100101 branchChangeCallback = null
101102 } )
102103
103104 describe ( "branch change handling" , ( ) => {
104105 it ( "should invalidate cache and reinitialize vector store on branch change" , async ( ) => {
105- manager = new CodeIndexManager ( mockContext , "/test/workspace" )
106+ manager = CodeIndexManager . getInstance ( mockContext , "/test/workspace" ) !
106107
107108 // Start the manager
108- await manager . start ( )
109+ await manager . startIndexing ( )
109110
110111 expect ( mockWatcher . initialize ) . toHaveBeenCalled ( )
111112 expect ( mockOrchestrator . startIndexing ) . toHaveBeenCalled ( )
@@ -129,9 +130,9 @@ describe("CodeIndexManager + GitBranchWatcher Integration", () => {
129130 } )
130131
131132 it ( "should recreate services if orchestrator doesn't exist" , async ( ) => {
132- manager = new CodeIndexManager ( mockContext , "/test/workspace" )
133+ manager = CodeIndexManager . getInstance ( mockContext , "/test/workspace" ) !
133134
134- await manager . start ( )
135+ await manager . startIndexing ( )
135136
136137 // Simulate orchestrator being disposed
137138 mockOrchestrator . getVectorStore . mockReturnValue ( null )
@@ -148,9 +149,9 @@ describe("CodeIndexManager + GitBranchWatcher Integration", () => {
148149 } )
149150
150151 it ( "should handle branch change errors gracefully" , async ( ) => {
151- manager = new CodeIndexManager ( mockContext , "/test/workspace" )
152+ manager = CodeIndexManager . getInstance ( mockContext , "/test/workspace" ) !
152153
153- await manager . start ( )
154+ await manager . startIndexing ( )
154155
155156 // Make vector store initialization fail
156157 mockVectorStore . initialize . mockRejectedValueOnce ( new Error ( "Init failed" ) )
@@ -168,10 +169,10 @@ describe("CodeIndexManager + GitBranchWatcher Integration", () => {
168169 } )
169170
170171 it ( "should not process branch changes when manager is stopped" , async ( ) => {
171- manager = new CodeIndexManager ( mockContext , "/test/workspace" )
172+ manager = CodeIndexManager . getInstance ( mockContext , "/test/workspace" ) !
172173
173- await manager . start ( )
174- await manager . stop ( )
174+ await manager . startIndexing ( )
175+ manager . stopWatcher ( )
175176
176177 vi . clearAllMocks ( )
177178
@@ -187,9 +188,9 @@ describe("CodeIndexManager + GitBranchWatcher Integration", () => {
187188
188189 describe ( "watcher lifecycle" , ( ) => {
189190 it ( "should initialize watcher when manager starts" , async ( ) => {
190- manager = new CodeIndexManager ( mockContext , "/test/workspace" )
191+ manager = CodeIndexManager . getInstance ( mockContext , "/test/workspace" ) !
191192
192- await manager . start ( )
193+ await manager . startIndexing ( )
193194
194195 expect ( mockedGitBranchWatcher ) . toHaveBeenCalledWith (
195196 "/test/workspace" ,
@@ -203,9 +204,9 @@ describe("CodeIndexManager + GitBranchWatcher Integration", () => {
203204 } )
204205
205206 it ( "should dispose watcher when manager is disposed" , async ( ) => {
206- manager = new CodeIndexManager ( mockContext , "/test/workspace" )
207+ manager = CodeIndexManager . getInstance ( mockContext , "/test/workspace" ) !
207208
208- await manager . start ( )
209+ await manager . startIndexing ( )
209210
210211 manager . dispose ( )
211212
@@ -219,19 +220,19 @@ describe("CodeIndexManager + GitBranchWatcher Integration", () => {
219220 embedderProvider : "openai" ,
220221 } )
221222
222- manager = new CodeIndexManager ( mockContext , "/test/workspace" )
223+ manager = CodeIndexManager . getInstance ( mockContext , "/test/workspace" ) !
223224
224- await manager . start ( )
225+ await manager . startIndexing ( )
225226
226227 expect ( mockedGitBranchWatcher ) . not . toHaveBeenCalled ( )
227228 } )
228229 } )
229230
230231 describe ( "state consistency" , ( ) => {
231232 it ( "should maintain consistent state across multiple branch changes" , async ( ) => {
232- manager = new CodeIndexManager ( mockContext , "/test/workspace" )
233+ manager = CodeIndexManager . getInstance ( mockContext , "/test/workspace" ) !
233234
234- await manager . start ( )
235+ await manager . startIndexing ( )
235236
236237 // First branch change
237238 mockVectorStore . getCurrentBranch . mockReturnValue ( "feature-1" )
@@ -261,9 +262,9 @@ describe("CodeIndexManager + GitBranchWatcher Integration", () => {
261262 } )
262263
263264 it ( "should handle rapid branch changes with debouncing" , async ( ) => {
264- manager = new CodeIndexManager ( mockContext , "/test/workspace" )
265+ manager = CodeIndexManager . getInstance ( mockContext , "/test/workspace" ) !
265266
266- await manager . start ( )
267+ await manager . startIndexing ( )
267268
268269 // Simulate rapid branch changes (watcher handles debouncing)
269270 // The callback should only be called once per actual change
@@ -280,9 +281,9 @@ describe("CodeIndexManager + GitBranchWatcher Integration", () => {
280281
281282 describe ( "error recovery" , ( ) => {
282283 it ( "should recover from vector store initialization failure" , async ( ) => {
283- manager = new CodeIndexManager ( mockContext , "/test/workspace" )
284+ manager = CodeIndexManager . getInstance ( mockContext , "/test/workspace" ) !
284285
285- await manager . start ( )
286+ await manager . startIndexing ( )
286287
287288 // First branch change fails
288289 mockVectorStore . initialize . mockRejectedValueOnce ( new Error ( "Init failed" ) )
0 commit comments