MCPcopy
hub / github.com/gofiber/fiber / Test_Ctx_SaveFile

Function Test_Ctx_SaveFile

ctx_test.go:5468–5512  ·  view source on GitHub ↗

go test -run Test_Ctx_SaveFile

(t *testing.T)

Source from the content-addressed store, hash-verified

5466
5467// go test -run Test_Ctx_SaveFile
5468func Test_Ctx_SaveFile(t *testing.T) {
5469 // TODO We should clean this up
5470 t.Parallel()
5471 app := New()
5472
5473 app.Post("/test", func(c Ctx) error {
5474 fh, err := c.Req().FormFile("file")
5475 require.NoError(t, err)
5476
5477 tempFile, err := os.CreateTemp(os.TempDir(), "test-")
5478 require.NoError(t, err)
5479
5480 defer func(file *os.File) {
5481 closeErr := file.Close()
5482 require.NoError(t, closeErr)
5483 closeErr = os.Remove(file.Name())
5484 require.NoError(t, closeErr)
5485 }(tempFile)
5486 err = c.SaveFile(fh, tempFile.Name())
5487 require.NoError(t, err)
5488
5489 bs, err := os.ReadFile(tempFile.Name())
5490 require.NoError(t, err)
5491 require.Equal(t, "hello world", string(bs))
5492 return nil
5493 })
5494
5495 body := &bytes.Buffer{}
5496 writer := multipart.NewWriter(body)
5497
5498 ioWriter, err := writer.CreateFormFile("file", "test")
5499 require.NoError(t, err)
5500
5501 _, err = ioWriter.Write([]byte("hello world"))
5502 require.NoError(t, err)
5503 require.NoError(t, writer.Close())
5504
5505 req := httptest.NewRequest(MethodPost, "/test", body)
5506 req.Header.Set("Content-Type", writer.FormDataContentType())
5507 req.Header.Set("Content-Length", strconv.Itoa(len(body.Bytes())))
5508
5509 resp, err := app.Test(req)
5510 require.NoError(t, err, "app.Test(req)")
5511 require.Equal(t, StatusOK, resp.StatusCode, "Status code")
5512}
5513
5514func createMultipartFileHeader(t *testing.T, filename string, data []byte) *multipart.FileHeader {
5515 t.Helper()

Callers

nothing calls this directly

Calls 11

BytesMethod · 0.95
TestMethod · 0.80
NewFunction · 0.70
PostMethod · 0.65
FormFileMethod · 0.65
ReqMethod · 0.65
CloseMethod · 0.65
NameMethod · 0.65
SaveFileMethod · 0.65
WriteMethod · 0.65
SetMethod · 0.65

Tested by

no test coverage detected