github.com/ari-anchor/sei-tendermint@v0.0.0-20230519144642-dc826b7b56bb/scripts/metricsgen/metricsdiff/metricsdiff_test.go (about)

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