mirror of https://github.com/grafana/grafana.git
				
				
				
			
		
			
	
	
		
			198 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Go
		
	
	
	
		
		
			
		
	
	
			198 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Go
		
	
	
	
|  | package legacy | ||
|  | 
 | ||
|  | import ( | ||
|  | 	"testing" | ||
|  | 	"text/template" | ||
|  | 
 | ||
|  | 	"github.com/grafana/grafana/pkg/registry/apis/iam/common" | ||
|  | 	"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 | ||
|  | 		}, | ||
|  | 	} | ||
|  | 
 | ||
|  | 	getDisplay := func(q *ListDisplayQuery) sqltemplate.SQLTemplate { | ||
|  | 		v := newListDisplay(nodb, q) | ||
|  | 		v.SQLTemplate = mocks.NewTestingSQLTemplate() | ||
|  | 		return &v | ||
|  | 	} | ||
|  | 
 | ||
|  | 	listUsers := func(q *ListUserQuery) sqltemplate.SQLTemplate { | ||
|  | 		v := newListUser(nodb, q) | ||
|  | 		v.SQLTemplate = mocks.NewTestingSQLTemplate() | ||
|  | 		return &v | ||
|  | 	} | ||
|  | 
 | ||
|  | 	listTeams := func(q *ListTeamQuery) sqltemplate.SQLTemplate { | ||
|  | 		v := newListTeams(nodb, q) | ||
|  | 		v.SQLTemplate = mocks.NewTestingSQLTemplate() | ||
|  | 		return &v | ||
|  | 	} | ||
|  | 
 | ||
|  | 	listTeamBindings := func(q *ListTeamBindingsQuery) sqltemplate.SQLTemplate { | ||
|  | 		v := newListTeamBindings(nodb, q) | ||
|  | 		v.SQLTemplate = mocks.NewTestingSQLTemplate() | ||
|  | 		return &v | ||
|  | 	} | ||
|  | 
 | ||
|  | 	listTeamMembers := func(q *ListTeamMembersQuery) sqltemplate.SQLTemplate { | ||
|  | 		v := newListTeamMembers(nodb, q) | ||
|  | 		v.SQLTemplate = mocks.NewTestingSQLTemplate() | ||
|  | 		return &v | ||
|  | 	} | ||
|  | 
 | ||
|  | 	listUserTeams := func(q *ListUserTeamsQuery) sqltemplate.SQLTemplate { | ||
|  | 		v := newListUserTeams(nodb, q) | ||
|  | 		v.SQLTemplate = mocks.NewTestingSQLTemplate() | ||
|  | 		return &v | ||
|  | 	} | ||
|  | 
 | ||
