mirror of
https://github.com/gotenberg/gotenberg.git
synced 2026-08-08 08:32:16 +01:00
handling case no file to convert
This commit is contained in:
@@ -19,6 +19,14 @@ type Converter struct {
|
||||
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.
|
||||
func NewConverter(r *http.Request) (*Converter, error) {
|
||||
c := &Converter{
|
||||
@@ -53,6 +61,10 @@ func NewConverter(r *http.Request) (*Converter, error) {
|
||||
c.files = append(c.files, f)
|
||||
}
|
||||
|
||||
if len(c.files) == 0 {
|
||||
return c, &noFileToConvertError{}
|
||||
}
|
||||
|
||||
return c, nil
|
||||
}
|
||||
|
||||
|
||||
@@ -21,13 +21,18 @@ func makeRequest(filesPaths ...string) *http.Request {
|
||||
var part io.Writer
|
||||
defer w.Close()
|
||||
|
||||
for _, filePath := range filesPaths {
|
||||
file, _ := os.Open(filePath)
|
||||
defer file.Close()
|
||||
if len(filesPaths) == 0 {
|
||||
part, _ = mpw.CreateFormField("foo")
|
||||
part.Write([]byte("bar"))
|
||||
} else {
|
||||
for _, filePath := range filesPaths {
|
||||
file, _ := os.Open(filePath)
|
||||
defer file.Close()
|
||||
|
||||
fileInfo, _ := file.Stat()
|
||||
part, _ = mpw.CreateFormFile("files", fileInfo.Name())
|
||||
io.Copy(part, file)
|
||||
fileInfo, _ := file.Stat()
|
||||
part, _ = mpw.CreateFormFile("files", fileInfo.Name())
|
||||
io.Copy(part, file)
|
||||
}
|
||||
}
|
||||
|
||||
mpw.Close()
|
||||
@@ -64,6 +69,11 @@ func TestNewConverter(t *testing.T) {
|
||||
if _, err := NewConverter(makeRequest(oPath, path)); err == nil {
|
||||
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) {
|
||||
@@ -115,3 +125,11 @@ func TestClear(t *testing.T) {
|
||||
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