@@ -15,6 +15,14 @@ vi.mock("fs/promises", () => ({
1515 readFile : vi . fn ( ) . mockResolvedValue ( "file content" ) ,
1616 writeFile : vi . fn ( ) . mockResolvedValue ( undefined ) ,
1717 access : vi . fn ( ) . mockResolvedValue ( undefined ) ,
18+ mkdir : vi . fn ( ) . mockResolvedValue ( undefined ) ,
19+ rename : vi . fn ( ) . mockResolvedValue ( undefined ) ,
20+ unlink : vi . fn ( ) . mockResolvedValue ( undefined ) ,
21+ } ) )
22+
23+ // Mock safeWriteText (used by saveDirectly)
24+ vi . mock ( "../../../services/file-safety/safeWriteText" , ( ) => ( {
25+ safeWriteText : vi . fn ( ) . mockResolvedValue ( undefined ) ,
1826} ) )
1927
2028// Mock utils
@@ -26,6 +34,8 @@ vi.mock("../../../utils/fs", () => ({
2634vi . mock ( "path" , ( ) => ( {
2735 resolve : vi . fn ( ( cwd , relPath ) => `${ cwd } /${ relPath } ` ) ,
2836 basename : vi . fn ( ( path ) => path . split ( "/" ) . pop ( ) ) ,
37+ dirname : vi . fn ( ( path ) => path . split ( "/" ) . slice ( 0 , - 1 ) . join ( "/" ) || "/" ) ,
38+ join : ( ...args : string [ ] ) => args . join ( "/" ) ,
2939} ) )
3040
3141// Mock vscode
@@ -121,6 +131,11 @@ vi.mock("vscode", () => ({
121131 } ,
122132} ) )
123133
134+ // Mock safeWriteText
135+ vi . mock ( "../../services/file-safety/safeWriteText" , ( ) => ( {
136+ safeWriteText : vi . fn ( ) . mockResolvedValue ( undefined ) ,
137+ } ) )
138+
124139// Mock DecorationController
125140vi . mock ( "../DecorationController" , ( ) => ( {
126141 DecorationController : vi . fn ( ) . mockImplementation ( function ( ) {
@@ -791,9 +806,9 @@ describe("DiffViewProvider", () => {
791806
792807 const result = await diffViewProvider . saveDirectly ( "test.ts" , "new content" , true , true , 2000 )
793808
794- // Verify file was written
795- const fs = await import ( "fs/promises " )
796- expect ( fs . writeFile ) . toHaveBeenCalledWith ( `${ mockCwd } /test.ts` , "new content" , "utf-8 ")
809+ // Verify file was written via safeWriteText
810+ const { safeWriteText } = await import ( "../../../services/file-safety/safeWriteText " )
811+ expect ( safeWriteText ) . toHaveBeenCalledWith ( `${ mockCwd } /test.ts` , "new content" )
797812
798813 // Verify file was opened without focus
799814 expect ( vscode . window . showTextDocument ) . toHaveBeenCalledWith (
@@ -814,9 +829,9 @@ describe("DiffViewProvider", () => {
814829 it ( "should not open file when openWithoutFocus is false" , async ( ) => {
815830 await diffViewProvider . saveDirectly ( "test.ts" , "new content" , false , true , 1000 )
816831
817- // Verify file was written
818- const fs = await import ( "fs/promises " )
819- expect ( fs . writeFile ) . toHaveBeenCalledWith ( `${ mockCwd } /test.ts` , "new content" , "utf-8 ")
832+ // Verify file was written via safeWriteText
833+ const { safeWriteText } = await import ( "../../../services/file-safety/safeWriteText " )
834+ expect ( safeWriteText ) . toHaveBeenCalledWith ( `${ mockCwd } /test.ts` , "new content" )
820835
821836 // Verify file was NOT opened
822837 expect ( vscode . window . showTextDocument ) . not . toHaveBeenCalled ( )
@@ -829,9 +844,9 @@ describe("DiffViewProvider", () => {
829844
830845 await diffViewProvider . saveDirectly ( "test.ts" , "new content" , true , false , 1000 )
831846
832- // Verify file was written
833- const fs = await import ( "fs/promises " )
834- expect ( fs . writeFile ) . toHaveBeenCalledWith ( `${ mockCwd } /test.ts` , "new content" , "utf-8 ")
847+ // Verify file was written via safeWriteText
848+ const { safeWriteText } = await import ( "../../../services/file-safety/safeWriteText " )
849+ expect ( safeWriteText ) . toHaveBeenCalledWith ( `${ mockCwd } /test.ts` , "new content" )
835850
836851 // Verify delay was NOT called
837852 expect ( mockDelay ) . not . toHaveBeenCalled ( )
0 commit comments