Skip to content

Commit

Permalink
Refactor test to reduce boilerplate code
Browse files Browse the repository at this point in the history
The issue was that HeadersArray was out of order. If they're put in
order then the comparison can be made.
  • Loading branch information
ankur22 committed Jan 31, 2025
1 parent 6acd032 commit 4248133
Showing 1 changed file with 7 additions and 23 deletions.
30 changes: 7 additions & 23 deletions internal/js/modules/k6/browser/tests/page_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,9 @@ import (
"io"
"net/http"
"runtime"
"slices"
"strconv"
"strings"
"sync/atomic"
"testing"
"time"
Expand Down Expand Up @@ -2411,30 +2413,12 @@ func TestPageOnRequest(t *testing.T) {
}
assert.NotEqual(t, -1, i, "failed to find expected request with URL %s", req.URL)

assert.Equal(t, expected[i].AllHeaders, req.AllHeaders, "AllHeaders mismatch")
assert.Equal(t, expected[i].FrameURL, req.FrameURL, "FrameUrl mismatch")
assert.Equal(t, expected[i].AcceptLanguageHeader, req.AcceptLanguageHeader, "AcceptLanguageHeader mismatch")
assert.Equal(t, expected[i].Headers, req.Headers, "Headers mismatch")
assert.Equal(t, expected[i].IsNavigationRequest, req.IsNavigationRequest, "IsNavigationRequest mismatch")
assert.Equal(t, expected[i].Method, req.Method, "Method mismatch")
assert.Equal(t, expected[i].PostData, req.PostData, "PostData mismatch")
assert.Equal(t, expected[i].PostDataBuffer, req.PostDataBuffer, "PostDataBuffer mismatch")
assert.Equal(t, expected[i].ResourceType, req.ResourceType, "ResourceType mismatch")
assert.Equal(t, expected[i].Size, req.Size, "Size mismatch")
assert.Equal(t, expected[i].URL, req.URL, "URL mismatch")

// Compare HeadersArray elements one by one
assert.Equal(t, len(expected[i].HeadersArray), len(req.HeadersArray), "HeadersArray length mismatch")
for _, expectedHeader := range expected[i].HeadersArray {
found := false
for _, actualHeader := range req.HeadersArray {
if expectedHeader["name"] == actualHeader["name"] && expectedHeader["value"] == actualHeader["value"] {
found = true
break
}
}
assert.True(t, found, fmt.Sprintf("Expected header {name: %s, value: %s} not found in actual headers", expectedHeader["name"], expectedHeader["value"]))
sortByName := func(m1, m2 map[string]string) int {
return strings.Compare(m1["name"], m2["name"])
}
slices.SortFunc(req.HeadersArray, sortByName)
slices.SortFunc(expected[i].HeadersArray, sortByName)
assert.Equal(t, expected[i], req)
}
}

Expand Down

0 comments on commit 4248133

Please sign in to comment.