tendermint/lite/client/provider_test.go

62 lines
1.3 KiB
Go
Raw Normal View History

2017-11-11 16:43:16 -08:00
package client
2017-10-24 03:34:36 -07:00
import (
"os"
2017-10-24 03:34:36 -07:00
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/tendermint/tendermint/abci/example/kvstore"
2017-11-11 16:43:16 -08:00
rpcclient "github.com/tendermint/tendermint/rpc/client"
rpctest "github.com/tendermint/tendermint/rpc/test"
2017-12-10 17:43:58 -08:00
"github.com/tendermint/tendermint/types"
2017-10-24 03:34:36 -07:00
)
func TestMain(m *testing.M) {
app := kvstore.NewKVStoreApplication()
node := rpctest.StartTendermint(app)
code := m.Run()
node.Stop()
node.Wait()
os.Exit(code)
}
2017-10-24 03:34:36 -07:00
func TestProvider(t *testing.T) {
assert, require := assert.New(t), require.New(t)
cfg := rpctest.GetConfig()
rpcAddr := cfg.RPC.ListenAddress
genDoc, err := types.GenesisDocFromFile(cfg.GenesisFile())
if err != nil {
panic(err)
}
2017-12-10 17:43:58 -08:00
chainID := genDoc.ChainID
t.Log("chainID:", chainID)
p := NewHTTPProvider(chainID, rpcAddr)
2017-10-24 03:34:36 -07:00
require.NotNil(t, p)
// let it produce some blocks
err = rpcclient.WaitForHeight(p.(*provider).client, 6, nil)
2017-11-11 16:43:16 -08:00
require.Nil(err)
2017-10-24 03:34:36 -07:00
// let's get the highest block
fc, err := p.LatestFullCommit(chainID, 1, 1<<63-1)
2017-10-24 03:34:36 -07:00
require.Nil(err, "%+v", err)
sh := fc.Height()
2017-10-24 03:34:36 -07:00
assert.True(sh < 5000)
// let's check this is valid somehow
2018-06-25 16:31:59 -07:00
assert.Nil(fc.ValidateFull(chainID))
2017-10-24 03:34:36 -07:00
// historical queries now work :)
lower := sh - 5
fc, err = p.LatestFullCommit(chainID, lower, lower)
2017-10-24 03:34:36 -07:00
assert.Nil(err, "%+v", err)
assert.Equal(lower, fc.Height())
2017-10-24 03:34:36 -07:00
}