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  }