|
|
@@ -39,6 +39,12 @@ func TestDashboardApiEndpoint(t *testing.T) {
|
|
|
fakeDash.FolderId = 1
|
|
|
fakeDash.HasAcl = false
|
|
|
|
|
|
+ bus.AddHandler("test", func(query *m.GetDashboardsBySlugQuery) error {
|
|
|
+ dashboards := []*m.Dashboard{fakeDash}
|
|
|
+ query.Result = dashboards
|
|
|
+ return nil
|
|
|
+ })
|
|
|
+
|
|
|
var getDashboardQueries []*m.GetDashboardQuery
|
|
|
|
|
|
bus.AddHandler("test", func(query *m.GetDashboardQuery) error {
|
|
|
@@ -232,6 +238,12 @@ func TestDashboardApiEndpoint(t *testing.T) {
|
|
|
fakeDash.HasAcl = true
|
|
|
setting.ViewersCanEdit = false
|
|
|
|
|
|
+ bus.AddHandler("test", func(query *m.GetDashboardsBySlugQuery) error {
|
|
|
+ dashboards := []*m.Dashboard{fakeDash}
|
|
|
+ query.Result = dashboards
|
|
|
+ return nil
|
|
|
+ })
|
|
|
+
|
|
|
aclMockResp := []*m.DashboardAclInfoDTO{
|
|
|
{
|
|
|
DashboardId: 1,
|
|
|
@@ -671,6 +683,37 @@ func TestDashboardApiEndpoint(t *testing.T) {
|
|
|
})
|
|
|
})
|
|
|
})
|
|
|
+
|
|
|
+ Convey("Given two dashboards with the same title in different folders", t, func() {
|
|
|
+ dashOne := m.NewDashboard("dash")
|
|
|
+ dashOne.Id = 2
|
|
|
+ dashOne.FolderId = 1
|
|
|
+ dashOne.HasAcl = false
|
|
|
+
|
|
|
+ dashTwo := m.NewDashboard("dash")
|
|
|
+ dashTwo.Id = 4
|
|
|
+ dashTwo.FolderId = 3
|
|
|
+ dashTwo.HasAcl = false
|
|
|
+
|
|
|
+ bus.AddHandler("test", func(query *m.GetDashboardsBySlugQuery) error {
|
|
|
+ dashboards := []*m.Dashboard{dashOne, dashTwo}
|
|
|
+ query.Result = dashboards
|
|
|
+ return nil
|
|
|
+ })
|
|
|
+
|
|
|
+ role := m.ROLE_EDITOR
|
|
|
+
|
|
|
+ loggedInUserScenarioWithRole("When calling DELETE on", "DELETE", "/api/dashboards/db/dash", "/api/dashboards/db/:slug", role, func(sc *scenarioContext) {
|
|
|
+ CallDeleteDashboard(sc)
|
|
|
+
|
|
|
+ Convey("Should result in 412 Precondition failed", func() {
|
|
|
+ So(sc.resp.Code, ShouldEqual, 412)
|
|
|
+ result := sc.ToJson()
|
|
|
+ So(result.Get("status").MustString(), ShouldEqual, "multiple-slugs-exists")
|
|
|
+ So(result.Get("message").MustString(), ShouldEqual, m.ErrDashboardsWithSameSlugExists.Error())
|
|
|
+ })
|
|
|
+ })
|
|
|
+ })
|
|
|
}
|
|
|
|
|
|
func GetDashboardShouldReturn200(sc *scenarioContext) dtos.DashboardFullWithMeta {
|