MCPcopy Create free account
hub / github.com/pace/bricks / TestPrepareContext

Function TestPrepareContext

grpc/server_test.go:18–93  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

16)
17
18func TestPrepareContext(t *testing.T) {
19 ctx := context.Background()
20
21 // no data from the remote site
22 ctx0, _ := prepareContext(ctx)
23 assert.NotEmpty(t, log.RequestIDFromContext(ctx0))
24
25 var buf0 bytes.Buffer
26 l := log.Ctx(ctx0).Output(&buf0)
27 l.Debug().Msg("test")
28 assert.Contains(t, buf0.String(), "{\"level\":\"debug\",\"req_id\":\""+
29 log.RequestIDFromContext(ctx0)+"\",\"time\":")
30 assert.Contains(t, buf0.String(), ",\"message\":\"test\"}\n")
31
32 // remote site is providing data using a bearer token
33 ctx = metadata.NewIncomingContext(ctx, metadata.MD{
34 MetadataKeyRequestID: []string{"c690uu0ta2rv348epm8g"},
35 MetadataKeyLocale: []string{"fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5|Europe/Paris"},
36 MetadataKeyBearerToken: []string{"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"},
37 })
38
39 ctx1, md := prepareContext(ctx)
40 assert.Len(t, md.Get(MetadataKeyRequestID), 0)
41 assert.Len(t, md.Get(MetadataKeyBearerToken), 0)
42 assert.Equal(t, "c690uu0ta2rv348epm8g", log.RequestIDFromContext(ctx1))
43 loc, ok := locale.FromCtx(ctx1)
44 assert.True(t, ok)
45 assert.Equal(t, "fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5", loc.Language())
46 assert.Equal(t, "Europe/Paris", loc.Timezone())
47
48 var buf1 bytes.Buffer
49 l = log.Ctx(ctx1).Output(&buf1)
50 l.Debug().Msg("test")
51 assert.Contains(t, buf1.String(), "{\"level\":\"debug\",\"req_id\":\"c690uu0ta2rv348epm8g\",\"time\":\"")
52 assert.Contains(t, buf1.String(), ",\"message\":\"test\"}\n")
53
54 // remote site is providing data using a bearer token
55 ctx = metadata.NewIncomingContext(ctx, metadata.MD{
56 MetadataKeyRequestID: []string{"c690uu0ta2rv348epm8g"},
57 MetadataKeyBearerToken: []string{"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9"},
58 })
59
60 ctx2, md := prepareContext(ctx)
61 assert.Len(t, md.Get(MetadataKeyRequestID), 0)
62 assert.Len(t, md.Get(MetadataKeyBearerToken), 0)
63 assert.Equal(t, "c690uu0ta2rv348epm8g", log.RequestIDFromContext(ctx1))
64
65 var buf2 bytes.Buffer
66 l = log.Ctx(ctx2).Output(&buf2)
67 l.Debug().Msg("test")
68 assert.Contains(t, buf2.String(), "{\"level\":\"debug\",\"req_id\":\"c690uu0ta2rv348epm8g\",\"time\":\"")
69 assert.Contains(t, buf2.String(), ",\"message\":\"test\"}\n")
70 _, ok = locale.FromCtx(ctx2)
71 assert.False(t, ok)
72
73 ctx = metadata.NewIncomingContext(ctx, metadata.MD{
74 MetadataKeyExternalDependencies: []string{"foo:60000,bar:1000"},
75 })

Callers

nothing calls this directly

Calls 10

RequestIDFromContextFunction · 0.92
CtxFunction · 0.92
FromCtxFunction · 0.92
prepareContextFunction · 0.85
LenMethod · 0.80
LanguageMethod · 0.80
TimezoneMethod · 0.80
GetMethod · 0.65
StringMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…