|
|
@@ -9,48 +9,33 @@ import (
|
|
|
|
|
|
var (
|
|
|
simpleDashboardConfig string = "./test-configs/dashboards-from-disk"
|
|
|
+ oldVersion string = "./test-configs/version-0"
|
|
|
brokenConfigs string = "./test-configs/broken-configs"
|
|
|
)
|
|
|
|
|
|
func TestDashboardsAsConfig(t *testing.T) {
|
|
|
Convey("Dashboards as configuration", t, func() {
|
|
|
+ logger := log.New("test-logger")
|
|
|
|
|
|
- Convey("Can read config file", func() {
|
|
|
-
|
|
|
- cfgProvider := configReader{path: simpleDashboardConfig, log: log.New("test-logger")}
|
|
|
+ Convey("Can read config file version 1 format", func() {
|
|
|
+ cfgProvider := configReader{path: simpleDashboardConfig, log: logger}
|
|
|
cfg, err := cfgProvider.readConfig()
|
|
|
- if err != nil {
|
|
|
- t.Fatalf("readConfig return an error %v", err)
|
|
|
- }
|
|
|
-
|
|
|
- So(len(cfg), ShouldEqual, 2)
|
|
|
-
|
|
|
- ds := cfg[0]
|
|
|
+ So(err, ShouldBeNil)
|
|
|
|
|
|
- So(ds.Name, ShouldEqual, "general dashboards")
|
|
|
- So(ds.Type, ShouldEqual, "file")
|
|
|
- So(ds.OrgId, ShouldEqual, 2)
|
|
|
- So(ds.Folder, ShouldEqual, "developers")
|
|
|
- So(ds.Editable, ShouldBeTrue)
|
|
|
-
|
|
|
- So(len(ds.Options), ShouldEqual, 1)
|
|
|
- So(ds.Options["path"], ShouldEqual, "/var/lib/grafana/dashboards")
|
|
|
-
|
|
|
- ds2 := cfg[1]
|
|
|
+ validateDashboardAsConfig(cfg)
|
|
|
+ })
|
|
|
|
|
|
- So(ds2.Name, ShouldEqual, "default")
|
|
|
- So(ds2.Type, ShouldEqual, "file")
|
|
|
- So(ds2.OrgId, ShouldEqual, 1)
|
|
|
- So(ds2.Folder, ShouldEqual, "")
|
|
|
- So(ds2.Editable, ShouldBeFalse)
|
|
|
+ Convey("Can read config file in version 0 format", func() {
|
|
|
+ cfgProvider := configReader{path: oldVersion, log: logger}
|
|
|
+ cfg, err := cfgProvider.readConfig()
|
|
|
+ So(err, ShouldBeNil)
|
|
|
|
|
|
- So(len(ds2.Options), ShouldEqual, 1)
|
|
|
- So(ds2.Options["path"], ShouldEqual, "/var/lib/grafana/dashboards")
|
|
|
+ validateDashboardAsConfig(cfg)
|
|
|
})
|
|
|
|
|
|
Convey("Should skip invalid path", func() {
|
|
|
|
|
|
- cfgProvider := configReader{path: "/invalid-directory", log: log.New("test-logger")}
|
|
|
+ cfgProvider := configReader{path: "/invalid-directory", log: logger}
|
|
|
cfg, err := cfgProvider.readConfig()
|
|
|
if err != nil {
|
|
|
t.Fatalf("readConfig return an error %v", err)
|
|
|
@@ -61,7 +46,7 @@ func TestDashboardsAsConfig(t *testing.T) {
|
|
|
|
|
|
Convey("Should skip broken config files", func() {
|
|
|
|
|
|
- cfgProvider := configReader{path: brokenConfigs, log: log.New("test-logger")}
|
|
|
+ cfgProvider := configReader{path: brokenConfigs, log: logger}
|
|
|
cfg, err := cfgProvider.readConfig()
|
|
|
if err != nil {
|
|
|
t.Fatalf("readConfig return an error %v", err)
|
|
|
@@ -71,3 +56,23 @@ func TestDashboardsAsConfig(t *testing.T) {
|
|
|
})
|
|
|
})
|
|
|
}
|
|
|
+func validateDashboardAsConfig(cfg []*DashboardsAsConfig) {
|
|
|
+ So(len(cfg), ShouldEqual, 2)
|
|
|
+
|
|
|
+ ds := cfg[0]
|
|
|
+ So(ds.Name, ShouldEqual, "general dashboards")
|
|
|
+ So(ds.Type, ShouldEqual, "file")
|
|
|
+ So(ds.OrgId, ShouldEqual, 2)
|
|
|
+ So(ds.Folder, ShouldEqual, "developers")
|
|
|
+ So(ds.Editable, ShouldBeTrue)
|
|
|
+ So(len(ds.Options), ShouldEqual, 1)
|
|
|
+ So(ds.Options["path"], ShouldEqual, "/var/lib/grafana/dashboards")
|
|
|
+ ds2 := cfg[1]
|
|
|
+ So(ds2.Name, ShouldEqual, "default")
|
|
|
+ So(ds2.Type, ShouldEqual, "file")
|
|
|
+ So(ds2.OrgId, ShouldEqual, 1)
|
|
|
+ So(ds2.Folder, ShouldEqual, "")
|
|
|
+ So(ds2.Editable, ShouldBeFalse)
|
|
|
+ So(len(ds2.Options), ShouldEqual, 1)
|
|
|
+ So(ds2.Options["path"], ShouldEqual, "/var/lib/grafana/dashboards")
|
|
|
+}
|