@@ -70,6 +70,13 @@ jest.mock(
7070 { virtual : true } ,
7171)
7272
73+ // Mock DiffStrategy
74+ jest . mock ( "../../diff/DiffStrategy" , ( ) => ( {
75+ getDiffStrategy : jest . fn ( ) . mockImplementation ( ( ) => ( {
76+ getToolDescription : jest . fn ( ) . mockReturnValue ( "apply_diff tool description" ) ,
77+ } ) ) ,
78+ } ) )
79+
7380// Mock dependencies
7481jest . mock ( "vscode" , ( ) => ( {
7582 ExtensionContext : jest . fn ( ) ,
@@ -963,6 +970,52 @@ describe("ClineProvider", () => {
963970 )
964971 } )
965972
973+ test ( "passes diffStrategy to SYSTEM_PROMPT when previewing" , async ( ) => {
974+ // Mock getState to return experimentalDiffStrategy and fuzzyMatchThreshold
975+ jest . spyOn ( provider , "getState" ) . mockResolvedValue ( {
976+ apiConfiguration : {
977+ apiProvider : "openrouter" ,
978+ apiModelId : "test-model" ,
979+ openRouterModelInfo : { supportsComputerUse : true } ,
980+ } ,
981+ customPrompts : { } ,
982+ mode : "code" ,
983+ mcpEnabled : false ,
984+ browserViewportSize : "900x600" ,
985+ experimentalDiffStrategy : true ,
986+ fuzzyMatchThreshold : 0.8 ,
987+ } as any )
988+
989+ // Mock SYSTEM_PROMPT to verify diffStrategy is passed
990+ const systemPromptModule = require ( "../../prompts/system" )
991+ const systemPromptSpy = jest . spyOn ( systemPromptModule , "SYSTEM_PROMPT" )
992+
993+ // Trigger getSystemPrompt
994+ const handler = getMessageHandler ( )
995+ await handler ( { type : "getSystemPrompt" , mode : "code" } )
996+
997+ // Verify SYSTEM_PROMPT was called with correct arguments
998+ expect ( systemPromptSpy ) . toHaveBeenCalledWith (
999+ expect . anything ( ) , // context
1000+ expect . any ( String ) , // cwd
1001+ true , // supportsComputerUse
1002+ undefined , // mcpHub (disabled)
1003+ expect . objectContaining ( {
1004+ // diffStrategy
1005+ getToolDescription : expect . any ( Function ) ,
1006+ } ) ,
1007+ "900x600" , // browserViewportSize
1008+ "code" , // mode
1009+ expect . any ( Object ) , // customPrompts
1010+ expect . any ( Object ) , // customModes
1011+ undefined , // effectiveInstructions
1012+ )
1013+
1014+ // Run the test again to verify it's consistent
1015+ await handler ( { type : "getSystemPrompt" , mode : "code" } )
1016+ expect ( systemPromptSpy ) . toHaveBeenCalledTimes ( 2 )
1017+ } )
1018+
9661019 test ( "uses correct mode-specific instructions when mode is specified" , async ( ) => {
9671020 // Mock getState to return architect mode instructions
9681021 jest . spyOn ( provider , "getState" ) . mockResolvedValue ( {
0 commit comments