diff --git a/pkg/api/dashboard_snapshot.go b/pkg/api/dashboard_snapshot.go index 331609141c5..a16a3f8aa5f 100644 --- a/pkg/api/dashboard_snapshot.go +++ b/pkg/api/dashboard_snapshot.go @@ -185,9 +185,12 @@ func deleteExternalDashboardSnapshot(externalUrl string) error { if err != nil { return err } - if err := response.Body.Close(); err != nil { - plog.Warn("Failed closing response body", "err", err) - } + + defer func() { + if err := response.Body.Close(); err != nil { + plog.Warn("Failed to close response body", "err", err) + } + }() if response.StatusCode == 200 { return nil diff --git a/pkg/api/dashboard_snapshot_test.go b/pkg/api/dashboard_snapshot_test.go index 6dbc39332a4..4f99fbf4599 100644 --- a/pkg/api/dashboard_snapshot_test.go +++ b/pkg/api/dashboard_snapshot_test.go @@ -171,16 +171,16 @@ func TestDashboardSnapshotAPIEndpoint_singleSnapshot(t *testing.T) { t.Run("When deleting an external snapshot", func(t *testing.T) { aclMockResp = []*models.DashboardAclInfoDTO{} - var writeErr error loggedInUserScenarioWithRole(t, "Should gracefully delete local snapshot when remote snapshot has already been removed when calling DELETE on", "DELETE", "/api/snapshots/12345", "/api/snapshots/:key", models.ROLE_EDITOR, func(sc *scenarioContext) { mockSnapshotResult := setUpSnapshotTest(t) mockSnapshotResult.UserId = testUserID + var writeErr error ts := setupRemoteServer(func(rw http.ResponseWriter, req *http.Request) { - _, writeErr = rw.Write([]byte(`{"message":"Failed to get dashboard snapshot"}`)) rw.WriteHeader(500) + _, writeErr = rw.Write([]byte(`{"message":"Failed to get dashboard snapshot"}`)) }) mockSnapshotResult.ExternalDeleteUrl = ts.URL