@@ -484,144 +484,3 @@ describe("webviewMessageHandler - deleteCustomMode", () => {
484484 expect ( mockClineProvider . postMessageToWebview ) . not . toHaveBeenCalled ( )
485485 } )
486486} )
487-
488- describe ( "webviewMessageHandler - updateCodebaseIndexConfig" , ( ) => {
489- beforeEach ( ( ) => {
490- vi . clearAllMocks ( )
491- // Reset getValue mock
492- vi . mocked ( mockClineProvider . contextProxy . getValue ) . mockReset ( )
493- // Add codeIndexManager mock
494- ; ( mockClineProvider as any ) . codeIndexManager = {
495- handleSettingsChange : vi . fn ( ) . mockResolvedValue ( undefined ) ,
496- }
497- } )
498-
499- it ( "should update codebaseIndexConfig with all fields including codebaseIndexSearchMaxResults" , async ( ) => {
500- // Arrange
501- const existingConfig = {
502- codebaseIndexEnabled : true ,
503- codebaseIndexQdrantUrl : "http://old-url.com" ,
504- codebaseIndexSearchMaxResults : 50 ,
505- }
506- vi . mocked ( mockClineProvider . contextProxy . getValue ) . mockReturnValue ( existingConfig )
507-
508- const message : any = {
509- type : "updateCodebaseIndexConfig" ,
510- codebaseIndexConfig : {
511- codebaseIndexEnabled : true ,
512- codebaseIndexQdrantUrl : "http://new-url.com" ,
513- codebaseIndexSearchMaxResults : 100 , // This should be saved
514- codebaseIndexEmbedderProvider : "openai" ,
515- codebaseIndexEmbedderModelId : "text-embedding-ada-002" ,
516- } ,
517- }
518-
519- // Act
520- await webviewMessageHandler ( mockClineProvider , message )
521-
522- // Assert
523- expect ( mockClineProvider . contextProxy . setValue ) . toHaveBeenCalledWith ( "codebaseIndexConfig" , {
524- codebaseIndexEnabled : true ,
525- codebaseIndexQdrantUrl : "http://new-url.com" ,
526- codebaseIndexSearchMaxResults : 100 , // Should be preserved
527- codebaseIndexEmbedderProvider : "openai" ,
528- codebaseIndexEmbedderModelId : "text-embedding-ada-002" ,
529- } )
530- expect ( ( mockClineProvider as any ) . codeIndexManager . handleSettingsChange ) . toHaveBeenCalled ( )
531- expect ( mockClineProvider . postStateToWebview ) . toHaveBeenCalled ( )
532- } )
533-
534- it ( "should merge with existing config when updating" , async ( ) => {
535- // Arrange
536- const existingConfig = {
537- codebaseIndexEnabled : true ,
538- codebaseIndexQdrantUrl : "http://existing.com" ,
539- codebaseIndexSearchMaxResults : 75 ,
540- codebaseIndexEmbedderProvider : "ollama" ,
541- codebaseIndexEmbedderModelId : "existing-model" ,
542- }
543- vi . mocked ( mockClineProvider . contextProxy . getValue ) . mockReturnValue ( existingConfig )
544-
545- const message : any = {
546- type : "updateCodebaseIndexConfig" ,
547- codebaseIndexConfig : {
548- codebaseIndexSearchMaxResults : 150 , // Only updating this field
549- } ,
550- }
551-
552- // Act
553- await webviewMessageHandler ( mockClineProvider , message )
554-
555- // Assert
556- expect ( mockClineProvider . contextProxy . setValue ) . toHaveBeenCalledWith ( "codebaseIndexConfig" , {
557- codebaseIndexEnabled : true ,
558- codebaseIndexQdrantUrl : "http://existing.com" ,
559- codebaseIndexSearchMaxResults : 150 , // Updated
560- codebaseIndexEmbedderProvider : "ollama" ,
561- codebaseIndexEmbedderModelId : "existing-model" ,
562- } )
563- } )
564-
565- it ( "should handle when no existing config exists" , async ( ) => {
566- // Arrange
567- vi . mocked ( mockClineProvider . contextProxy . getValue ) . mockReturnValue ( null )
568-
569- const message : any = {
570- type : "updateCodebaseIndexConfig" ,
571- codebaseIndexConfig : {
572- codebaseIndexEnabled : false ,
573- codebaseIndexSearchMaxResults : 200 ,
574- } ,
575- }
576-
577- // Act
578- await webviewMessageHandler ( mockClineProvider , message )
579-
580- // Assert
581- expect ( mockClineProvider . contextProxy . setValue ) . toHaveBeenCalledWith ( "codebaseIndexConfig" , {
582- codebaseIndexEnabled : false ,
583- codebaseIndexSearchMaxResults : 200 ,
584- } )
585- } )
586-
587- it ( "should not update if codebaseIndexConfig is not provided" , async ( ) => {
588- // Arrange
589- const message : any = {
590- type : "updateCodebaseIndexConfig" ,
591- // No codebaseIndexConfig provided
592- }
593-
594- // Act
595- await webviewMessageHandler ( mockClineProvider , message )
596-
597- // Assert
598- expect ( mockClineProvider . contextProxy . setValue ) . not . toHaveBeenCalled ( )
599- expect ( ( mockClineProvider as any ) . codeIndexManager ?. handleSettingsChange ) . not . toHaveBeenCalled ( )
600- expect ( mockClineProvider . postStateToWebview ) . not . toHaveBeenCalled ( )
601- } )
602-
603- it ( "should handle when codeIndexManager is not available" , async ( ) => {
604- // Arrange
605- ; ( mockClineProvider as any ) . codeIndexManager = undefined
606- vi . mocked ( mockClineProvider . contextProxy . getValue ) . mockReturnValue ( { } )
607-
608- const message : any = {
609- type : "updateCodebaseIndexConfig" ,
610- codebaseIndexConfig : {
611- codebaseIndexEnabled : true ,
612- codebaseIndexSearchMaxResults : 100 ,
613- } ,
614- }
615-
616- // Act
617- await webviewMessageHandler ( mockClineProvider , message )
618-
619- // Assert
620- expect ( mockClineProvider . contextProxy . setValue ) . toHaveBeenCalledWith ( "codebaseIndexConfig" , {
621- codebaseIndexEnabled : true ,
622- codebaseIndexSearchMaxResults : 100 ,
623- } )
624- expect ( mockClineProvider . postStateToWebview ) . toHaveBeenCalled ( )
625- // Should not throw error when codeIndexManager is undefined
626- } )
627- } )
0 commit comments