Prechádzať zdrojové kódy

Return a 404 when deleting a datasource through the API if it doesn't exist and add a test for it to confirm #12313

Austin Winstanley 7 rokov pred
rodič
commit
defb0396b7
2 zmenil súbory, kde vykonal 11 pridanie a 0 odobranie
  1. 3 0
      pkg/api/datasources.go
  2. 8 0
      pkg/api/datasources_test.go

+ 3 - 0
pkg/api/datasources.go

@@ -103,6 +103,9 @@ func DeleteDataSourceByName(c *m.ReqContext) Response {
 
 	getCmd := &m.GetDataSourceByNameQuery{Name: name, OrgId: c.OrgId}
 	if err := bus.Dispatch(getCmd); err != nil {
+		if err == m.ErrDataSourceNotFound {
+			return Error(404, "Data source not found", nil)
+		}
 		return Error(500, "Failed to delete datasource", err)
 	}
 

+ 8 - 0
pkg/api/datasources_test.go

@@ -46,5 +46,13 @@ func TestDataSourcesProxy(t *testing.T) {
 				So(respJSON[3]["name"], ShouldEqual, "ZZZ")
 			})
 		})
+
+		Convey("Should be able to save a data source", func() {
+			loggedInUserScenario("When calling DELETE on non-existing", "/api/datasources/name/12345", func(sc *scenarioContext) {
+				sc.handlerFunc = DeleteDataSourceByName
+				sc.fakeReqWithParams("DELETE", sc.url, map[string]string{}).exec()
+				So(sc.resp.Code, ShouldEqual, 404)
+			})
+		})
 	})
 }