From 5a24cbffeb096168e73e3531c5458ae61ec769ef Mon Sep 17 00:00:00 2001 From: Mark Rushakoff Date: Tue, 3 Jan 2017 15:21:25 -0800 Subject: [PATCH] Require database name on monitor config --- monitor/config.go | 3 +++ monitor/config_test.go | 22 ++++++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/monitor/config.go b/monitor/config.go index cbd298fee0..e48ab8c78a 100644 --- a/monitor/config.go +++ b/monitor/config.go @@ -40,5 +40,8 @@ func (c Config) Validate() error { if c.StoreInterval <= 0 { return errors.New("monitor store interval must be positive") } + if c.StoreDatabase == "" { + return errors.New("monitor store database name must not be empty") + } return nil } diff --git a/monitor/config_test.go b/monitor/config_test.go index e0b55988da..e07e80f2f9 100644 --- a/monitor/config_test.go +++ b/monitor/config_test.go @@ -28,3 +28,25 @@ store-interval="10m" t.Fatalf("unexpected store-interval: %s", c.StoreInterval) } } + +func TestConfig_Validate(t *testing.T) { + // NewConfig must validate correctly. + c := monitor.NewConfig() + if err := c.Validate(); err != nil { + t.Fatalf("unexpected validation error: %s", err) + } + + // Non-positive duration is invalid. + c = monitor.NewConfig() + c.StoreInterval *= 0 + if err := c.Validate(); err == nil { + t.Fatalf("unexpected successful validation for %#v", c) + } + + // Empty database is invalid. + c = monitor.NewConfig() + c.StoreDatabase = "" + if err := c.Validate(); err == nil { + t.Fatalf("unexpected successful validation for %#v", c) + } +}