Files
grafana/pkg/services/authz/rbac/store/sql_test.go
Matheus Macabu fc9f32a9f6 SQLTemplates: Add helper to ensure all templates have a test-case (#103964)
* SQLTemplates: Add helper to ensure all templates have a test-case associated

* UnifiedStorage: Add missing sql template test case

* LegacyDashboards: Add sql templates fs to test cases for exhaustiveness check

* RBACStore: Add sql templates fs to test cases for exhaustiveness check

* LegacyIAM: Add missing sql template test cases
2025-04-22 11:21:51 +02:00

131 lines
2.9 KiB
Go

package store
import (
"testing"
"text/template"
"github.com/grafana/grafana/pkg/storage/legacysql"
"github.com/grafana/grafana/pkg/storage/unified/sql/sqltemplate"
"github.com/grafana/grafana/pkg/storage/unified/sql/sqltemplate/mocks"
)
func TestIdentityQueries(t *testing.T) {
// prefix tables with grafana
nodb := &legacysql.LegacyDatabaseHelper{
Table: func(n string) string {
return "grafana." + n
},
}
getIdentifiers := func(q *UserIdentifierQuery) sqltemplate.SQLTemplate {
v := newGetUserIdentifiers(nodb, q)
v.SQLTemplate = mocks.NewTestingSQLTemplate()
return &v
}
getBasicRoles := func(q *BasicRoleQuery) sqltemplate.SQLTemplate {
v := newGetBasicRoles(nodb, q)
v.SQLTemplate = mocks.NewTestingSQLTemplate()
return &v
}
getPermissions := func(q *PermissionsQuery) sqltemplate.SQLTemplate {
v := newGetPermissions(nodb, q)
v.SQLTemplate = mocks.NewTestingSQLTemplate()
return &v
}
getFolders := func(q *FolderQuery) sqltemplate.SQLTemplate {
v := newGetFolders(nodb, q)
v.SQLTemplate = mocks.NewTestingSQLTemplate()
return &v
}
mocks.CheckQuerySnapshots(t, mocks.TemplateTestSetup{
RootDir: "testdata",
SQLTemplatesFS: sqlTemplatesFS,
Templates: map[*template.Template][]mocks.TemplateTestCase{
sqlUserIdentifiers: {
{
Name: "id_specified",
Data: getIdentifiers(&UserIdentifierQuery{
UserID: 1,
}),
},
{
Name: "uid_specified",
Data: getIdentifiers(&UserIdentifierQuery{
UserUID: "some_uid",
}),
},
},
sqlQueryBasicRoles: {
{
Name: "basic_roles",
Data: getBasicRoles(&BasicRoleQuery{
UserID: 1,
OrgID: 1,
}),
},
},
sqlUserPerms: {
{
Name: "viewer_user",
Data: getPermissions(&PermissionsQuery{
UserID: 1,
OrgID: 1,
Action: "folders:read",
Role: "Viewer",
}),
},
{
Name: "admin_user",
Data: getPermissions(&PermissionsQuery{
UserID: 1,
OrgID: 1,
Action: "folders:read",
Role: "Admin",
IsServerAdmin: true,
}),
},
{
Name: "user_with_teams",
Data: getPermissions(&PermissionsQuery{
UserID: 1,
OrgID: 1,
Action: "folders:read",
Role: "None",
TeamIDs: []int64{1, 2},
}),
},
{
Name: "anonymous_user",
Data: getPermissions(&PermissionsQuery{
OrgID: 1,
Action: "folders:read",
Role: "Viewer",
}),
},
{
Name: "With_action_sets",
Data: getPermissions(&PermissionsQuery{
UserID: 1,
OrgID: 1,
Action: "folders:create",
ActionSets: []string{"folders:edit", "folders:admin"},
Role: "Viewer",
}),
},
},
sqlFolders: {
{
Name: "folder_query",
Data: getFolders(&FolderQuery{
OrgID: 1,
}),
},
},
},
})
}