Skip to content

Commit bd2938b

Browse files
authored
Merge pull request #168 from ryanfowler/output-tests
Add tests for using the output flag
2 parents 3b44d62 + d6422c8 commit bd2938b

1 file changed

Lines changed: 35 additions & 0 deletions

File tree

integration/integration_test.go

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)