(t *testing.T)
| 16 | ) |
| 17 | |
| 18 | func 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 | }) |
nothing calls this directly
no test coverage detected
searching dependent graphs…