Skip to content

Commit 0833a1d

Browse files
committed
Refactor test
Work with slices.IndexFunc and sort HeadersArray before comparing the response and expected.
1 parent 221c700 commit 0833a1d

File tree

1 file changed

+9
-38
lines changed

1 file changed

+9
-38
lines changed

internal/js/modules/k6/browser/tests/page_test.go

+9-38
Original file line numberDiff line numberDiff line change
@@ -2718,45 +2718,16 @@ func TestPageOnResponse(t *testing.T) {
27182718
},
27192719
}
27202720

2721-
// Compare each request one by one for better test failure visibility
2721+
// Compare each response one by one for better test failure visibility
27222722
for _, resp := range responses {
2723-
i := -1
2724-
for j, e := range expected {
2725-
if resp.RequestURL == e.RequestURL {
2726-
i = j
2727-
break
2728-
}
2729-
}
2730-
assert.NotEqual(t, -1, i, "failed to find expected response with request URL %s", resp.RequestURL)
2731-
2732-
assert.Equal(t, expected[i].AllHeaders, resp.AllHeaders, "AllHeaders mismatch")
2733-
assert.Equal(t, expected[i].Body, resp.Body, "Body mismatch")
2734-
assert.Equal(t, expected[i].FrameURL, resp.FrameURL, "FrameUrl mismatch")
2735-
assert.Equal(t, expected[i].AcceptLanguageHeader, resp.AcceptLanguageHeader, "AcceptLanguageHeader mismatch")
2736-
assert.Equal(t, expected[i].AcceptLanguageHeaders, resp.AcceptLanguageHeaders, "AcceptLanguageHeaders mismatch")
2737-
assert.Equal(t, expected[i].Headers, resp.Headers, "Headers mismatch")
2738-
assert.Equal(t, expected[i].JSON, resp.JSON, "JSON mismatch")
2739-
assert.Equal(t, expected[i].OK, resp.OK, "OK mismatch")
2740-
assert.Equal(t, expected[i].RequestURL, resp.RequestURL, "RequestURL mismatch")
2741-
assert.Equal(t, expected[i].SecurityDetails, resp.SecurityDetails, "SecurityDetails mismatch")
2742-
assert.Equal(t, expected[i].ServerAddr, resp.ServerAddr, "ServerAddr mismatch")
2743-
assert.Equal(t, expected[i].Size, resp.Size, "Size mismatch")
2744-
assert.Equal(t, expected[i].Status, resp.Status, "Status mismatch")
2745-
assert.Equal(t, expected[i].StatusText, resp.StatusText, "StatusText mismatch")
2746-
assert.Equal(t, expected[i].URL, resp.URL, "URL mismatch")
2747-
assert.Equal(t, expected[i].Text, resp.Text, "Text mismatch")
2748-
2749-
// Compare HeadersArray elements one by one
2750-
assert.Equal(t, len(expected[i].HeadersArray), len(resp.HeadersArray), "HeadersArray length mismatch")
2751-
for _, expectedHeader := range expected[i].HeadersArray {
2752-
found := false
2753-
for _, actualHeader := range resp.HeadersArray {
2754-
if expectedHeader["name"] == actualHeader["name"] && expectedHeader["value"] == actualHeader["value"] {
2755-
found = true
2756-
break
2757-
}
2758-
}
2759-
assert.True(t, found, fmt.Sprintf("Expected header {name: %s, value: %s} not found in actual headers", expectedHeader["name"], expectedHeader["value"]))
2723+
i := slices.IndexFunc(expected, func(r response) bool { return resp.URL == r.URL })
2724+
assert.NotEqual(t, -1, i, "failed to find expected request with URL %s", resp.URL)
2725+
2726+
sortByName := func(m1, m2 map[string]string) int {
2727+
return strings.Compare(m1["name"], m2["name"])
27602728
}
2729+
slices.SortFunc(resp.HeadersArray, sortByName)
2730+
slices.SortFunc(expected[i].HeadersArray, sortByName)
2731+
assert.Equal(t, expected[i], resp)
27612732
}
27622733
}

0 commit comments

Comments
 (0)