| 
									
										
										
										
											2024-11-21 13:53:25 +08:00
										 |  |  | package resource | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import ( | 
					
						
							|  |  |  | 	"context" | 
					
						
							|  |  |  | 	"encoding/json" | 
					
						
							|  |  |  | 	"fmt" | 
					
						
							|  |  |  | 	"os" | 
					
						
							|  |  |  | 	"testing" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	"github.com/stretchr/testify/require" | 
					
						
							| 
									
										
										
										
											2025-05-16 03:36:52 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	"github.com/grafana/grafana/pkg/storage/unified/resourcepb" | 
					
						
							| 
									
										
										
										
											2024-11-21 13:53:25 +08:00
										 |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func TestStandardDocumentBuilder(t *testing.T) { | 
					
						
							|  |  |  | 	ctx := context.Background() | 
					
						
							| 
									
										
										
										
											2024-11-22 21:44:06 +08:00
										 |  |  | 	builder := StandardDocumentBuilder() | 
					
						
							| 
									
										
										
										
											2024-11-21 13:53:25 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	body, err := os.ReadFile("testdata/playlist-resource.json") | 
					
						
							|  |  |  | 	require.NoError(t, err) | 
					
						
							| 
									
										
										
										
											2025-05-16 03:36:52 +08:00
										 |  |  | 	doc, err := builder.BuildDocument(ctx, &resourcepb.ResourceKey{ | 
					
						
							| 
									
										
										
										
											2024-11-21 13:53:25 +08:00
										 |  |  | 		Namespace: "default", | 
					
						
							|  |  |  | 		Group:     "playlists.grafana.app", | 
					
						
							|  |  |  | 		Resource:  "playlists", | 
					
						
							|  |  |  | 		Name:      "test1", | 
					
						
							|  |  |  | 	}, 10, body) | 
					
						
							|  |  |  | 	require.NoError(t, err) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	jj, _ := json.MarshalIndent(doc, "", "  ") | 
					
						
							|  |  |  | 	fmt.Printf("%s\n", string(jj)) | 
					
						
							|  |  |  | 	require.JSONEq(t, `{ | 
					
						
							|  |  |  | 		"key": { | 
					
						
							|  |  |  | 			"namespace": "default", | 
					
						
							|  |  |  | 			"group": "playlists.grafana.app", | 
					
						
							|  |  |  | 			"resource": "playlists", | 
					
						
							|  |  |  | 			"name": "test1" | 
					
						
							|  |  |  | 		}, | 
					
						
							| 
									
										
										
										
											2025-03-05 14:54:20 +08:00
										 |  |  | 		"name": "test1", | 
					
						
							| 
									
										
										
										
											2024-11-21 13:53:25 +08:00
										 |  |  | 		"rv": 10, | 
					
						
							| 
									
										
										
										
											2025-03-11 00:48:53 +08:00
										 |  |  | 		"title": "Test Playlist from Unified Storage", | 
					
						
							|  |  |  | 		"title_ngram": "Test Playlist from Unified Storage", | 
					
						
							|  |  |  | 		"title_phrase": "test playlist from unified storage", | 
					
						
							| 
									
										
										
										
											2024-11-21 13:53:25 +08:00
										 |  |  | 		"created": 1717236672000, | 
					
						
							|  |  |  | 		"createdBy": "user:ABC", | 
					
						
							|  |  |  | 		"updatedBy": "user:XYZ", | 
					
						
							| 
									
										
										
										
											2025-03-05 14:54:20 +08:00
										 |  |  | 		"manager": { | 
					
						
							|  |  |  | 			"kind": "repo", | 
					
						
							|  |  |  | 			"id": "something" | 
					
						
							|  |  |  | 		}, | 
					
						
							| 
									
										
										
										
											2025-03-11 00:48:53 +08:00
										 |  |  | 		"managedBy": "repo:something", | 
					
						
							| 
									
										
										
										
											2025-03-05 14:54:20 +08:00
										 |  |  | 		"source": { | 
					
						
							| 
									
										
										
										
											2025-01-21 17:38:14 +08:00
										 |  |  | 			"path": "path/in/system.json", | 
					
						
							| 
									
										
										
										
											2025-03-05 14:54:20 +08:00
										 |  |  | 			"checksum": "xyz" | 
					
						
							| 
									
										
										
										
											2024-11-21 13:53:25 +08:00
										 |  |  | 		} | 
					
						
							| 
									
										
										
										
											2025-03-05 14:54:20 +08:00
										 |  |  | 	}`, string(jj)) | 
					
						
							| 
									
										
										
										
											2024-11-21 13:53:25 +08:00
										 |  |  | } |