diff --git a/test/integration/scenario/http.go b/test/integration/scenario/http.go index 6fd47b2b..f9257798 100644 --- a/test/integration/scenario/http.go +++ b/test/integration/scenario/http.go @@ -29,14 +29,16 @@ func doRequest(method, url string, headers map[string]string, body io.Reader) (* return resp, nil } -func doFormDataRequest(method, url string, fields map[string]string, files map[string][]string, headers map[string]string) (*http.Response, error) { +func doFormDataRequest(method, url string, fields map[string][]string, files map[string][]string, headers map[string]string) (*http.Response, error) { var b bytes.Buffer writer := multipart.NewWriter(&b) - for name, value := range fields { - err := writer.WriteField(name, value) - if err != nil { - return nil, fmt.Errorf("write field %q: %w", name, err) + for name, values := range fields { + for _, value := range values { + err := writer.WriteField(name, value) + if err != nil { + return nil, fmt.Errorf("write field %q: %w", name, err) + } } } diff --git a/test/integration/scenario/scenario.go b/test/integration/scenario/scenario.go index 69e667c1..9b8cd428 100644 --- a/test/integration/scenario/scenario.go +++ b/test/integration/scenario/scenario.go @@ -208,7 +208,7 @@ func (s *scenario) iMakeARequestToGotenbergWithTheFollowingFormDataAndHeaders(ct return errors.New("no Gotenberg container") } - fields := make(map[string]string) + fields := make(map[string][]string) files := make(map[string][]string) headers := make(map[string]string) @@ -220,10 +220,10 @@ func (s *scenario) iMakeARequestToGotenbergWithTheFollowingFormDataAndHeaders(ct switch kind { case "field": if name == "downloadFrom" || name == "url" || name == "cookies" { - fields[name] = strings.ReplaceAll(value, "%d", fmt.Sprintf("%d", s.hostPort)) + fields[name] = append(fields[name], strings.ReplaceAll(value, "%d", fmt.Sprintf("%d", s.hostPort))) continue } - fields[name] = value + fields[name] = append(fields[name], value) case "file": if strings.Contains(value, "teststore") { if s.teststoreDir == "" { @@ -363,7 +363,7 @@ func (s *scenario) iMakeConcurrentRequestsToGotenberg(ctx context.Context, count return errors.New("no Gotenberg container") } - fields := make(map[string]string) + fields := make(map[string][]string) files := make(map[string][]string) headers := make(map[string]string) @@ -374,7 +374,7 @@ func (s *scenario) iMakeConcurrentRequestsToGotenberg(ctx context.Context, count switch kind { case "field": - fields[name] = value + fields[name] = append(fields[name], value) case "file": wd, err := os.Getwd() if err != nil {