Some checks are pending
Docs Deploy / build_and_deploy (push) Waiting to run
Generate Docs / cli (push) Waiting to run
Generate Config Doc / cli (push) Waiting to run
Go formatting / go-formatting (push) Waiting to run
Check links / markdown-link-check (push) Waiting to run
Integration / pre-test (push) Waiting to run
Integration / test on (push) Blocked by required conditions
Integration / status (push) Blocked by required conditions
Lint / Lint Go code (push) Waiting to run
Test / test (ubuntu-latest) (push) Waiting to run
72 lines
1.9 KiB
Go
72 lines
1.9 KiB
Go
package chaincmdrunner
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestNewKV(t *testing.T) {
|
|
kv := NewKV("k", "v")
|
|
require.Equal(t, "k", kv.key)
|
|
require.Equal(t, "v", kv.value)
|
|
}
|
|
|
|
func TestFindMatchingCloseBracket(t *testing.T) {
|
|
data := []byte(`{"a":{"b":1}} trailing`)
|
|
idx := findMatchingCloseBracket(data, '{', '}')
|
|
require.Equal(t, 12, idx)
|
|
|
|
require.Equal(t, -1, findMatchingCloseBracket([]byte(`{"a":1`), '{', '}'))
|
|
}
|
|
|
|
func TestCleanAndValidateJSON(t *testing.T) {
|
|
raw := []byte("logs...\n{\"code\":0,\"raw_log\":\"ok\",\"txhash\":\"ABC\"}\nmore")
|
|
got, err := cleanAndValidateJSON(raw)
|
|
require.NoError(t, err)
|
|
require.Equal(t, `{"code":0,"raw_log":"ok","txhash":"ABC"}`, string(got))
|
|
}
|
|
|
|
func TestFallbackFormatDetectionConvertsYAML(t *testing.T) {
|
|
raw := []byte("code: 0\nraw_log: ok\ntxhash: ABC\n")
|
|
got, err := fallbackFormatDetection(raw)
|
|
require.NoError(t, err)
|
|
require.JSONEq(t, `{"code":0,"raw_log":"ok","txhash":"ABC"}`, string(got))
|
|
}
|
|
|
|
func TestJSONEnsuredBytes(t *testing.T) {
|
|
b := newBuffer()
|
|
_, err := b.WriteString("noise\n{\"k\":\"v\"}\n")
|
|
require.NoError(t, err)
|
|
|
|
got, err := b.JSONEnsuredBytes()
|
|
require.NoError(t, err)
|
|
require.JSONEq(t, `{"k":"v"}`, string(got))
|
|
}
|
|
|
|
func TestDecodeTxResult(t *testing.T) {
|
|
b := newBuffer()
|
|
_, err := b.WriteString("code: 0\nraw_log: ok\ntxhash: HASH\n")
|
|
require.NoError(t, err)
|
|
|
|
got, err := decodeTxResult(b)
|
|
require.NoError(t, err)
|
|
require.Equal(t, 0, got.Code)
|
|
require.Equal(t, "ok", got.RawLog)
|
|
require.Equal(t, "HASH", got.TxHash)
|
|
}
|
|
|
|
func TestQueryTxByEventsRequiresSelectors(t *testing.T) {
|
|
r := Runner{}
|
|
events, err := r.QueryTxByEvents(context.Background())
|
|
require.Error(t, err)
|
|
require.Nil(t, events)
|
|
}
|
|
|
|
func TestQueryTxByQueryRequiresSelectors(t *testing.T) {
|
|
r := Runner{}
|
|
events, err := r.QueryTxByQuery(context.Background())
|
|
require.Error(t, err)
|
|
require.Nil(t, events)
|
|
}
|