From d694dbe7c18a449aa38c757e60eb0899b3536fb1 Mon Sep 17 00:00:00 2001 From: Ethan Frey Date: Wed, 21 Feb 2018 16:41:56 +0100 Subject: [PATCH] Add first server command tests --- server/init.go | 4 ++-- server/init_test.go | 31 ++++++++++++++++++++++++++++++- server/start_test.go | 31 ++++++++++++++++++++++++++----- 3 files changed, 58 insertions(+), 8 deletions(-) diff --git a/server/init.go b/server/init.go index b8071b0e5..a56ad5c37 100644 --- a/server/init.go +++ b/server/init.go @@ -111,7 +111,7 @@ func (c initCmd) initTendermintFiles(config *cfg.Config) error { } else { privValidator = tmtypes.GenPrivValidatorFS(privValFile) privValidator.Save() - c.logger.Info("Genetated private validator", "path", privValFile) + c.logger.Info("Generated private validator", "path", privValFile) } // genesis file @@ -130,7 +130,7 @@ func (c initCmd) initTendermintFiles(config *cfg.Config) error { if err := genDoc.SaveAs(genFile); err != nil { return err } - c.logger.Info("Genetated genesis file", "path", genFile) + c.logger.Info("Generated genesis file", "path", genFile) } return nil } diff --git a/server/init_test.go b/server/init_test.go index 3d7e5671d..0af1ecc11 100644 --- a/server/init_test.go +++ b/server/init_test.go @@ -1,7 +1,36 @@ package server -import "testing" +import ( + "io/ioutil" + "os" + "testing" + + "github.com/spf13/viper" + "github.com/stretchr/testify/require" + + "github.com/tendermint/tmlibs/log" + + "github.com/cosmos/cosmos-sdk/mock" +) + +// setupViper creates a homedir to run inside, +// and returns a cleanup function to defer +func setupViper() func() { + rootDir, err := ioutil.TempDir("", "mock-sdk-cmd") + if err != nil { + panic(err) // fuck it! + } + viper.Set("home", rootDir) + return func() { + os.RemoveAll(rootDir) + } +} func TestInit(t *testing.T) { + defer setupViper()() + logger := log.NewNopLogger() + cmd := InitCmd(mock.GenInitOptions, logger) + err := cmd.RunE(nil, nil) + require.NoError(t, err) } diff --git a/server/start_test.go b/server/start_test.go index 10c012ecf..9756e5932 100644 --- a/server/start_test.go +++ b/server/start_test.go @@ -1,15 +1,36 @@ package server import ( + "os" "testing" + + "github.com/spf13/viper" + "github.com/stretchr/testify/require" + + "github.com/cosmos/cosmos-sdk/mock" + "github.com/tendermint/tmlibs/log" ) func TestStart(t *testing.T) { - // app, cleanup, err := mock.SetupApp() - // if cleanup != nil { - // defer cleanup() - // } + defer setupViper()() + logger := log.NewTMLogger(log.NewSyncWriter(os.Stdout)). + With("module", "mock-cmd") + // logger := log.NewNopLogger() + initCmd := InitCmd(mock.GenInitOptions, logger) + err := initCmd.RunE(nil, nil) + require.NoError(t, err) + + // try to start up + // this should hang forever on success.... how to close??? + + rootDir := viper.GetString("home") + app, err := mock.NewApp(logger, rootDir) + require.NoError(t, err) + _ = StartCmd(app, logger) + // startCmd := StartCmd(app, logger) + + // // TODO: test with tendermint + // err = startCmd.RunE(nil, nil) // require.NoError(t, err) - // // TODO: init and start }