cosmos-sdk/tx/textual/valuerenderer/encode_test.go
Jim Larson 4fe7403f83
feat: deterministic CBOR encoding of textual rendering (#13697)
* feat: deterministic CBOR encoding of textual rendering

* refactor: cbor package to internal, test cases as json

* chore: silence spurious gosec warnings

* docs: review feedback
2022-11-28 17:34:46 +00:00

38 lines
726 B
Go

package valuerenderer
import (
"bytes"
"encoding/hex"
"encoding/json"
"fmt"
"os"
"testing"
"github.com/stretchr/testify/require"
)
type encodingJsonTest struct {
Screens []Screen
Encoding string
}
func TestEncodingJson(t *testing.T) {
raw, err := os.ReadFile("../internal/testdata/encode.json")
require.NoError(t, err)
var testcases []encodingJsonTest
err = json.Unmarshal(raw, &testcases)
require.NoError(t, err)
for i, tc := range testcases {
t.Run(fmt.Sprintf("%d", i), func(t *testing.T) {
var buf bytes.Buffer
err := encode(tc.Screens, &buf)
require.NoError(t, err)
want, err := hex.DecodeString(tc.Encoding)
require.NoError(t, err)
require.Equal(t, want, buf.Bytes())
})
}
}