mirror of https://github.com/kubevela/kubevela.git
				
				
				
			
		
			
	
	
		
			62 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
	
		
		
			
		
	
	
			62 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
	
|  | /* | ||
|  | Copyright 2022 The KubeVela Authors. | ||
|  | 
 | ||
|  | Licensed under the Apache License, Version 2.0 (the "License"); | ||
|  | you may not use this file except in compliance with the License. | ||
|  | You may obtain a copy of the License at | ||
|  | 
 | ||
|  | 	http://www.apache.org/licenses/LICENSE-2.0
 | ||
|  | 
 | ||
|  | Unless required by applicable law or agreed to in writing, software | ||
|  | distributed under the License is distributed on an "AS IS" BASIS, | ||
|  | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
|  | See the License for the specific language governing permissions and | ||
|  | limitations under the License. | ||
|  | */ | ||
|  | 
 | ||
|  | package script | ||
|  | 
 | ||
|  | import ( | ||
|  | 	"os" | ||
|  | 	"path/filepath" | ||
|  | 	"testing" | ||
|  | 
 | ||
|  | 	"github.com/getkin/kin-openapi/openapi3" | ||
|  | 	"gotest.tools/assert" | ||
|  | 
 | ||
|  | 	"github.com/oam-dev/kubevela/pkg/cue/process" | ||
|  | ) | ||
|  | 
 | ||
|  | const TestDir = "testdata" | ||
|  | 
 | ||
|  | func TestFixOpenAPISchema(t *testing.T) { | ||
|  | 	cases := map[string]struct { | ||
|  | 		inputFile string | ||
|  | 		fixedFile string | ||
|  | 	}{ | ||
|  | 		"StandardWorkload": { | ||
|  | 			inputFile: "webservice.json", | ||
|  | 			fixedFile: "webserviceFixed.json", | ||
|  | 		}, | ||
|  | 		"ShortTagJson": { | ||
|  | 			inputFile: "shortTagSchema.json", | ||
|  | 			fixedFile: "shortTagSchemaFixed.json", | ||
|  | 		}, | ||
|  | 		"EmptyArrayJson": { | ||
|  | 			inputFile: "arrayWithoutItemsSchema.json", | ||
|  | 			fixedFile: "arrayWithoutItemsSchemaFixed.json", | ||
|  | 		}, | ||
|  | 	} | ||
|  | 
 | ||
|  | 	for name, tc := range cases { | ||
|  | 		t.Run(name, func(t *testing.T) { | ||
|  | 			swagger, _ := openapi3.NewLoader().LoadFromFile(filepath.Join(TestDir, tc.inputFile)) | ||
|  | 			schema := swagger.Components.Schemas[process.ParameterFieldName].Value | ||
|  | 			FixOpenAPISchema("", schema) | ||
|  | 			fixedSchema, _ := schema.MarshalJSON() | ||
|  | 			expectedSchema, _ := os.ReadFile(filepath.Join(TestDir, tc.fixedFile)) | ||
|  | 			assert.Equal(t, string(fixedSchema), string(expectedSchema)) | ||
|  | 		}) | ||
|  | 	} | ||
|  | } |