github.com/yankunsam/loki/v2@v2.6.3-0.20220817130409-389df5235c27/pkg/util/string_test.go (about) 1 package util 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 ) 8 9 func TestStringsContain(t *testing.T) { 10 t.Parallel() 11 12 tests := map[string]struct { 13 inputSlice []string 14 inputValue string 15 expected bool 16 }{ 17 "should return false on missing value in the slice": { 18 inputSlice: []string{"one", "two"}, 19 inputValue: "three", 20 expected: false, 21 }, 22 "should return true on existing value in the slice": { 23 inputSlice: []string{"one", "two"}, 24 inputValue: "two", 25 expected: true, 26 }, 27 } 28 29 for testName, testData := range tests { 30 testData := testData 31 32 t.Run(testName, func(t *testing.T) { 33 t.Parallel() 34 35 actual := StringsContain(testData.inputSlice, testData.inputValue) 36 assert.Equal(t, testData.expected, actual) 37 }) 38 } 39 } 40 41 func TestStringSnakeCase(t *testing.T) { 42 t.Parallel() 43 44 cases := []struct { 45 name string 46 input, expected string 47 }{ 48 { 49 name: "simple", 50 input: "snakeCase", 51 expected: "snake_case", 52 }, 53 { 54 name: "mix", 55 input: "Snake_Case", 56 expected: "snake_case", // should be snake__case?? 57 }, 58 { 59 name: "begin-with-underscore", 60 input: "_Snake_Case", 61 expected: "_snake_case", 62 }, 63 { 64 name: "end-with-underscore", 65 input: "Snake_Case_", 66 expected: "snake_case_", 67 }, 68 } 69 70 for _, c := range cases { 71 t.Run(c.name, func(t *testing.T) { 72 got := SnakeCase(c.input) 73 assert.Equal(t, c.expected, got) 74 }) 75 } 76 }