in internal/cmd/integrations/scaffold.go [488:534]
func generateTestcases(testcases []byte, integrationBody []byte, folder string) error {
var data []map[string]interface{}
var testNames []string
err := json.Unmarshal(testcases, &data)
if err != nil {
return fmt.Errorf("Error decoding JSON: %s", err)
}
for _, t := range data {
jsonData, err := json.Marshal(t)
if err != nil {
return fmt.Errorf("Error encoding JSON: %s", err)
}
name, err := getTestCaseName(t)
if err != nil {
return fmt.Errorf("unable to get name: %v", err)
}
//check for duplicates
if !slices.Contains(testNames, name) {
testNames = append(testNames, name)
} else {
clilog.Warning.Println("two or more test cases have the same display name. only the most recent one will be used")
}
jsonData, err = apiclient.PrettifyJson(jsonData)
if err != nil {
return err
}
if err = apiclient.WriteByteArrayToFile(
path.Join(folder, "tests", name+jsonExt),
false,
jsonData); err != nil {
return err
}
testConfig, _ := integrations.GetInputParameters(integrationBody)
if err = apiclient.WriteByteArrayToFile(
path.Join(folder, "test-configs", name+jsonExt),
false,
testConfig); err != nil {
return err
}
}
return nil
}