func generateTestcases()

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
}