Plugins: Refactor plugin dashboards (#44315)
Moves/refactor Grafana specific functionality related to plugin dashboards out to specific services for importing dashboards and keep app plugin dashboards up-to-date. Fixes #44257
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
package webtest
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"testing"
|
||||
|
||||
"github.com/grafana/grafana/pkg/api/response"
|
||||
"github.com/grafana/grafana/pkg/api/routing"
|
||||
"github.com/grafana/grafana/pkg/models"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestServerClient(t *testing.T) {
|
||||
routeRegister := routing.NewRouteRegister()
|
||||
routeRegister.Get("/test", routing.Wrap(func(c *models.ReqContext) response.Response {
|
||||
return response.JSON(http.StatusOK, c.SignedInUser)
|
||||
}))
|
||||
|
||||
s := NewServer(t, routeRegister)
|
||||
|
||||
t.Run("Making a request with user 1 should return user 1 as signed in user", func(t *testing.T) {
|
||||
req := s.NewRequest(http.MethodGet, "/test", nil)
|
||||
req = RequestWithWebContext(req, &models.ReqContext{
|
||||
SignedInUser: &models.SignedInUser{
|
||||
UserId: 1,
|
||||
},
|
||||
})
|
||||
resp, err := s.Send(req)
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, resp)
|
||||
require.Equal(t, http.StatusOK, resp.StatusCode)
|
||||
bytes, err := ioutil.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
require.NoError(t, resp.Body.Close())
|
||||
|
||||
var user *models.SignedInUser
|
||||
err = json.Unmarshal(bytes, &user)
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, user)
|
||||
require.Equal(t, int64(1), user.UserId)
|
||||
})
|
||||
|
||||
t.Run("Making a request with user 2 should return user 2 as signed in user", func(t *testing.T) {
|
||||
req := s.NewRequest(http.MethodGet, "/test", nil)
|
||||
req = RequestWithWebContext(req, &models.ReqContext{
|
||||
SignedInUser: &models.SignedInUser{
|
||||
UserId: 2,
|
||||
},
|
||||
})
|
||||
resp, err := s.Send(req)
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, resp)
|
||||
require.Equal(t, http.StatusOK, resp.StatusCode)
|
||||
bytes, err := ioutil.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
require.NoError(t, resp.Body.Close())
|
||||
|
||||
var user *models.SignedInUser
|
||||
err = json.Unmarshal(bytes, &user)
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, user)
|
||||
require.Equal(t, int64(2), user.UserId)
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user