- package http
-
- 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) {
- 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, err := New(chainID, rpcAddr)
- require.Nil(t, err)
- require.NotNil(t, p)
-
- // let it produce some blocks
- err = rpcclient.WaitForHeight(p.(*http).client, 6, nil)
- require.Nil(t, err)
-
- // let's get the highest block
- sh, err := p.SignedHeader(0)
-
- require.Nil(t, err, "%+v", err)
- assert.True(t, sh.Height < 5000)
-
- // let's check this is valid somehow
- assert.Nil(t, sh.ValidateBasic(chainID))
-
- // historical queries now work :)
- lower := sh.Height - 5
- sh, err = p.SignedHeader(lower)
- assert.Nil(t, err, "%+v", err)
- assert.Equal(t, lower, sh.Height)
- }
|