func executeAllTestCases()

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
}