2023-01-26 17:52:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								package  main 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								import  ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									"errors" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									"fmt" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									"testing" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									"github.com/stretchr/testify/assert" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									"github.com/stretchr/testify/require" 
							 
						 
					
						
							
								
									
										
										
										
											2023-01-30 22:53:38 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									"github.com/grafana/grafana/pkg/build/config" 
							 
						 
					
						
							
								
									
										
										
										
											2023-01-26 17:52:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								func  Test_getVersionFolder ( t  * testing . T )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									type  args  struct  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										cfg            uploadConfig 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										event          string 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										versionFolder  string 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									tests  :=  [ ] struct  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										name  string 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										args  args 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										err   error 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										{ "tag mode" ,  args { uploadConfig { versionMode :  config . TagMode } ,  "" ,  releaseFolder } ,  nil } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										{ "main mode" ,  args { uploadConfig { versionMode :  config . MainMode } ,  "" ,  mainFolder } ,  nil } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										{ "downstream mode" ,  args { uploadConfig { versionMode :  config . DownstreamMode } ,  "" ,  mainFolder } ,  nil } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										{ "release branch mode" ,  args { uploadConfig { versionMode :  config . ReleaseBranchMode } ,  "" ,  releaseBranchFolder } ,  nil } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										{ "enterprise pro mode" ,  args { uploadConfig { versionMode :  config . Enterprise2Mode } ,  config . Custom ,  releaseFolder } ,  nil } , 
							 
						 
					
						
							
								
									
										
										
										
											2023-04-10 15:05:18 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										{ "cloud mode" ,  args { uploadConfig { versionMode :  config . CloudMode } ,  "" ,  releaseFolder } ,  nil } , 
							 
						 
					
						
							
								
									
										
										
										
											2023-01-26 17:52:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
										{ "unrecognised version mode" ,  args { uploadConfig { versionMode :  "foo" } ,  config . Custom ,  "" } ,  errors . New ( "" ) } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									for  _ ,  tt  :=  range  tests  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										t . Run ( tt . name ,  func ( t  * testing . T )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											versionMode ,  err  :=  getVersionFolder ( tt . args . cfg ,  tt . args . event ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											if  tt . err  !=  nil  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
												require . Error ( t ,  err ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											require . Equal ( t ,  versionMode ,  tt . args . versionFolder ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								func  Test_checkForEnterprise2Edition ( t  * testing . T )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									type  args  struct  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										releaseModeConfig  * config . BuildConfig 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										event              string 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									tests  :=  [ ] struct  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										name  string 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										args  args 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										want  string 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										err   error 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										{ "event is not custom" ,  args { releaseModeConfig :  & config . BuildConfig { Buckets :  config . Buckets { ArtifactsEnterprise2 :  "dummy" } } } ,  "dummy" ,  nil } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										{ "event is not custom and string is empty" ,  args { releaseModeConfig :  & config . BuildConfig { Buckets :  config . Buckets { ArtifactsEnterprise2 :  "" } } } ,  "" ,  fmt . Errorf ( "enterprise2 bucket var doesn't exist" ) } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										{ "event is custom" ,  args { releaseModeConfig :  nil ,  event :  "custom" } ,  "grafana-downloads-enterprise2" ,  nil } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									for  _ ,  tt  :=  range  tests  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										t . Run ( tt . name ,  func ( t  * testing . T )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											got ,  err  :=  bucketForEnterprise2 ( tt . args . releaseModeConfig ,  tt . args . event ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											if  tt . err  !=  nil  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
												require . Error ( t ,  err ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											assert . Equalf ( t ,  tt . want ,  got ,  "bucketForEnterprise2(%v, %v)" ,  tt . args . releaseModeConfig ,  tt . args . event ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								}