mirror of
https://github.com/gotenberg/gotenberg.git
synced 2026-08-17 20:52:14 +01:00
handling case no file to convert
This commit is contained in:
@@ -19,6 +19,14 @@ type Converter struct {
|
|||||||
workingDir string
|
workingDir string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type noFileToConvertError struct{}
|
||||||
|
|
||||||
|
const noFileToConvertErrorMessage = "No file to convert"
|
||||||
|
|
||||||
|
func (e *noFileToConvertError) Error() string {
|
||||||
|
return noFileToConvertErrorMessage
|
||||||
|
}
|
||||||
|
|
||||||
// NewConverter instantiates a converter by parsing a request.
|
// NewConverter instantiates a converter by parsing a request.
|
||||||
func NewConverter(r *http.Request) (*Converter, error) {
|
func NewConverter(r *http.Request) (*Converter, error) {
|
||||||
c := &Converter{
|
c := &Converter{
|
||||||
@@ -53,6 +61,10 @@ func NewConverter(r *http.Request) (*Converter, error) {
|
|||||||
c.files = append(c.files, f)
|
c.files = append(c.files, f)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if len(c.files) == 0 {
|
||||||
|
return c, &noFileToConvertError{}
|
||||||
|
}
|
||||||
|
|
||||||
return c, nil
|
return c, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -21,13 +21,18 @@ func makeRequest(filesPaths ...string) *http.Request {
|
|||||||
var part io.Writer
|
var part io.Writer
|
||||||
defer w.Close()
|
defer w.Close()
|
||||||
|
|
||||||
for _, filePath := range filesPaths {
|
if len(filesPaths) == 0 {
|
||||||
file, _ := os.Open(filePath)
|
part, _ = mpw.CreateFormField("foo")
|
||||||
defer file.Close()
|
part.Write([]byte("bar"))
|
||||||
|
} else {
|
||||||
|
for _, filePath := range filesPaths {
|
||||||
|
file, _ := os.Open(filePath)
|
||||||
|
defer file.Close()
|
||||||
|
|
||||||
fileInfo, _ := file.Stat()
|
fileInfo, _ := file.Stat()
|
||||||
part, _ = mpw.CreateFormFile("files", fileInfo.Name())
|
part, _ = mpw.CreateFormFile("files", fileInfo.Name())
|
||||||
io.Copy(part, file)
|
io.Copy(part, file)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
mpw.Close()
|
mpw.Close()
|
||||||
@@ -64,6 +69,11 @@ func TestNewConverter(t *testing.T) {
|
|||||||
if _, err := NewConverter(makeRequest(oPath, path)); err == nil {
|
if _, err := NewConverter(makeRequest(oPath, path)); err == nil {
|
||||||
t.Error("Converter should not have been instantiated!")
|
t.Error("Converter should not have been instantiated!")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// case 5: uses a request with no file.
|
||||||
|
if _, err := NewConverter(makeRequest()); err == nil {
|
||||||
|
t.Error("Converter should not have been instantiated!")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestConvert(t *testing.T) {
|
func TestConvert(t *testing.T) {
|
||||||
@@ -115,3 +125,11 @@ func TestClear(t *testing.T) {
|
|||||||
t.Error("Converter should have been able to clear itself!")
|
t.Error("Converter should have been able to clear itself!")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestNoFileToConvertError(t *testing.T) {
|
||||||
|
err := &noFileToConvertError{}
|
||||||
|
|
||||||
|
if err.Error() != noFileToConvertErrorMessage {
|
||||||
|
t.Errorf("Error returned a wrong message: got %s want %s", err.Error(), noFileToConvertErrorMessage)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user