github.com/observiq/carbon@v0.9.11-0.20200820160507-1b872e368a5e/operator/helper/labeler_test.go (about) 1 package helper 2 3 import ( 4 "os" 5 "testing" 6 7 "github.com/observiq/carbon/entry" 8 "github.com/stretchr/testify/require" 9 ) 10 11 func TestLabeler(t *testing.T) { 12 os.Setenv("TEST_METADATA_PLUGIN_ENV", "foo") 13 defer os.Unsetenv("TEST_METADATA_PLUGIN_ENV") 14 15 cases := []struct { 16 name string 17 config LabelerConfig 18 input *entry.Entry 19 expected *entry.Entry 20 }{ 21 { 22 "AddLabelLiteral", 23 func() LabelerConfig { 24 cfg := NewLabelerConfig() 25 cfg.Labels = map[string]ExprStringConfig{ 26 "label1": "value1", 27 } 28 return cfg 29 }(), 30 entry.New(), 31 func() *entry.Entry { 32 e := entry.New() 33 e.Labels = map[string]string{ 34 "label1": "value1", 35 } 36 return e 37 }(), 38 }, 39 { 40 "AddLabelExpr", 41 func() LabelerConfig { 42 cfg := NewLabelerConfig() 43 cfg.Labels = map[string]ExprStringConfig{ 44 "label1": `EXPR("start" + "end")`, 45 } 46 return cfg 47 }(), 48 entry.New(), 49 func() *entry.Entry { 50 e := entry.New() 51 e.Labels = map[string]string{ 52 "label1": "startend", 53 } 54 return e 55 }(), 56 }, 57 { 58 "AddLabelEnv", 59 func() LabelerConfig { 60 cfg := NewLabelerConfig() 61 cfg.Labels = map[string]ExprStringConfig{ 62 "label1": `EXPR(env("TEST_METADATA_PLUGIN_ENV"))`, 63 } 64 return cfg 65 }(), 66 entry.New(), 67 func() *entry.Entry { 68 e := entry.New() 69 e.Labels = map[string]string{ 70 "label1": "foo", 71 } 72 return e 73 }(), 74 }, 75 } 76 77 for _, tc := range cases { 78 t.Run(tc.name, func(t *testing.T) { 79 labeler, err := tc.config.Build() 80 require.NoError(t, err) 81 82 err = labeler.Label(tc.input) 83 require.NoError(t, err) 84 require.Equal(t, tc.expected.Labels, tc.input.Labels) 85 }) 86 } 87 }