|  | 	mocks.CheckQuerySnapshots(t, mocks.TemplateTestSetup{ | ||
|  | 		RootDir: "testdata", | ||
|  | 		Templates: map[*template.Template][]mocks.TemplateTestCase{ | ||
|  | 			sqlQueryTeamsTemplate: { | ||
|  | 				{ | ||
|  | 					Name: "teams_uid", | ||
|  | 					Data: listTeams(&ListTeamQuery{ | ||
|  | 						UID:        "abc", | ||
|  | 						Pagination: common.Pagination{Limit: 1}, | ||
|  | 					}), | ||
|  | 				}, | ||
|  | 				{ | ||
|  | 					Name: "teams_page_1", | ||
|  | 					Data: listTeams(&ListTeamQuery{ | ||
|  | 						Pagination: common.Pagination{Limit: 5}, | ||
|  | 					}), | ||
|  | 				}, | ||
|  | 				{ | ||
|  | 					Name: "teams_page_2", | ||
|  | 					Data: listTeams(&ListTeamQuery{ | ||
|  | 						Pagination: common.Pagination{ | ||
|  | 							Limit:    1, | ||
|  | 							Continue: 2, | ||
|  | 						}, | ||
|  | 					}), | ||
|  | 				}, | ||
|  | 			}, | ||
|  | 			sqlQueryUsersTemplate: { | ||
|  | 				{ | ||
|  | 					Name: "users_uid", | ||
|  | 					Data: listUsers(&ListUserQuery{ | ||
|  | 						UID:        "abc", | ||
|  | 						Pagination: common.Pagination{Limit: 1}, | ||
|  | 					}), | ||
|  | 				}, | ||
|  | 				{ | ||
|  | 					Name: "users_page_1", | ||
|  | 					Data: listUsers(&ListUserQuery{ | ||
|  | 						Pagination: common.Pagination{Limit: 5}, | ||
|  | 					}), | ||
|  | 				}, | ||
|  | 				{ | ||
|  | 					Name: "users_page_2", | ||
|  | 					Data: listUsers(&ListUserQuery{ | ||
|  | 						Pagination: common.Pagination{ | ||
|  | 							Limit:    1, | ||
|  | 							Continue: 2, | ||
|  | 						}, | ||
|  | 					}), | ||
|  | 				}, | ||
|  | 			}, | ||
|  | 			sqlQueryDisplayTemplate: { | ||
|  | 				{ | ||
|  | 					Name: "display_uids", | ||
|  | 					Data: getDisplay(&ListDisplayQuery{ | ||
|  | 						OrgID: 2, | ||
|  | 						UIDs:  []string{"a", "b"}, | ||
|  | 					}), | ||
|  | 				}, | ||
|  | 				{ | ||
|  | 					Name: "display_ids", | ||
|  | 					Data: getDisplay(&ListDisplayQuery{ | ||
|  | 						OrgID: 2, | ||
|  | 						IDs:   []int64{1, 2}, | ||
|  | 					}), | ||
|  | 				}, | ||
|  | 				{ | ||
|  | 					Name: "display_ids_uids", | ||
|  | 					Data: getDisplay(&ListDisplayQuery{ | ||
|  | 						OrgID: 2, | ||
|  | 						UIDs:  []string{"a", "b"}, | ||
|  | 						IDs:   []int64{1, 2}, | ||
|  | 					}), | ||
|  | 				}, | ||
|  | 			}, | ||
|  | 			sqlQueryTeamBindingsTemplate: { | ||
|  | 				{ | ||
|  | 					Name: "team_1_bindings", | ||
|  | 					Data: listTeamBindings(&ListTeamBindingsQuery{ | ||
|  | 						OrgID:      1, | ||
|  | 						UID:        "team-1", | ||
|  | 						Pagination: common.Pagination{Limit: 1}, | ||
|  | 					}), | ||
|  | 				}, | ||
|  | 				{ | ||
|  | 					Name: "team_bindings_page_1", | ||
|  | 					Data: listTeamBindings(&ListTeamBindingsQuery{ | ||
|  | 						OrgID:      1, | ||
|  | 						Pagination: common.Pagination{Limit: 5}, | ||
|  | 					}), | ||
|  | 				}, | ||
|  | 				{ | ||
|  | 					Name: "team_bindings_page_2", | ||
|  | 					Data: listTeamBindings(&ListTeamBindingsQuery{ | ||
|  | 						OrgID: 1, | ||
|  | 						Pagination: common.Pagination{ | ||
|  | 							Limit:    1, | ||
|  | 							Continue: 2, | ||
|  | 						}, | ||
|  | 					}), | ||
|  | 				}, | ||
|  | 			}, | ||
|  | 			sqlQueryTeamMembersTemplate: { | ||
|  | 				{ | ||
|  | 					Name: "team_1_members_page_1", | ||
|  | 					Data: listTeamMembers(&ListTeamMembersQuery{ | ||
|  | 						UID:        "team-1", | ||
|  | 						OrgID:      1, | ||
|  | 						Pagination: common.Pagination{Limit: 1}, | ||
|  | 					}), | ||
|  | 				}, | ||
|  | 				{ | ||
|  | 					Name: "team_1_members_page_2", | ||
|  | 					Data: listTeamMembers(&ListTeamMembersQuery{ | ||
|  | 						UID:        "team-1", | ||
|  | 						OrgID:      1, | ||
|  | 						Pagination: common.Pagination{Limit: 1, Continue: 2}, | ||
|  | 					}), | ||
|  | 				}, | ||
|  | 			}, | ||
|  | 			sqlQueryUserTeamsTemplate: { | ||
|  | 				{ | ||
|  | 					Name: "team_1_members_page_1", | ||
|  | 					Data: listUserTeams(&ListUserTeamsQuery{ | ||
|  | 						UserUID:    "user-1", | ||
|  | 						OrgID:      1, | ||
|  | 						Pagination: common.Pagination{Limit: 1}, | ||
|  | 					}), | ||
|  | 				}, | ||
|  | 				{ | ||
|  | 					Name: "team_1_members_page_2", | ||
|  | 					Data: listUserTeams(&ListUserTeamsQuery{ | ||
|  | 						UserUID:    "user-1", | ||
|  | 						OrgID:      1, | ||
|  | 						Pagination: common.Pagination{Limit: 1, Continue: 2}, | ||
|  | 					}), | ||
|  | 				}, | ||
|  | 			}, | ||
|  | 		}, | ||
|  | 	}) | ||
|  | } |