- package client
-
- import (
- "os"
- "testing"
-
- "github.com/stretchr/testify/assert"
- "github.com/stretchr/testify/require"
-
- "github.com/tendermint/tendermint/abci/example/kvstore"
- rpcclient "github.com/tendermint/tendermint/rpc/client"
- rpctest "github.com/tendermint/tendermint/rpc/test"
- "github.com/tendermint/tendermint/types"
- )
-
- func TestMain(m *testing.M) {
- app := kvstore.NewApplication()
- node := rpctest.StartTendermint(app)
-
- code := m.Run()
-
- rpctest.StopTendermint(node)
- os.Exit(code)
- }
-
- func TestProvider(t *testing.T) {
- assert, require := assert.New(t), require.New(t)
-
- cfg := rpctest.GetConfig()
- defer os.RemoveAll(cfg.RootDir)
- rpcAddr := cfg.RPC.ListenAddress
- genDoc, err := types.GenesisDocFromFile(cfg.GenesisFile())
- if err != nil {
- panic(err)
- }
- chainID := genDoc.ChainID
- t.Log("chainID:", chainID)
- p := NewHTTPProvider(chainID, rpcAddr)
- require.NotNil(t, p)
-
- // let it produce some blocks
- err = rpcclient.WaitForHeight(p.(*provider).client, 6, nil)
- require.Nil(err)
-
- // let's get the highest block
- fc, err := p.LatestFullCommit(chainID, 1, 1<<63-1)
-
- require.Nil(err, "%+v", err)
- sh := fc.Height()
- assert.True(sh < 5000)
-
- // let's check this is valid somehow
- assert.Nil(fc.ValidateFull(chainID))
-
- // historical queries now work :)
- lower := sh - 5
- fc, err = p.LatestFullCommit(chainID, lower, lower)
- assert.Nil(err, "%+v", err)
- assert.Equal(lower, fc.Height())
-
- }
|