| 
									
										
										
										
											2024-07-18 23:03:18 +08:00
										 |  |  | package sql | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import ( | 
					
						
							|  |  |  | 	"testing" | 
					
						
							|  |  |  | 	"text/template" | 
					
						
							| 
									
										
										
										
											2025-01-09 04:08:10 +08:00
										 |  |  | 	"time" | 
					
						
							| 
									
										
										
										
											2024-07-18 23:03:18 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-01-09 04:08:10 +08:00
										 |  |  | 	"github.com/grafana/grafana/pkg/apimachinery/utils" | 
					
						
							| 
									
										
										
										
											2024-07-18 23:03:18 +08:00
										 |  |  | 	"github.com/grafana/grafana/pkg/storage/unified/resource" | 
					
						
							| 
									
										
										
										
											2024-08-16 19:36:56 +08:00
										 |  |  | 	"github.com/grafana/grafana/pkg/storage/unified/sql/sqltemplate/mocks" | 
					
						
							| 
									
										
										
										
											2024-07-18 23:03:18 +08:00
										 |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-08-27 18:22:40 +08:00
										 |  |  | func TestUnifiedStorageQueries(t *testing.T) { | 
					
						
							| 
									
										
										
										
											2024-08-16 19:36:56 +08:00
										 |  |  | 	mocks.CheckQuerySnapshots(t, mocks.TemplateTestSetup{ | 
					
						
							|  |  |  | 		RootDir: "testdata", | 
					
						
							|  |  |  | 		Templates: map[*template.Template][]mocks.TemplateTestCase{ | 
					
						
							|  |  |  | 			sqlResourceDelete: { | 
					
						
							|  |  |  | 				{ | 
					
						
							|  |  |  | 					Name: "simple", | 
					
						
							|  |  |  | 					Data: &sqlResourceRequest{ | 
					
						
							| 
									
										
										
										
											2024-08-16 20:12:37 +08:00
										 |  |  | 						SQLTemplate: mocks.NewTestingSQLTemplate(), | 
					
						
							| 
									
										
										
										
											2024-08-16 19:36:56 +08:00
										 |  |  | 						WriteEvent: resource.WriteEvent{ | 
					
						
							|  |  |  | 							Key: &resource.ResourceKey{ | 
					
						
							|  |  |  | 								Namespace: "nn", | 
					
						
							|  |  |  | 								Group:     "gg", | 
					
						
							|  |  |  | 								Resource:  "rr", | 
					
						
							|  |  |  | 								Name:      "name", | 
					
						
							|  |  |  | 							}, | 
					
						
							|  |  |  | 						}, | 
					
						
							| 
									
										
										
										
											2024-07-18 23:03:18 +08:00
										 |  |  | 					}, | 
					
						
							|  |  |  | 				}, | 
					
						
							|  |  |  | 			}, | 
					
						
							| 
									
										
										
										
											2024-08-16 19:36:56 +08:00
										 |  |  | 			sqlResourceInsert: { | 
					
						
							|  |  |  | 				{ | 
					
						
							|  |  |  | 					Name: "simple", | 
					
						
							|  |  |  | 					Data: &sqlResourceRequest{ | 
					
						
							| 
									
										
										
										
											2024-08-16 20:12:37 +08:00
										 |  |  | 						SQLTemplate: mocks.NewTestingSQLTemplate(), | 
					
						
							| 
									
										
										
										
											2024-08-16 19:36:56 +08:00
										 |  |  | 						WriteEvent: resource.WriteEvent{ | 
					
						
							|  |  |  | 							Key: &resource.ResourceKey{ | 
					
						
							|  |  |  | 								Namespace: "nn", | 
					
						
							|  |  |  | 								Group:     "gg", | 
					
						
							|  |  |  | 								Resource:  "rr", | 
					
						
							|  |  |  | 								Name:      "name", | 
					
						
							|  |  |  | 							}, | 
					
						
							|  |  |  | 							Type:       resource.WatchEvent_ADDED, | 
					
						
							|  |  |  | 							PreviousRV: 123, | 
					
						
							|  |  |  | 						}, | 
					
						
							| 
									
										
										
										
											2024-11-12 19:52:04 +08:00
										 |  |  | 						Folder: "fldr", | 
					
						
							| 
									
										
										
										
											2024-07-18 23:03:18 +08:00
										 |  |  | 					}, | 
					
						
							|  |  |  | 				}, | 
					
						
							|  |  |  | 			}, | 
					
						
							| 
									
										
										
										
											2024-08-16 19:36:56 +08:00
										 |  |  | 			sqlResourceUpdate: { | 
					
						
							|  |  |  | 				{ | 
					
						
							|  |  |  | 					Name: "single path", | 
					
						
							|  |  |  | 					Data: &sqlResourceRequest{ | 
					
						
							| 
									
										
										
										
											2024-08-16 20:12:37 +08:00
										 |  |  | 						SQLTemplate: mocks.NewTestingSQLTemplate(), | 
					
						
							| 
									
										
										
										
											2024-08-16 19:36:56 +08:00
										 |  |  | 						WriteEvent: resource.WriteEvent{ | 
					
						
							| 
									
										
										
										
											2024-10-11 17:11:33 +08:00
										 |  |  | 							Key: &resource.ResourceKey{ | 
					
						
							|  |  |  | 								Namespace: "nn", | 
					
						
							|  |  |  | 								Group:     "gg", | 
					
						
							|  |  |  | 								Resource:  "rr", | 
					
						
							|  |  |  | 								Name:      "name", | 
					
						
							|  |  |  | 							}, | 
					
						
							| 
									
										
										
										
											2024-08-16 19:36:56 +08:00
										 |  |  | 						}, | 
					
						
							| 
									
										
										
										
											2024-11-12 19:52:04 +08:00
										 |  |  | 						Folder: "fldr", | 
					
						
							| 
									
										
										
										
											2024-07-18 23:03:18 +08:00
										 |  |  | 					}, | 
					
						
							|  |  |  | 				}, | 
					
						
							|  |  |  | 			}, | 
					
						
							| 
									
										
										
										
											2024-08-16 19:36:56 +08:00
										 |  |  | 			sqlResourceRead: { | 
					
						
							|  |  |  | 				{ | 
					
						
							|  |  |  | 					Name: "without_resource_version", | 
					
						
							|  |  |  | 					Data: &sqlResourceReadRequest{ | 
					
						
							| 
									
										
										
										
											2024-08-16 20:12:37 +08:00
										 |  |  | 						SQLTemplate: mocks.NewTestingSQLTemplate(), | 
					
						
							| 
									
										
										
										
											2024-08-16 19:36:56 +08:00
										 |  |  | 						Request: &resource.ReadRequest{ | 
					
						
							| 
									
										
										
										
											2024-10-11 17:11:33 +08:00
										 |  |  | 							Key: &resource.ResourceKey{ | 
					
						
							|  |  |  | 								Namespace: "nn", | 
					
						
							|  |  |  | 								Group:     "gg", | 
					
						
							|  |  |  | 								Resource:  "rr", | 
					
						
							|  |  |  | 								Name:      "name", | 
					
						
							|  |  |  | 							}, | 
					
						
							| 
									
										
										
										
											2024-08-16 19:36:56 +08:00
										 |  |  | 						}, | 
					
						
							| 
									
										
										
										
											2024-11-12 19:52:04 +08:00
										 |  |  | 						Response: NewReadResponse(), | 
					
						
							| 
									
										
										
										
											2024-07-18 23:03:18 +08:00
										 |  |  | 					}, | 
					
						
							|  |  |  | 				}, | 
					
						
							|  |  |  | 			}, | 
					
						
							| 
									
										
										
										
											2024-07-23 01:08:30 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-08-16 19:36:56 +08:00
										 |  |  | 			sqlResourceList: { | 
					
						
							|  |  |  | 				{ | 
					
						
							|  |  |  | 					Name: "filter_on_namespace", | 
					
						
							|  |  |  | 					Data: &sqlResourceListRequest{ | 
					
						
							| 
									
										
										
										
											2024-08-16 20:12:37 +08:00
										 |  |  | 						SQLTemplate: mocks.NewTestingSQLTemplate(), | 
					
						
							| 
									
										
										
										
											2024-08-16 19:36:56 +08:00
										 |  |  | 						Request: &resource.ListRequest{ | 
					
						
							|  |  |  | 							Limit: 10, | 
					
						
							|  |  |  | 							Options: &resource.ListOptions{ | 
					
						
							|  |  |  | 								Key: &resource.ResourceKey{ | 
					
						
							|  |  |  | 									Namespace: "ns", | 
					
						
							|  |  |  | 								}, | 
					
						
							| 
									
										
										
										
											2024-07-18 23:03:18 +08:00
										 |  |  | 							}, | 
					
						
							|  |  |  | 						}, | 
					
						
							|  |  |  | 					}, | 
					
						
							|  |  |  | 				}, | 
					
						
							|  |  |  | 			}, | 
					
						
							| 
									
										
										
										
											2024-07-23 01:08:30 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-08-16 19:36:56 +08:00
										 |  |  | 			sqlResourceHistoryList: { | 
					
						
							|  |  |  | 				{ | 
					
						
							|  |  |  | 					Name: "single path", | 
					
						
							|  |  |  | 					Data: &sqlResourceHistoryListRequest{ | 
					
						
							| 
									
										
										
										
											2024-08-16 20:12:37 +08:00
										 |  |  | 						SQLTemplate: mocks.NewTestingSQLTemplate(), | 
					
						
							| 
									
										
										
										
											2024-08-16 19:36:56 +08:00
										 |  |  | 						Request: &historyListRequest{ | 
					
						
							|  |  |  | 							Limit: 10, | 
					
						
							|  |  |  | 							Options: &resource.ListOptions{ | 
					
						
							|  |  |  | 								Key: &resource.ResourceKey{ | 
					
						
							|  |  |  | 									Namespace: "ns", | 
					
						
							|  |  |  | 								}, | 
					
						
							| 
									
										
										
										
											2024-07-18 23:03:18 +08:00
										 |  |  | 							}, | 
					
						
							|  |  |  | 						}, | 
					
						
							| 
									
										
										
										
											2024-08-16 19:36:56 +08:00
										 |  |  | 						Response: new(resource.ResourceWrapper), | 
					
						
							| 
									
										
										
										
											2024-07-18 23:03:18 +08:00
										 |  |  | 					}, | 
					
						
							|  |  |  | 				}, | 
					
						
							|  |  |  | 			}, | 
					
						
							| 
									
										
										
										
											2024-10-07 16:01:53 +08:00
										 |  |  | 			sqlResourceHistoryPoll: { | 
					
						
							|  |  |  | 				{ | 
					
						
							|  |  |  | 					Name: "single path", | 
					
						
							|  |  |  | 					Data: &sqlResourceHistoryPollRequest{ | 
					
						
							|  |  |  | 						SQLTemplate:          mocks.NewTestingSQLTemplate(), | 
					
						
							|  |  |  | 						Resource:             "res", | 
					
						
							|  |  |  | 						Group:                "group", | 
					
						
							|  |  |  | 						SinceResourceVersion: 1234, | 
					
						
							|  |  |  | 						Response:             new(historyPollResponse), | 
					
						
							|  |  |  | 					}, | 
					
						
							|  |  |  | 				}, | 
					
						
							|  |  |  | 			}, | 
					
						
							| 
									
										
										
										
											2024-07-23 01:08:30 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-08-16 19:36:56 +08:00
										 |  |  | 			sqlResourceUpdateRV: { | 
					
						
							|  |  |  | 				{ | 
					
						
							|  |  |  | 					Name: "single path", | 
					
						
							|  |  |  | 					Data: &sqlResourceUpdateRVRequest{ | 
					
						
							| 
									
										
										
										
											2024-08-16 20:12:37 +08:00
										 |  |  | 						SQLTemplate: mocks.NewTestingSQLTemplate(), | 
					
						
							| 
									
										
										
										
											2025-03-13 16:24:12 +08:00
										 |  |  | 						GUIDToRV: map[string]int64{ | 
					
						
							|  |  |  | 							"guid1": 123, | 
					
						
							|  |  |  | 							"guid2": 456, | 
					
						
							|  |  |  | 						}, | 
					
						
							| 
									
										
										
										
											2024-07-18 23:03:18 +08:00
										 |  |  | 					}, | 
					
						
							|  |  |  | 				}, | 
					
						
							|  |  |  | 			}, | 
					
						
							| 
									
										
										
										
											2024-07-23 01:08:30 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-08-16 19:36:56 +08:00
										 |  |  | 			sqlResourceHistoryRead: { | 
					
						
							|  |  |  | 				{ | 
					
						
							|  |  |  | 					Name: "single path", | 
					
						
							| 
									
										
										
										
											2025-03-28 01:34:37 +08:00
										 |  |  | 					Data: &sqlResourceHistoryReadRequest{ | 
					
						
							| 
									
										
										
										
											2024-08-16 20:12:37 +08:00
										 |  |  | 						SQLTemplate: mocks.NewTestingSQLTemplate(), | 
					
						
							| 
									
										
										
										
											2025-03-28 01:34:37 +08:00
										 |  |  | 						Request: &historyReadRequest{ | 
					
						
							| 
									
										
										
										
											2024-08-16 19:36:56 +08:00
										 |  |  | 							ResourceVersion: 123, | 
					
						
							| 
									
										
										
										
											2024-11-12 19:52:04 +08:00
										 |  |  | 							Key: &resource.ResourceKey{ | 
					
						
							|  |  |  | 								Namespace: "ns", | 
					
						
							|  |  |  | 								Group:     "gp", | 
					
						
							|  |  |  | 								Resource:  "rs", | 
					
						
							|  |  |  | 								Name:      "nm", | 
					
						
							|  |  |  | 							}, | 
					
						
							| 
									
										
										
										
											2024-08-16 19:36:56 +08:00
										 |  |  | 						}, | 
					
						
							| 
									
										
										
										
											2024-11-12 19:52:04 +08:00
										 |  |  | 						Response: NewReadResponse(), | 
					
						
							| 
									
										
										
										
											2024-07-18 23:03:18 +08:00
										 |  |  | 					}, | 
					
						
							|  |  |  | 				}, | 
					
						
							|  |  |  | 			}, | 
					
						
							| 
									
										
										
										
											2024-07-23 01:08:30 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-03-28 01:34:37 +08:00
										 |  |  | 			sqlResourceHistoryReadLatestRV: { | 
					
						
							|  |  |  | 				{ | 
					
						
							|  |  |  | 					Name: "single path", | 
					
						
							|  |  |  | 					Data: &sqlResourceHistoryReadLatestRVRequest{ | 
					
						
							|  |  |  | 						SQLTemplate: mocks.NewTestingSQLTemplate(), | 
					
						
							|  |  |  | 						Request: &historyReadLatestRVRequest{ | 
					
						
							|  |  |  | 							Key: &resource.ResourceKey{ | 
					
						
							|  |  |  | 								Namespace: "ns", | 
					
						
							|  |  |  | 								Group:     "gp", | 
					
						
							|  |  |  | 								Resource:  "rs", | 
					
						
							|  |  |  | 								Name:      "nm", | 
					
						
							|  |  |  | 							}, | 
					
						
							|  |  |  | 						}, | 
					
						
							|  |  |  | 						Response: new(resourceHistoryReadLatestRVResponse), | 
					
						
							|  |  |  | 					}, | 
					
						
							|  |  |  | 				}, | 
					
						
							|  |  |  | 				{ | 
					
						
							|  |  |  | 					Name: "with WatchEvent_DELETED", | 
					
						
							|  |  |  | 					Data: &sqlResourceHistoryReadLatestRVRequest{ | 
					
						
							|  |  |  | 						SQLTemplate: mocks.NewTestingSQLTemplate(), | 
					
						
							|  |  |  | 						Request: &historyReadLatestRVRequest{ | 
					
						
							|  |  |  | 							Key: &resource.ResourceKey{ | 
					
						
							|  |  |  | 								Namespace: "ns", | 
					
						
							|  |  |  | 								Group:     "gp", | 
					
						
							|  |  |  | 								Resource:  "rs", | 
					
						
							|  |  |  | 								Name:      "nm", | 
					
						
							|  |  |  | 							}, | 
					
						
							|  |  |  | 							EventType: resource.WatchEvent_DELETED, | 
					
						
							|  |  |  | 						}, | 
					
						
							|  |  |  | 						Response: new(resourceHistoryReadLatestRVResponse), | 
					
						
							|  |  |  | 					}, | 
					
						
							|  |  |  | 				}, | 
					
						
							|  |  |  | 			}, | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-08-16 19:36:56 +08:00
										 |  |  | 			sqlResourceHistoryUpdateRV: { | 
					
						
							|  |  |  | 				{ | 
					
						
							|  |  |  | 					Name: "single path", | 
					
						
							|  |  |  | 					Data: &sqlResourceUpdateRVRequest{ | 
					
						
							| 
									
										
										
										
											2024-08-16 20:12:37 +08:00
										 |  |  | 						SQLTemplate: mocks.NewTestingSQLTemplate(), | 
					
						
							| 
									
										
										
										
											2025-03-13 16:24:12 +08:00
										 |  |  | 						GUIDToRV: map[string]int64{ | 
					
						
							|  |  |  | 							"guid1": 123, | 
					
						
							|  |  |  | 							"guid2": 456, | 
					
						
							|  |  |  | 						}, | 
					
						
							| 
									
										
										
										
											2024-07-18 23:03:18 +08:00
										 |  |  | 					}, | 
					
						
							|  |  |  | 				}, | 
					
						
							|  |  |  | 			}, | 
					
						
							| 
									
										
										
										
											2024-07-23 01:08:30 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-08-16 19:36:56 +08:00
										 |  |  | 			sqlResourceHistoryInsert: { | 
					
						
							|  |  |  | 				{ | 
					
						
							|  |  |  | 					Name: "insert into resource_history", | 
					
						
							|  |  |  | 					Data: &sqlResourceRequest{ | 
					
						
							| 
									
										
										
										
											2024-08-16 20:12:37 +08:00
										 |  |  | 						SQLTemplate: mocks.NewTestingSQLTemplate(), | 
					
						
							| 
									
										
										
										
											2025-04-02 01:38:23 +08:00
										 |  |  | 						Generation:  789, | 
					
						
							| 
									
										
										
										
											2024-08-16 19:36:56 +08:00
										 |  |  | 						WriteEvent: resource.WriteEvent{ | 
					
						
							| 
									
										
										
										
											2024-10-11 17:11:33 +08:00
										 |  |  | 							Key: &resource.ResourceKey{ | 
					
						
							|  |  |  | 								Namespace: "nn", | 
					
						
							|  |  |  | 								Group:     "gg", | 
					
						
							|  |  |  | 								Resource:  "rr", | 
					
						
							|  |  |  | 								Name:      "name", | 
					
						
							|  |  |  | 							}, | 
					
						
							| 
									
										
										
										
											2024-10-07 16:01:53 +08:00
										 |  |  | 							PreviousRV: 1234, | 
					
						
							| 
									
										
										
										
											2024-08-16 19:36:56 +08:00
										 |  |  | 						}, | 
					
						
							| 
									
										
										
										
											2024-11-12 19:52:04 +08:00
										 |  |  | 						Folder: "fldr", | 
					
						
							| 
									
										
										
										
											2024-07-18 23:03:18 +08:00
										 |  |  | 					}, | 
					
						
							|  |  |  | 				}, | 
					
						
							|  |  |  | 			}, | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-01-17 20:54:25 +08:00
										 |  |  | 			sqlResourceHistoryGet: { | 
					
						
							|  |  |  | 				{ | 
					
						
							|  |  |  | 					Name: "read object history", | 
					
						
							|  |  |  | 					Data: &sqlGetHistoryRequest{ | 
					
						
							|  |  |  | 						SQLTemplate: mocks.NewTestingSQLTemplate(), | 
					
						
							|  |  |  | 						Key: &resource.ResourceKey{ | 
					
						
							|  |  |  | 							Namespace: "nn", | 
					
						
							|  |  |  | 							Group:     "gg", | 
					
						
							|  |  |  | 							Resource:  "rr", | 
					
						
							|  |  |  | 							Name:      "name", | 
					
						
							|  |  |  | 						}, | 
					
						
							|  |  |  | 					}, | 
					
						
							|  |  |  | 				}, | 
					
						
							|  |  |  | 				{ | 
					
						
							|  |  |  | 					Name: "read trash", | 
					
						
							|  |  |  | 					Data: &sqlGetHistoryRequest{ | 
					
						
							|  |  |  | 						SQLTemplate: mocks.NewTestingSQLTemplate(), | 
					
						
							|  |  |  | 						Key: &resource.ResourceKey{ | 
					
						
							|  |  |  | 							Namespace: "nn", | 
					
						
							|  |  |  | 							Group:     "gg", | 
					
						
							|  |  |  | 							Resource:  "rr", | 
					
						
							|  |  |  | 						}, | 
					
						
							|  |  |  | 						Trash: true, | 
					
						
							|  |  |  | 					}, | 
					
						
							|  |  |  | 				}, | 
					
						
							|  |  |  | 				{ | 
					
						
							|  |  |  | 					Name: "read trash second page", | 
					
						
							|  |  |  | 					Data: &sqlGetHistoryRequest{ | 
					
						
							|  |  |  | 						SQLTemplate: mocks.NewTestingSQLTemplate(), | 
					
						
							|  |  |  | 						Key: &resource.ResourceKey{ | 
					
						
							|  |  |  | 							Namespace: "nn", | 
					
						
							|  |  |  | 							Group:     "gg", | 
					
						
							|  |  |  | 							Resource:  "rr", | 
					
						
							|  |  |  | 						}, | 
					
						
							|  |  |  | 						Trash:   true, | 
					
						
							|  |  |  | 						StartRV: 123456, | 
					
						
							|  |  |  | 					}, | 
					
						
							|  |  |  | 				}, | 
					
						
							|  |  |  | 			}, | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-03-17 18:36:38 +08:00
										 |  |  | 			sqlResourceHistoryPrune: { | 
					
						
							|  |  |  | 				{ | 
					
						
							| 
									
										
										
										
											2025-04-02 01:38:23 +08:00
										 |  |  | 					Name: "max-versions", | 
					
						
							| 
									
										
										
										
											2025-03-17 18:36:38 +08:00
										 |  |  | 					Data: &sqlPruneHistoryRequest{ | 
					
						
							|  |  |  | 						SQLTemplate: mocks.NewTestingSQLTemplate(), | 
					
						
							|  |  |  | 						Key: &resource.ResourceKey{ | 
					
						
							| 
									
										
										
										
											2025-04-02 01:38:23 +08:00
										 |  |  | 							Namespace: "default", | 
					
						
							|  |  |  | 							Group:     "provisioning.grafana.app", | 
					
						
							|  |  |  | 							Resource:  "repositories", | 
					
						
							|  |  |  | 							Name:      "repo-xyz", | 
					
						
							|  |  |  | 						}, | 
					
						
							|  |  |  | 						HistoryLimit: 10, | 
					
						
							|  |  |  | 					}, | 
					
						
							|  |  |  | 				}, | 
					
						
							|  |  |  | 				{ | 
					
						
							|  |  |  | 					Name: "collapse-generations", | 
					
						
							|  |  |  | 					Data: &sqlPruneHistoryRequest{ | 
					
						
							|  |  |  | 						SQLTemplate: mocks.NewTestingSQLTemplate(), | 
					
						
							|  |  |  | 						Key: &resource.ResourceKey{ | 
					
						
							|  |  |  | 							Namespace: "default", | 
					
						
							|  |  |  | 							Group:     "provisioning.grafana.app", | 
					
						
							|  |  |  | 							Resource:  "repositories", | 
					
						
							|  |  |  | 							Name:      "repo-xyz", | 
					
						
							| 
									
										
										
										
											2025-03-17 18:36:38 +08:00
										 |  |  | 						}, | 
					
						
							| 
									
										
										
										
											2025-04-02 01:38:23 +08:00
										 |  |  | 						PartitionByGeneration: true, | 
					
						
							|  |  |  | 						HistoryLimit:          1, | 
					
						
							| 
									
										
										
										
											2025-03-17 18:36:38 +08:00
										 |  |  | 					}, | 
					
						
							|  |  |  | 				}, | 
					
						
							|  |  |  | 			}, | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-08-16 19:36:56 +08:00
										 |  |  | 			sqlResourceVersionGet: { | 
					
						
							|  |  |  | 				{ | 
					
						
							|  |  |  | 					Name: "single path", | 
					
						
							| 
									
										
										
										
											2024-10-11 17:11:33 +08:00
										 |  |  | 					Data: &sqlResourceVersionGetRequest{ | 
					
						
							|  |  |  | 						SQLTemplate: mocks.NewTestingSQLTemplate(), | 
					
						
							|  |  |  | 						Resource:    "resource", | 
					
						
							|  |  |  | 						Group:       "group", | 
					
						
							|  |  |  | 						Response:    new(resourceVersionResponse), | 
					
						
							|  |  |  | 						ReadOnly:    false, | 
					
						
							| 
									
										
										
										
											2024-07-18 23:03:18 +08:00
										 |  |  | 					}, | 
					
						
							|  |  |  | 				}, | 
					
						
							|  |  |  | 			}, | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-11 17:11:33 +08:00
										 |  |  | 			sqlResourceVersionUpdate: { | 
					
						
							| 
									
										
										
										
											2024-08-16 19:36:56 +08:00
										 |  |  | 				{ | 
					
						
							|  |  |  | 					Name: "increment resource version", | 
					
						
							| 
									
										
										
										
											2024-10-11 17:11:33 +08:00
										 |  |  | 					Data: &sqlResourceVersionUpsertRequest{ | 
					
						
							|  |  |  | 						SQLTemplate:     mocks.NewTestingSQLTemplate(), | 
					
						
							|  |  |  | 						Resource:        "resource", | 
					
						
							|  |  |  | 						Group:           "group", | 
					
						
							|  |  |  | 						ResourceVersion: int64(12354), | 
					
						
							| 
									
										
										
										
											2024-07-18 23:03:18 +08:00
										 |  |  | 					}, | 
					
						
							|  |  |  | 				}, | 
					
						
							|  |  |  | 			}, | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-08-16 19:36:56 +08:00
										 |  |  | 			sqlResourceVersionInsert: { | 
					
						
							|  |  |  | 				{ | 
					
						
							|  |  |  | 					Name: "single path", | 
					
						
							| 
									
										
										
										
											2024-10-11 17:11:33 +08:00
										 |  |  | 					Data: &sqlResourceVersionUpsertRequest{ | 
					
						
							|  |  |  | 						SQLTemplate:     mocks.NewTestingSQLTemplate(), | 
					
						
							|  |  |  | 						ResourceVersion: int64(12354), | 
					
						
							| 
									
										
										
										
											2024-07-18 23:03:18 +08:00
										 |  |  | 					}, | 
					
						
							|  |  |  | 				}, | 
					
						
							|  |  |  | 			}, | 
					
						
							| 
									
										
										
										
											2024-12-04 01:20:27 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 			sqlResourceStats: { | 
					
						
							|  |  |  | 				{ | 
					
						
							| 
									
										
										
										
											2025-01-21 17:15:08 +08:00
										 |  |  | 					Name: "global", | 
					
						
							| 
									
										
										
										
											2024-12-04 01:20:27 +08:00
										 |  |  | 					Data: &sqlStatsRequest{ | 
					
						
							|  |  |  | 						SQLTemplate: mocks.NewTestingSQLTemplate(), | 
					
						
							|  |  |  | 						MinCount:    10, // Not yet used in query (only response filter)
 | 
					
						
							|  |  |  | 					}, | 
					
						
							|  |  |  | 				}, | 
					
						
							| 
									
										
										
										
											2024-12-05 18:58:13 +08:00
										 |  |  | 				{ | 
					
						
							| 
									
										
										
										
											2025-01-21 17:15:08 +08:00
										 |  |  | 					Name: "namespace", | 
					
						
							| 
									
										
										
										
											2024-12-05 18:58:13 +08:00
										 |  |  | 					Data: &sqlStatsRequest{ | 
					
						
							|  |  |  | 						SQLTemplate: mocks.NewTestingSQLTemplate(), | 
					
						
							|  |  |  | 						Namespace:   "default", | 
					
						
							|  |  |  | 						MinCount:    10, // Not yet used in query (only response filter)
 | 
					
						
							|  |  |  | 					}, | 
					
						
							|  |  |  | 				}, | 
					
						
							| 
									
										
										
										
											2024-12-11 02:37:37 +08:00
										 |  |  | 				{ | 
					
						
							| 
									
										
										
										
											2025-01-21 17:15:08 +08:00
										 |  |  | 					Name: "folder", | 
					
						
							| 
									
										
										
										
											2024-12-11 02:37:37 +08:00
										 |  |  | 					Data: &sqlStatsRequest{ | 
					
						
							|  |  |  | 						SQLTemplate: mocks.NewTestingSQLTemplate(), | 
					
						
							|  |  |  | 						Namespace:   "default", | 
					
						
							|  |  |  | 						Folder:      "folder", | 
					
						
							|  |  |  | 						MinCount:    10, // Not yet used in query (only response filter)
 | 
					
						
							|  |  |  | 					}, | 
					
						
							|  |  |  | 				}, | 
					
						
							| 
									
										
										
										
											2025-01-21 17:15:08 +08:00
										 |  |  | 				{ | 
					
						
							|  |  |  | 					Name: "resource", | 
					
						
							|  |  |  | 					Data: &sqlStatsRequest{ | 
					
						
							|  |  |  | 						SQLTemplate: mocks.NewTestingSQLTemplate(), | 
					
						
							|  |  |  | 						Namespace:   "default", | 
					
						
							|  |  |  | 						Group:       "dashboard.grafana.app", | 
					
						
							|  |  |  | 						Resource:    "dashboards", | 
					
						
							|  |  |  | 					}, | 
					
						
							|  |  |  | 				}, | 
					
						
							| 
									
										
										
										
											2024-12-04 01:20:27 +08:00
										 |  |  | 			}, | 
					
						
							| 
									
										
										
										
											2025-01-09 04:08:10 +08:00
										 |  |  | 			sqlResourceBlobInsert: { | 
					
						
							|  |  |  | 				{ | 
					
						
							|  |  |  | 					Name: "basic", | 
					
						
							|  |  |  | 					Data: &sqlResourceBlobInsertRequest{ | 
					
						
							|  |  |  | 						SQLTemplate: mocks.NewTestingSQLTemplate(), | 
					
						
							|  |  |  | 						Key: &resource.ResourceKey{ | 
					
						
							|  |  |  | 							Namespace: "x", | 
					
						
							|  |  |  | 							Group:     "g", | 
					
						
							|  |  |  | 							Resource:  "r", | 
					
						
							|  |  |  | 							Name:      "name", | 
					
						
							|  |  |  | 						}, | 
					
						
							|  |  |  | 						Now: time.UnixMilli(1704056400000).UTC(), | 
					
						
							|  |  |  | 						Info: &utils.BlobInfo{ | 
					
						
							|  |  |  | 							UID:  "abc", | 
					
						
							|  |  |  | 							Hash: "xxx", | 
					
						
							|  |  |  | 							Size: 1234, | 
					
						
							|  |  |  | 						}, | 
					
						
							|  |  |  | 						ContentType: "text/plain", | 
					
						
							|  |  |  | 						Value:       []byte("abcdefg"), | 
					
						
							|  |  |  | 					}, | 
					
						
							|  |  |  | 				}, | 
					
						
							|  |  |  | 			}, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			sqlResourceBlobQuery: { | 
					
						
							|  |  |  | 				{ | 
					
						
							|  |  |  | 					Name: "basic", | 
					
						
							|  |  |  | 					Data: &sqlResourceBlobQueryRequest{ | 
					
						
							|  |  |  | 						SQLTemplate: mocks.NewTestingSQLTemplate(), | 
					
						
							|  |  |  | 						Key: &resource.ResourceKey{ | 
					
						
							|  |  |  | 							Namespace: "x", | 
					
						
							|  |  |  | 							Group:     "g", | 
					
						
							|  |  |  | 							Resource:  "r", | 
					
						
							|  |  |  | 							Name:      "name", | 
					
						
							|  |  |  | 						}, | 
					
						
							|  |  |  | 						UID: "abc", | 
					
						
							|  |  |  | 					}, | 
					
						
							|  |  |  | 				}, | 
					
						
							|  |  |  | 				{ | 
					
						
							|  |  |  | 					Name: "resource", // NOTE: this returns multiple values
 | 
					
						
							|  |  |  | 					Data: &sqlResourceBlobQueryRequest{ | 
					
						
							|  |  |  | 						SQLTemplate: mocks.NewTestingSQLTemplate(), | 
					
						
							|  |  |  | 						Key: &resource.ResourceKey{ | 
					
						
							|  |  |  | 							Namespace: "x", | 
					
						
							|  |  |  | 							Group:     "g", | 
					
						
							|  |  |  | 							Resource:  "r", | 
					
						
							|  |  |  | 						}, | 
					
						
							|  |  |  | 					}, | 
					
						
							|  |  |  | 				}, | 
					
						
							|  |  |  | 			}, | 
					
						
							| 
									
										
										
										
											2025-01-17 20:54:25 +08:00
										 |  |  | 			sqlResourceHistoryDelete: { | 
					
						
							|  |  |  | 				{ | 
					
						
							|  |  |  | 					Name: "guid", | 
					
						
							|  |  |  | 					Data: &sqlResourceHistoryDeleteRequest{ | 
					
						
							|  |  |  | 						SQLTemplate: mocks.NewTestingSQLTemplate(), | 
					
						
							|  |  |  | 						GUID:        `xxxx`, | 
					
						
							| 
									
										
										
										
											2025-01-21 17:15:08 +08:00
										 |  |  | 						Namespace:   "ns", | 
					
						
							|  |  |  | 					}, | 
					
						
							|  |  |  | 				}, | 
					
						
							|  |  |  | 				{ | 
					
						
							|  |  |  | 					Name: "wipe", | 
					
						
							|  |  |  | 					Data: &sqlResourceHistoryDeleteRequest{ | 
					
						
							|  |  |  | 						SQLTemplate: mocks.NewTestingSQLTemplate(), | 
					
						
							|  |  |  | 						Namespace:   "ns", | 
					
						
							|  |  |  | 						Group:       "ggg", | 
					
						
							|  |  |  | 						Resource:    "rrr", | 
					
						
							| 
									
										
										
										
											2025-01-17 20:54:25 +08:00
										 |  |  | 					}, | 
					
						
							|  |  |  | 				}, | 
					
						
							|  |  |  | 			}, | 
					
						
							| 
									
										
										
										
											2025-02-12 01:57:46 +08:00
										 |  |  | 			sqlResourceInsertFromHistory: { | 
					
						
							|  |  |  | 				{ | 
					
						
							|  |  |  | 					Name: "update", | 
					
						
							|  |  |  | 					Data: &sqlResourceInsertFromHistoryRequest{ | 
					
						
							|  |  |  | 						SQLTemplate: mocks.NewTestingSQLTemplate(), | 
					
						
							|  |  |  | 						Key: &resource.ResourceKey{ | 
					
						
							|  |  |  | 							Namespace: "default", | 
					
						
							|  |  |  | 							Group:     "dashboard.grafana.app", | 
					
						
							|  |  |  | 							Resource:  "dashboards", | 
					
						
							|  |  |  | 						}, | 
					
						
							|  |  |  | 					}, | 
					
						
							|  |  |  | 				}, | 
					
						
							|  |  |  | 			}, | 
					
						
							| 
									
										
										
										
											2024-08-16 19:36:56 +08:00
										 |  |  | 		}}) | 
					
						
							| 
									
										
										
										
											2024-07-18 23:03:18 +08:00
										 |  |  | } |