in internal/cmd/integrations/integrations.go [130:178]
func executeAllTestCases(inputFolder string, name string, version string) (err error) {
if stat, err := os.Stat(inputFolder); stat == nil || (err != nil && !stat.IsDir()) {
return fmt.Errorf("supplied path is not a folder: %v", err)
}
rJSONFiles := regexp.MustCompile(`(\S*)\.json`)
var inputFiles []string
_ = filepath.Walk(inputFolder, func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
if !info.IsDir() {
inputFileName := filepath.Base(path)
if rJSONFiles.MatchString(inputFileName) {
clilog.Info.Printf("Found test case file %s for integration: %s\n", inputFileName, name)
inputFiles = append(inputFiles, inputFileName)
}
}
return nil
})
if len(inputFiles) > 0 {
for _, inputFileName := range inputFiles {
content, err := utils.ReadFile(path.Join(inputFolder, inputFileName))
if err != nil {
return err
}
testDisplayName := strings.TrimSuffix(filepath.Base(inputFileName), filepath.Ext(filepath.Base(inputFileName)))
apiclient.ClientPrintHttpResponse.Set(false)
testCaseID, err := integrations.FindTestCase(name, version, testDisplayName, "")
apiclient.ClientPrintHttpResponse.Set(true)
if err != nil {
return err
}
clilog.Info.Printf("Executing test cases from file %s for integration: %s\n", inputFileName, name)
testCaseResp, err := integrations.ExecuteTestCase(name, version, testCaseID, string(content))
if err != nil {
return err
}
err = integrations.AssertTestExecutionResult(testCaseResp)
if err != nil {
return err
}
}
}
return nil
}