Correlations: Add DeleteCorrelation HTTP API (#51801)
* Correlations: add DeleteCorrelation HTTP API * fix error message copy * add readonly check * add source_uid in delete condition * make path singular * Revert "make path singular" This reverts commit d15be89578e202e5cb64a3e964ee09521b72d87c. * add tests * fix lint errors * fix lint errors * change casing * update spec * Remove transaction * change casing in param name in docs
This commit is contained in:
@@ -8,12 +8,18 @@ import (
|
||||
"testing"
|
||||
|
||||
"github.com/grafana/grafana/pkg/server"
|
||||
"github.com/grafana/grafana/pkg/services/correlations"
|
||||
"github.com/grafana/grafana/pkg/services/datasources"
|
||||
"github.com/grafana/grafana/pkg/services/user"
|
||||
"github.com/grafana/grafana/pkg/tests/testinfra"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
type errorResponseBody struct {
|
||||
Message string `json:"message"`
|
||||
Error string `json:"error"`
|
||||
}
|
||||
|
||||
type TestContext struct {
|
||||
env server.TestEnv
|
||||
t *testing.T
|
||||
@@ -46,18 +52,10 @@ type PostParams struct {
|
||||
func (c TestContext) Post(params PostParams) *http.Response {
|
||||
c.t.Helper()
|
||||
buf := bytes.NewReader([]byte(params.body))
|
||||
baseUrl := fmt.Sprintf("http://%s", c.env.Server.HTTPServer.Listener.Addr())
|
||||
if params.user.username != "" && params.user.password != "" {
|
||||
baseUrl = fmt.Sprintf("http://%s:%s@%s", params.user.username, params.user.password, c.env.Server.HTTPServer.Listener.Addr())
|
||||
}
|
||||
|
||||
// nolint:gosec
|
||||
resp, err := http.Post(
|
||||
fmt.Sprintf(
|
||||
"%s%s",
|
||||
baseUrl,
|
||||
params.url,
|
||||
),
|
||||
c.getURL(params.url, params.user),
|
||||
"application/json",
|
||||
buf,
|
||||
)
|
||||
@@ -66,6 +64,37 @@ func (c TestContext) Post(params PostParams) *http.Response {
|
||||
return resp
|
||||
}
|
||||
|
||||
type DeleteParams struct {
|
||||
url string
|
||||
user User
|
||||
}
|
||||
|
||||
func (c TestContext) Delete(params DeleteParams) *http.Response {
|
||||
c.t.Helper()
|
||||
|
||||
req, err := http.NewRequest("DELETE", c.getURL(params.url, params.user), nil)
|
||||
require.NoError(c.t, err)
|
||||
resp, err := http.DefaultClient.Do(req)
|
||||
require.NoError(c.t, err)
|
||||
|
||||
return resp
|
||||
}
|
||||
|
||||
func (c TestContext) getURL(url string, user User) string {
|
||||
c.t.Helper()
|
||||
|
||||
baseUrl := fmt.Sprintf("http://%s", c.env.Server.HTTPServer.Listener.Addr())
|
||||
if user.username != "" && user.password != "" {
|
||||
baseUrl = fmt.Sprintf("http://%s:%s@%s", user.username, user.password, c.env.Server.HTTPServer.Listener.Addr())
|
||||
}
|
||||
|
||||
return fmt.Sprintf(
|
||||
"%s%s",
|
||||
baseUrl,
|
||||
url,
|
||||
)
|
||||
}
|
||||
|
||||
func (c TestContext) createUser(cmd user.CreateUserCommand) {
|
||||
c.t.Helper()
|
||||
|
||||
@@ -82,3 +111,11 @@ func (c TestContext) createDs(cmd *datasources.AddDataSourceCommand) {
|
||||
err := c.env.SQLStore.AddDataSource(context.Background(), cmd)
|
||||
require.NoError(c.t, err)
|
||||
}
|
||||
|
||||
func (c TestContext) createCorrelation(cmd correlations.CreateCorrelationCommand) correlations.Correlation {
|
||||
c.t.Helper()
|
||||
correlation, err := c.env.Server.HTTPServer.CorrelationsService.CreateCorrelation(context.Background(), cmd)
|
||||
|
||||
require.NoError(c.t, err)
|
||||
return correlation
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user