mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
dashfolders: don't create app folder on dashboard import if already exists
This commit is contained in:
@@ -38,6 +38,10 @@ func TestDashboardImport(t *testing.T) {
|
||||
return nil
|
||||
})
|
||||
|
||||
bus.AddHandler("test", func(cmd *m.GetDashboardQuery) error {
|
||||
return nil
|
||||
})
|
||||
|
||||
cmd := ImportDashboardCommand{
|
||||
PluginId: "test-app",
|
||||
Path: "dashboards/connections.json",
|
||||
@@ -68,11 +72,76 @@ func TestDashboardImport(t *testing.T) {
|
||||
})
|
||||
|
||||
Convey("should create app folder", func() {
|
||||
So(createdFolder.Title, ShouldEqual, "Test App")
|
||||
So(createdFolder.Title, ShouldEqual, "App: Test App")
|
||||
So(createdFolder.Id, ShouldEqual, folderId)
|
||||
})
|
||||
})
|
||||
|
||||
Convey("When re-importing plugin dashboard", t, func() {
|
||||
setting.Cfg = ini.Empty()
|
||||
sec, _ := setting.Cfg.NewSection("plugin.test-app")
|
||||
sec.NewKey("path", "../../tests/test-app")
|
||||
err := Init()
|
||||
|
||||
So(err, ShouldBeNil)
|
||||
|
||||
folderId := int64(1000)
|
||||
var importedDash *m.Dashboard
|
||||
var createdFolder *m.Dashboard
|
||||
bus.AddHandler("test", func(cmd *m.SaveDashboardCommand) error {
|
||||
if cmd.IsFolder {
|
||||
cmd.Result = cmd.GetDashboardModel()
|
||||
} else {
|
||||
importedDash = cmd.GetDashboardModel()
|
||||
cmd.Result = importedDash
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
|
||||
bus.AddHandler("test", func(cmd *m.GetDashboardQuery) error {
|
||||
cmd.Result = &m.Dashboard{
|
||||
Id: 1000,
|
||||
Title: "Something",
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
|
||||
cmd := ImportDashboardCommand{
|
||||
PluginId: "test-app",
|
||||
Path: "dashboards/connections.json",
|
||||
OrgId: 1,
|
||||
UserId: 1,
|
||||
Inputs: []ImportDashboardInput{
|
||||
{Name: "*", Type: "datasource", Value: "graphite"},
|
||||
},
|
||||
}
|
||||
|
||||
err = ImportDashboard(&cmd)
|
||||
So(err, ShouldBeNil)
|
||||
|
||||
Convey("should install dashboard", func() {
|
||||
So(importedDash, ShouldNotBeNil)
|
||||
|
||||
resultStr, _ := importedDash.Data.EncodePretty()
|
||||
expectedBytes, _ := ioutil.ReadFile("../../tests/test-app/dashboards/connections_result.json")
|
||||
expectedJson, _ := simplejson.NewJson(expectedBytes)
|
||||
expectedStr, _ := expectedJson.EncodePretty()
|
||||
|
||||
So(string(resultStr), ShouldEqual, string(expectedStr))
|
||||
|
||||
panel := importedDash.Data.Get("rows").GetIndex(0).Get("panels").GetIndex(0)
|
||||
So(panel.Get("datasource").MustString(), ShouldEqual, "graphite")
|
||||
|
||||
So(importedDash.FolderId, ShouldEqual, folderId)
|
||||
})
|
||||
|
||||
Convey("should not create app folder", func() {
|
||||
So(createdFolder, ShouldBeNil)
|
||||
})
|
||||
})
|
||||
|
||||
Convey("When evaling dashboard template", t, func() {
|
||||
template, _ := simplejson.NewJson([]byte(`{
|
||||
"__inputs": [
|
||||
|
||||
Reference in New Issue
Block a user