MCPcopy
hub / github.com/grafana/k6 / TestBuildCanonicalHeaders

Function TestBuildCanonicalHeaders

internal/output/prometheusrw/sigv4/sigv4_test.go:13–57  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

11)
12
13func TestBuildCanonicalHeaders(t *testing.T) {
14 t.Parallel()
15
16 serviceName := "mockAPI"
17 region := "mock-region"
18 endpoint := "https://" + serviceName + "." + region + ".example.com"
19
20 now := time.Now().UTC()
21 iSO8601Date := now.Format(timeFormat)
22
23 req, err := http.NewRequestWithContext(context.Background(), http.MethodPost, endpoint, nil)
24 if err != nil {
25 t.Fatalf("failed to create request, %v", err)
26 }
27
28 req.Header.Set("Host", req.Host)
29 req.Header.Set(amzDateKey, iSO8601Date)
30 req.Header.Set("InnerSpace", " inner space ")
31 req.Header.Set("LeadingSpace", " leading-space")
32 req.Header.Add("MultipleSpace", "no-space")
33 req.Header.Add("MultipleSpace", "\ttab-space")
34 req.Header.Add("MultipleSpace", "trailing-space ")
35 req.Header.Set("NoSpace", "no-space")
36 req.Header.Set("TabSpace", "\ttab-space\t")
37 req.Header.Set("TrailingSpace", "trailing-space ")
38 req.Header.Set("WrappedSpace", " wrapped-space ")
39
40 wantSignedHeader := "host;innerspace;leadingspace;multiplespace;nospace;tabspace;trailingspace;wrappedspace;x-amz-date"
41 wantCanonicalHeader := strings.Join([]string{
42 "host:mockAPI.mock-region.example.com",
43 "innerspace:inner space",
44 "leadingspace:leading-space",
45 "multiplespace:no-space,tab-space,trailing-space",
46 "nospace:no-space",
47 "tabspace:tab-space",
48 "trailingspace:trailing-space",
49 "wrappedspace:wrapped-space",
50 "x-amz-date:" + iSO8601Date,
51 "",
52 }, "\n")
53
54 gotSignedHeaders, gotCanonicalHeader := buildCanonicalHeaders(req, nil)
55 assert.Equal(t, wantSignedHeader, gotSignedHeaders)
56 assert.Equal(t, wantCanonicalHeader, gotCanonicalHeader)
57}

Callers

nothing calls this directly

Calls 6

buildCanonicalHeadersFunction · 0.85
FatalfMethod · 0.80
EqualMethod · 0.80
FormatMethod · 0.65
AddMethod · 0.65
SetMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…