func convertKitchenTests()

in cli/bptest/convert.go [46:96]


func convertKitchenTests() error {
	cwd, err := os.Getwd()
	if err != nil {
		return err
	}
	// write go mod
	goMod, err := getTmplFileContents(goModFilename)
	if err != nil {
		return err
	}
	err = writeFile(path.Join(intTestPath, goModFilename), fmt.Sprintf(goMod, path.Base(cwd)))
	if err != nil {
		return fmt.Errorf("error writing go mod file: %w", err)
	}
	// write discover test
	discoverTest, err := getTmplFileContents(discoverTestFilename)
	if err != nil {
		return err
	}
	err = writeFile(path.Join(intTestPath, discoverTestFilename), discoverTest)
	if err != nil {
		return fmt.Errorf("error writing discover_test.go: %w", err)
	}
	testDirs, err := getCurrentTestDirs()
	if err != nil {
		return fmt.Errorf("error getting current test dirs: %w", err)
	}
	for _, dir := range testDirs {
		err = convertTest(path.Join(intTestPath, dir))
		if err != nil {
			return fmt.Errorf("error converting %s: %w", dir, err)
		}
	}
	// remove kitchen
	err = os.Remove(".kitchen.yml")
	if err != nil {
		return fmt.Errorf("error removing .kitchen.yml: %w", err)
	}
	// convert build file
	// We use build to identify commands to update and update the commands in the buildFile.
	// This minimizes unnecessary diffs in build yaml due to round tripping.
	build, buildFile, err := getBuildFromFile(intTestBuildFilePath)
	if err != nil {
		return fmt.Errorf("error unmarshalling %s: %w", intTestBuildFilePath, err)
	}
	newBuildFile, err := transformBuild(build, buildFile)
	if err != nil {
		return fmt.Errorf("error transforming buildfile: %w", err)
	}
	return writeFile(intTestBuildFilePath, newBuildFile)
}