mirror of
https://github.com/grafana/grafana.git
synced 2025-08-03 05:08:36 +08:00
Implement preference service (#47870)
* Implement preference service * Adjust wire.go * Fix integration test user * Fix api pref tests * Fix a11y error Co-authored-by: Alexandra Vargas <alexa1866@gmail.com> Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
This commit is contained in:
@ -11,6 +11,8 @@ import (
|
||||
"github.com/grafana/grafana/pkg/infra/log"
|
||||
"github.com/grafana/grafana/pkg/models"
|
||||
"github.com/grafana/grafana/pkg/services/accesscontrol"
|
||||
pref "github.com/grafana/grafana/pkg/services/preference"
|
||||
"github.com/grafana/grafana/pkg/services/preference/preftest"
|
||||
"github.com/grafana/grafana/pkg/services/sqlstore"
|
||||
"github.com/grafana/grafana/pkg/services/sqlstore/mockstore"
|
||||
"github.com/grafana/grafana/pkg/setting"
|
||||
@ -375,6 +377,10 @@ func TestTeamAPIEndpoint_GetTeamPreferences_RBAC(t *testing.T) {
|
||||
sc.db = sqlstore.InitTestDB(t)
|
||||
_, err := sc.db.CreateTeam("team1", "", 1)
|
||||
|
||||
prefService := preftest.NewPreferenceServiceFake()
|
||||
prefService.ExpectedPreference = &pref.Preference{}
|
||||
sc.hs.preferenceService = prefService
|
||||
|
||||
require.NoError(t, err)
|
||||
|
||||
setInitCtxSignedInViewer(sc.initCtx)
|
||||
@ -398,7 +404,13 @@ func TestTeamAPIEndpoint_GetTeamPreferences_RBAC(t *testing.T) {
|
||||
// else return 403
|
||||
func TestTeamAPIEndpoint_UpdateTeamPreferences_RBAC(t *testing.T) {
|
||||
sc := setupHTTPServer(t, true, true)
|
||||
sc.db = sqlstore.InitTestDB(t)
|
||||
sqlStore := sqlstore.InitTestDB(t)
|
||||
sc.db = sqlStore
|
||||
|
||||
prefService := preftest.NewPreferenceServiceFake()
|
||||
prefService.ExpectedPreference = &pref.Preference{Theme: "dark"}
|
||||
sc.hs.preferenceService = prefService
|
||||
|
||||
_, err := sc.db.CreateTeam("team1", "", 1)
|
||||
|
||||
require.NoError(t, err)
|
||||
@ -411,10 +423,10 @@ func TestTeamAPIEndpoint_UpdateTeamPreferences_RBAC(t *testing.T) {
|
||||
response := callAPI(sc.server, http.MethodPut, fmt.Sprintf(detailTeamPreferenceURL, 1), input, t)
|
||||
assert.Equal(t, http.StatusOK, response.Code)
|
||||
|
||||
prefQuery := &models.GetPreferencesQuery{OrgId: 1, TeamId: 1, Result: &models.Preferences{}}
|
||||
err := sc.db.GetPreferences(context.Background(), prefQuery)
|
||||
prefQuery := &pref.GetPreferenceQuery{OrgID: 1, TeamID: 1}
|
||||
preference, err := prefService.Get(context.Background(), prefQuery)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, "dark", prefQuery.Result.Theme)
|
||||
assert.Equal(t, "dark", preference.Theme)
|
||||
})
|
||||
|
||||
input = strings.NewReader(teamPreferenceCmdLight)
|
||||
@ -423,9 +435,9 @@ func TestTeamAPIEndpoint_UpdateTeamPreferences_RBAC(t *testing.T) {
|
||||
response := callAPI(sc.server, http.MethodPut, fmt.Sprintf(detailTeamPreferenceURL, 1), input, t)
|
||||
assert.Equal(t, http.StatusForbidden, response.Code)
|
||||
|
||||
prefQuery := &models.GetPreferencesQuery{OrgId: 1, TeamId: 1, Result: &models.Preferences{}}
|
||||
err := sc.db.GetPreferences(context.Background(), prefQuery)
|
||||
prefQuery := &pref.GetPreferenceQuery{OrgID: 1, TeamID: 1}
|
||||
preference, err := prefService.Get(context.Background(), prefQuery)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, "dark", prefQuery.Result.Theme)
|
||||
assert.Equal(t, "dark", preference.Theme)
|
||||
})
|
||||
}
|
||||
|
Reference in New Issue
Block a user