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)
}