config_reader_test.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. package dashboards
  2. import (
  3. "testing"
  4. . "github.com/smartystreets/goconvey/convey"
  5. )
  6. var (
  7. simpleDashboardConfig string = "./test-configs/dashboards-from-disk"
  8. brokenConfigs string = "./test-configs/broken-configs"
  9. )
  10. func TestDashboardsAsConfig(t *testing.T) {
  11. Convey("Dashboards as configuration", t, func() {
  12. Convey("Can read config file", func() {
  13. cfgProvifer := configReader{path: simpleDashboardConfig}
  14. cfg, err := cfgProvifer.readConfig()
  15. if err != nil {
  16. t.Fatalf("readConfig return an error %v", err)
  17. }
  18. So(len(cfg), ShouldEqual, 2)
  19. ds := cfg[0]
  20. So(ds.Name, ShouldEqual, "general dashboards")
  21. So(ds.Type, ShouldEqual, "file")
  22. So(ds.OrgId, ShouldEqual, 2)
  23. So(ds.Folder, ShouldEqual, "developers")
  24. So(ds.Editable, ShouldBeTrue)
  25. So(len(ds.Options), ShouldEqual, 1)
  26. So(ds.Options["folder"], ShouldEqual, "/var/lib/grafana/dashboards")
  27. ds2 := cfg[1]
  28. So(ds2.Name, ShouldEqual, "default")
  29. So(ds2.Type, ShouldEqual, "file")
  30. So(ds2.OrgId, ShouldEqual, 1)
  31. So(ds2.Folder, ShouldEqual, "")
  32. So(ds2.Editable, ShouldBeFalse)
  33. So(len(ds2.Options), ShouldEqual, 1)
  34. So(ds2.Options["folder"], ShouldEqual, "/var/lib/grafana/dashboards")
  35. })
  36. Convey("Should skip broken config files", func() {
  37. cfgProvifer := configReader{path: brokenConfigs}
  38. cfg, err := cfgProvifer.readConfig()
  39. if err != nil {
  40. t.Fatalf("readConfig return an error %v", err)
  41. }
  42. So(len(cfg), ShouldEqual, 0)
  43. })
  44. })
  45. }