github.com/mongodb/grip@v0.0.0-20240213223901-f906268d82b9/message/fields_test.go (about)

     1  package message
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/mongodb/grip/level"
     7  	"github.com/stretchr/testify/assert"
     8  	"github.com/stretchr/testify/require"
     9  )
    10  
    11  func TestFieldsLevelMutability(t *testing.T) {
    12  	assert := assert.New(t) // nolint
    13  
    14  	m := Fields{"message": "hello world"}
    15  	c := ConvertToComposer(level.Error, m)
    16  
    17  	r := c.Raw().(Fields)
    18  	assert.Equal(level.Error, c.Priority())
    19  	assert.Equal(level.Error, r["metadata"].(*Base).Level)
    20  
    21  	c = ConvertToComposer(level.Info, m)
    22  	r = c.Raw().(Fields)
    23  	assert.Equal(level.Info, c.Priority())
    24  	assert.Equal(level.Info, r["metadata"].(*Base).Level)
    25  }
    26  
    27  func TestFields(t *testing.T) {
    28  	t.Run("NewFieldsMessageCollectsBasicMetadata", func(t *testing.T) {
    29  		m := Fields{"message": "hello world"}
    30  		c := NewFields(level.Error, m)
    31  		r, ok := c.Raw().(Fields)
    32  		require.True(t, ok)
    33  		assert.Equal(t, level.Error, c.Priority())
    34  		base, ok := r["metadata"].(*Base)
    35  		require.True(t, ok)
    36  		assert.Equal(t, level.Error, base.Level)
    37  		assert.Zero(t, base.Context)
    38  		assert.Zero(t, base.Hostname)
    39  		assert.Zero(t, base.Pid)
    40  		assert.Zero(t, base.Process)
    41  		assert.NotZero(t, base.Time)
    42  	})
    43  	t.Run("NewExtendedFieldsCollectsExtendedMetadata", func(t *testing.T) {
    44  		m := Fields{"message": "hello world"}
    45  		c := NewExtendedFields(level.Error, m)
    46  		r, ok := c.Raw().(Fields)
    47  		require.True(t, ok)
    48  		assert.Equal(t, level.Error, c.Priority())
    49  		base, ok := r["metadata"].(*Base)
    50  		require.True(t, ok)
    51  		assert.Equal(t, level.Error, base.Level)
    52  		assert.Zero(t, base.Context)
    53  		assert.NotZero(t, base.Hostname)
    54  		assert.NotZero(t, base.Pid)
    55  		assert.NotZero(t, base.Process)
    56  		assert.NotZero(t, base.Time)
    57  	})
    58  	t.Run("NewSimpleFieldsHasNoMetadata", func(t *testing.T) {
    59  		m := Fields{"message": "hello world"}
    60  		c := NewSimpleFields(level.Error, m)
    61  		r, ok := c.Raw().(Fields)
    62  		require.True(t, ok)
    63  		assert.Equal(t, level.Error, c.Priority())
    64  		assert.Zero(t, r["metadata"])
    65  	})
    66  }