@@ -206,7 +206,9 @@ it.effect("reveals a file in File Explorer through PowerShell on Windows", () =>
206206 const launcher = yield * ExternalLauncher . ExternalLauncher ;
207207 yield * launcher . launchEditor ( {
208208 editor : "file-manager" ,
209- cwd : "C:\\workspace with spaces\\media\\author's clip.mp4" ,
209+ // Web file links normalize separators even when the server runs on
210+ // Windows. Explorer's `/select` switch requires Windows separators.
211+ cwd : "C:/workspace with spaces/media/author's clip.mp4" ,
210212 reveal : true ,
211213 } ) ;
212214 return yield * launcher . resolveFileManagerRevealKind ( ) ;
@@ -261,8 +263,12 @@ it.skipIf(process.platform !== "win32")(
261263 const outputPath = NodePath . join ( tempDir , "argv.txt" ) ;
262264 NodeFS . writeFileSync ( recorderPath , `@echo off\r\n>"${ outputPath } " echo(%*\r\n` ) ;
263265
264- const target = "C:\\workspace with spaces\\media\\author's clip.mp4" ;
265- const source = ExternalLauncher . buildFileExplorerRevealPowerShellSource ( recorderPath , target ) ;
266+ const target = "C:/workspace with spaces/media/author's clip.mp4" ;
267+ const explorerTarget = target . replaceAll ( "/" , "\\" ) ;
268+ const source = ExternalLauncher . buildFileExplorerRevealPowerShellSource (
269+ recorderPath ,
270+ explorerTarget ,
271+ ) ;
266272 const powerShellPath = `${ process . env . SYSTEMROOT ?? "C:\\Windows" } \\System32\\WindowsPowerShell\\v1.0\\powershell.exe` ;
267273 NodeChildProcess . execFileSync (
268274 powerShellPath ,
@@ -290,7 +296,7 @@ it.skipIf(process.platform !== "win32")(
290296 }
291297 await sleep ( 200 ) ;
292298 const recorded = NodeFS . readFileSync ( outputPath , "utf8" ) . trim ( ) ;
293- assert . equal ( recorded , `/select,"${ target } "` ) ;
299+ assert . equal ( recorded , `/select,"${ explorerTarget } "` ) ;
294300 } finally {
295301 NodeFS . rmSync ( tempDir , { recursive : true , force : true } ) ;
296302 }
0 commit comments