mirror of
https://github.com/grafana/grafana.git
synced 2025-08-03 02:42:22 +08:00
Query history: Create API to add query to query history (#44479)
* Create config to enable/disable query history * Create add to query history functionality * Add documentation * Add test * Refactor * Add test * Fix built errors and linting errors * Refactor * Remove old tests * Refactor, adjust based on feedback, add new test * Update default value
This commit is contained in:
77
pkg/services/queryhistory/queryhistory_test.go
Normal file
77
pkg/services/queryhistory/queryhistory_test.go
Normal file
@ -0,0 +1,77 @@
|
||||
package queryhistory
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"encoding/json"
|
||||
"io"
|
||||
"net/http"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/grafana/grafana/pkg/models"
|
||||
"github.com/grafana/grafana/pkg/services/sqlstore"
|
||||
"github.com/grafana/grafana/pkg/setting"
|
||||
"github.com/grafana/grafana/pkg/web"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
var (
|
||||
testOrgID = int64(1)
|
||||
testUserID = int64(1)
|
||||
)
|
||||
|
||||
type scenarioContext struct {
|
||||
ctx *web.Context
|
||||
service *QueryHistoryService
|
||||
reqContext *models.ReqContext
|
||||
sqlStore *sqlstore.SQLStore
|
||||
}
|
||||
|
||||
func testScenario(t *testing.T, desc string, fn func(t *testing.T, sc scenarioContext)) {
|
||||
t.Helper()
|
||||
|
||||
t.Run(desc, func(t *testing.T) {
|
||||
ctx := web.Context{Req: &http.Request{}}
|
||||
sqlStore := sqlstore.InitTestDB(t)
|
||||
service := QueryHistoryService{
|
||||
Cfg: setting.NewCfg(),
|
||||
SQLStore: sqlStore,
|
||||
}
|
||||
|
||||
service.Cfg.QueryHistoryEnabled = true
|
||||
|
||||
user := models.SignedInUser{
|
||||
UserId: testUserID,
|
||||
Name: "Signed In User",
|
||||
Login: "signed_in_user",
|
||||
Email: "signed.in.user@test.com",
|
||||
OrgId: testOrgID,
|
||||
OrgRole: models.ROLE_VIEWER,
|
||||
LastSeenAt: time.Now(),
|
||||
}
|
||||
|
||||
_, err := sqlStore.CreateUser(context.Background(), models.CreateUserCommand{
|
||||
Email: "signed.in.user@test.com",
|
||||
Name: "Signed In User",
|
||||
Login: "signed_in_user",
|
||||
})
|
||||
require.NoError(t, err)
|
||||
|
||||
sc := scenarioContext{
|
||||
ctx: &ctx,
|
||||
service: &service,
|
||||
sqlStore: sqlStore,
|
||||
reqContext: &models.ReqContext{
|
||||
Context: &ctx,
|
||||
SignedInUser: &user,
|
||||
},
|
||||
}
|
||||
fn(t, sc)
|
||||
})
|
||||
}
|
||||
|
||||
func mockRequestBody(v interface{}) io.ReadCloser {
|
||||
b, _ := json.Marshal(v)
|
||||
return io.NopCloser(bytes.NewReader(b))
|
||||
}
|
Reference in New Issue
Block a user