@@ -27,6 +27,18 @@ func TestVersions(t *testing.T) {
2727	assert .Equal (t , []string {"2023-01-01" , "2023-02-01" }, versions )
2828}
2929
30+ func  TestVersions_PrivatePreview (t  * testing.T ) {
31+ 	versions , err  :=  ExtractVersionsWithEnv (NewVersionedResponses (t ), "dev" )
32+ 	require .NoError (t , err )
33+ 	assert .ElementsMatch (t , []string {"2023-01-01" , "2023-02-01" , "private-preview-info-resource" , "preview" }, versions )
34+ }
35+ 
36+ func  TestVersions_PublicPreview (t  * testing.T ) {
37+ 	versions , err  :=  ExtractVersionsWithEnv (NewVersionedResponses (t ), "qa" )
38+ 	require .NoError (t , err )
39+ 	assert .Equal (t , []string {"2023-01-01" , "2023-02-01" , "preview" }, versions )
40+ }
41+ 
3042func  NewVersionedResponses (t  * testing.T ) * openapi3.T  {
3143	t .Helper ()
3244	inputPath  :=  & openapi3.Paths {}
@@ -83,6 +95,83 @@ func NewVersionedResponses(t *testing.T) *openapi3.T {
8395		},
8496	})
8597
98+ 	extensionThree  :=  map [string ]any {
99+ 		"x-xgen-version" : "preview" ,
100+ 		"x-xgen-preview" : map [string ]any {
101+ 			"name" : "info-resource" ,
102+ 		},
103+ 	}
104+ 
105+ 	responseThree  :=  & openapi3.ResponseRef {
106+ 		Value : & openapi3.Response {
107+ 			Extensions : nil ,
108+ 			Content : map [string ]* openapi3.MediaType {
109+ 				"application/vnd.atlas.preview+json" : {
110+ 					Extensions : extensionThree ,
111+ 				},
112+ 			},
113+ 		},
114+ 	}
115+ 
116+ 	hiddenEnvExtension  :=  map [string ]any {
117+ 		"x-xgen-hidden-env" : map [string ]any {
118+ 			"envs" : "qa,prod" ,
119+ 		},
120+ 	}
121+ 
122+ 	responsesThree  :=  & openapi3.Responses {}
123+ 	responsesThree .Set ("200" , responseThree )
124+ 
125+ 	inputPath .Set ("pathBase3" , & openapi3.PathItem {
126+ 		Extensions :  hiddenEnvExtension ,
127+ 		Ref :         "" ,
128+ 		Summary :     "pathBase3" ,
129+ 		Description : "pathBase3Description" ,
130+ 		Delete : & openapi3.Operation {
131+ 			Tags :      []string {"tag1" },
132+ 			Responses : responsesThree ,
133+ 		},
134+ 	})
135+ 
136+ 	extensionFour  :=  map [string ]any {
137+ 		"x-xgen-version" : "preview" ,
138+ 		"x-xgen-preview" : map [string ]any {
139+ 			"public" : "true" ,
140+ 		},
141+ 	}
142+ 
143+ 	responseFour  :=  & openapi3.ResponseRef {
144+ 		Value : & openapi3.Response {
145+ 			Extensions : nil ,
146+ 			Content : map [string ]* openapi3.MediaType {
147+ 				"application/vnd.atlas.preview+json" : {
148+ 					Extensions : extensionFour ,
149+ 				},
150+ 			},
151+ 		},
152+ 	}
153+ 
154+ 	hiddenEnvExtensionTwo  :=  map [string ]any {
155+ 		"x-xgen-hidden-env" : map [string ]any {
156+ 			"envs" : "prod" ,
157+ 		},
158+ 	}
159+ 
160+ 	responsesFour  :=  & openapi3.Responses {}
161+ 	responsesFour .Set ("200" , responseFour )
162+ 
163+ 	inputPath .Set ("pathBase4" , & openapi3.PathItem {
164+ 		Extensions :  hiddenEnvExtensionTwo ,
165+ 		Ref :         "" ,
166+ 		Summary :     "pathBase4" ,
167+ 		Description : "pathBase4Description" ,
168+ 		Post : & openapi3.Operation {
169+ 
170+ 			Tags :      []string {"tag1" },
171+ 			Responses : responsesFour ,
172+ 		},
173+ 	})
174+ 
86175	oas  :=  & openapi3.T {
87176		Paths : inputPath ,
88177	}
0 commit comments