graphql-engine/cli/commands/init_test.go

60 lines
1.2 KiB
Go
Raw Normal View History

2018-06-27 15:04:09 +03:00
package commands
import (
"math/rand"
"os"
"path/filepath"
"strconv"
"testing"
"time"
"github.com/hasura/graphql-engine/cli"
"github.com/sirupsen/logrus/hooks/test"
2018-06-27 15:04:09 +03:00
)
func init() {
rand.Seed(time.Now().UTC().UnixNano())
}
func TestInitCmd(t *testing.T) {
logger, _ := test.NewNullLogger()
2018-06-27 15:04:09 +03:00
tt := []struct {
name string
opts *initOptions
err error
}{
{"only-init-dir", &initOptions{
EC: &cli.ExecutionContext{
Logger: logger,
},
2018-06-27 15:04:09 +03:00
Endpoint: "",
AccessKey: "",
InitDir: filepath.Join(os.TempDir(), "hasura-cli-test-"+strconv.Itoa(rand.Intn(1000))),
}, nil},
{"with-endpoint-flag", &initOptions{
EC: &cli.ExecutionContext{
Logger: logger,
},
2018-06-27 15:04:09 +03:00
Endpoint: "https://localhost:8080",
AccessKey: "",
InitDir: filepath.Join(os.TempDir(), "hasura-cli-test-"+strconv.Itoa(rand.Intn(1000))),
}, nil},
}
for _, tc := range tt {
t.Run(tc.name, func(t *testing.T) {
err := tc.opts.EC.Prepare()
if err != nil {
t.Fatalf("%s: prep failed: %v", tc.name, err)
}
2018-06-28 11:44:01 +03:00
err = tc.opts.run()
2018-06-27 15:04:09 +03:00
if err != tc.err {
t.Fatalf("%s: expected %v, got %v", tc.name, tc.err, err)
} else {
// TODO: (shahidhk) need to verify the contents of the spec generated
os.RemoveAll(tc.opts.InitDir)
}
})
}
}