fields_test.go 928 B

1234567891011121314151617181920212223242526272829303132333435
  1. package logx
  2. import (
  3. "context"
  4. "testing"
  5. "github.com/stretchr/testify/assert"
  6. )
  7. func TestContextWithFields(t *testing.T) {
  8. ctx := ContextWithFields(context.Background(), Field("a", 1), Field("b", 2))
  9. vals := ctx.Value(fieldsContextKey)
  10. assert.NotNil(t, vals)
  11. fields, ok := vals.([]LogField)
  12. assert.True(t, ok)
  13. assert.EqualValues(t, []LogField{Field("a", 1), Field("b", 2)}, fields)
  14. }
  15. func TestWithFieldsAppend(t *testing.T) {
  16. var dummyKey struct{}
  17. ctx := context.WithValue(context.Background(), dummyKey, "dummy")
  18. ctx = ContextWithFields(ctx, Field("a", 1), Field("b", 2))
  19. ctx = ContextWithFields(ctx, Field("c", 3), Field("d", 4))
  20. vals := ctx.Value(fieldsContextKey)
  21. assert.NotNil(t, vals)
  22. fields, ok := vals.([]LogField)
  23. assert.True(t, ok)
  24. assert.Equal(t, "dummy", ctx.Value(dummyKey))
  25. assert.EqualValues(t, []LogField{
  26. Field("a", 1),
  27. Field("b", 2),
  28. Field("c", 3),
  29. Field("d", 4),
  30. }, fields)
  31. }