github.com/aakash4dev/cometbft@v0.38.2/scripts/metricsgen/metricsdiff/metricsdiff_test.go (about) 1 package main_test 2 3 import ( 4 "bytes" 5 "io" 6 "testing" 7 8 "github.com/stretchr/testify/require" 9 10 metricsdiff "github.com/aakash4dev/cometbft/scripts/metricsgen/metricsdiff" 11 ) 12 13 func TestDiff(t *testing.T) { 14 for _, tc := range []struct { 15 name string 16 aContents string 17 bContents string 18 19 want string 20 }{ 21 { 22 name: "labels", 23 aContents: ` 24 metric_one{label_one="content", label_two="content"} 0 25 `, 26 bContents: ` 27 metric_one{label_three="content", label_four="content"} 0 28 `, 29 want: `Label changes: 30 Metric: metric_one 31 +++ label_three 32 +++ label_four 33 --- label_one 34 --- label_two 35 `, 36 }, 37 { 38 name: "metrics", 39 aContents: ` 40 metric_one{label_one="content"} 0 41 `, 42 bContents: ` 43 metric_two{label_two="content"} 0 44 `, 45 want: `Metric changes: 46 +++ metric_two 47 --- metric_one 48 `, 49 }, 50 } { 51 t.Run(tc.name, func(t *testing.T) { 52 bufA := bytes.NewBuffer([]byte{}) 53 bufB := bytes.NewBuffer([]byte{}) 54 _, err := io.WriteString(bufA, tc.aContents) 55 require.NoError(t, err) 56 _, err = io.WriteString(bufB, tc.bContents) 57 require.NoError(t, err) 58 md, err := metricsdiff.DiffFromReaders(bufA, bufB) 59 require.NoError(t, err) 60 require.Equal(t, tc.want, md.String()) 61 }) 62 } 63 }