cosmos-sdk/core/genesis/source_test.go

45 lines
832 B
Go

package genesis
import (
"encoding/json"
"io"
"testing"
"github.com/stretchr/testify/require"
"cosmossdk.io/core/appmodule"
)
func TestSource(t *testing.T) {
source, err := SourceFromRawJSON(json.RawMessage(testJSON))
require.NoError(t, err)
expectJSON(t, source, "foo", fooContents)
expectJSON(t, source, "bar", barContents)
// missing fields just return nil, nil
r, err := source("baz")
require.NoError(t, err)
require.Nil(t, r)
}
func expectJSON(t *testing.T, source appmodule.GenesisSource, field, contents string) {
t.Helper()
r, err := source(field)
require.NoError(t, err)
bz, err := io.ReadAll(r)
require.NoError(t, err)
require.Equal(t, contents, string(bz))
}
const (
testJSON = `
{
"foo":{"x":1,"y":"abc"},
"bar":[1,2,3,4]
}
`
fooContents = `{"x":1,"y":"abc"}`
barContents = `[1,2,3,4]`
)