package client_test import ( "context" "fmt" "os" "testing" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "github.com/tendermint/tendermint/abci/example/kvstore" "github.com/tendermint/tendermint/config" "github.com/tendermint/tendermint/libs/log" "github.com/tendermint/tendermint/libs/service" rpctest "github.com/tendermint/tendermint/rpc/test" ) func NodeSuite(t *testing.T, logger log.Logger) (service.Service, *config.Config) { t.Helper() ctx, cancel := context.WithCancel(context.Background()) conf, err := rpctest.CreateConfig(t.Name()) require.NoError(t, err) // start a tendermint node in the background to test against dir, err := os.MkdirTemp("/tmp", fmt.Sprint("rpc-client-test-", t.Name())) require.NoError(t, err) app := kvstore.NewPersistentKVStoreApplication(logger, dir) node, closer, err := rpctest.StartTendermint(ctx, conf, app, rpctest.SuppressStdout) require.NoError(t, err) t.Cleanup(func() { cancel() assert.NoError(t, closer(ctx)) assert.NoError(t, app.Close()) node.Wait() _ = os.RemoveAll(dir) }) return node, conf }