From 94db89fd279cfab43895d94a2513af1ad21f3361 Mon Sep 17 00:00:00 2001 From: Danny Date: Tue, 15 May 2018 11:24:50 +0200 Subject: [PATCH] add tests for parseConfig func --- cmd/fathom/config.go | 9 ++++++--- cmd/fathom/config_test.go | 21 +++++++++++++++++++++ cmd/fathom/register.go | 5 +++-- cmd/fathom/server.go | 2 +- 4 files changed, 31 insertions(+), 6 deletions(-) create mode 100644 cmd/fathom/config_test.go diff --git a/cmd/fathom/config.go b/cmd/fathom/config.go index 7ee21cd..25323f7 100644 --- a/cmd/fathom/config.go +++ b/cmd/fathom/config.go @@ -18,10 +18,13 @@ type Config struct { func parseConfig(file string) *Config { var cfg Config + var err error - err := godotenv.Load(file) - if err != nil && file != ".env" { - log.Fatalf("error parsing config file: %s", err) + if file != "" { + err = godotenv.Load(file) + if err != nil && file != ".env" { + log.Fatalf("error parsing config file: %s", err) + } } err = envconfig.Process("Fathom", &cfg) diff --git a/cmd/fathom/config_test.go b/cmd/fathom/config_test.go new file mode 100644 index 0000000..2224a68 --- /dev/null +++ b/cmd/fathom/config_test.go @@ -0,0 +1,21 @@ +package main + +import ( + "os" + "testing" +) + +func TestParseConfig(t *testing.T) { + // empty config, should not fatal + cfg := parseConfig("") + if cfg.Secret == "" { + t.Errorf("expected secret, got empty string") + } + + os.Setenv("FATHOM_DATABASE_DRIVER", "sqlite") + cfg = parseConfig("") + if cfg.Database.Driver != "sqlite3" { + t.Errorf("expected %#v, got %#v", "sqlite3", cfg.Database.Driver) + } + +} diff --git a/cmd/fathom/register.go b/cmd/fathom/register.go index c5c29af..ae19c60 100644 --- a/cmd/fathom/register.go +++ b/cmd/fathom/register.go @@ -23,8 +23,9 @@ func register(c *cli.Context) error { if err != nil { log.Errorf("error creating user: %s", err) - } else { - log.Infof("created user %s", user.Email) + return err } + + log.Infof("created user %s", user.Email) return nil } diff --git a/cmd/fathom/server.go b/cmd/fathom/server.go index 8d75e38..2a90f86 100644 --- a/cmd/fathom/server.go +++ b/cmd/fathom/server.go @@ -30,7 +30,7 @@ func server(c *cli.Context) error { } // start listening - log.Infof("Server listening on %s", addr) + log.Infof("server will now listening on %s", addr) err := http.ListenAndServe(addr, h) if err != nil { log.Errorln(err)