@@ -223,6 +223,7 @@ func TestMain(t *testing.T) {
223223 }
224224
225225 tempFile := createTempFile (t , "temp file data" )
226+ defer os .Remove (tempFile )
226227 res = runFetch (t , fetchPath , server .URL , "--data" , "@" + tempFile )
227228 assertExitCode (t , 0 , res )
228229 req = <- chReq
@@ -304,10 +305,44 @@ func TestMain(t *testing.T) {
304305 defer server .Close ()
305306
306307 tempFile := createTempFile (t , "file content" )
308+ defer os .Remove (tempFile )
307309 res := runFetch (t , fetchPath , server .URL , "-F" , "key1=val1" , "-F" , "file1=@" + tempFile )
308310 assertExitCode (t , 0 , res )
309311 })
310312
313+ t .Run ("output" , func (t * testing.T ) {
314+ const data = "this is the data"
315+ server := startServer (func (w http.ResponseWriter , r * http.Request ) {
316+ w .WriteHeader (200 )
317+ io .WriteString (w , data )
318+ })
319+ defer server .Close ()
320+
321+ dir , err := os .MkdirTemp ("" , "" )
322+ if err != nil {
323+ t .Fatalf ("unable to create temp dir: %s" , err .Error ())
324+ }
325+ defer os .RemoveAll (dir )
326+
327+ // Test writing to an output file.
328+ path := filepath .Join (dir , "output" )
329+ res := runFetch (t , fetchPath , server .URL , "-o" , path )
330+ assertExitCode (t , 0 , res )
331+
332+ raw , err := os .ReadFile (path )
333+ if err != nil {
334+ t .Fatalf ("unable to read from output file: %s" , err .Error ())
335+ }
336+ if string (raw ) != data {
337+ t .Fatalf ("unexpected data in output file: %s" , raw )
338+ }
339+
340+ // Test writing to stdout.
341+ res = runFetch (t , fetchPath , server .URL , "-o" , "-" )
342+ assertExitCode (t , 0 , res )
343+ assertBufEquals (t , res .stdout , data )
344+ })
345+
311346 t .Run ("update" , func (t * testing.T ) {
312347 var empty string
313348 var urlStr atomic.Pointer [string ]
0 commit comments