All checks were successful
continuous-integration/drone/push Build is passing
See #792
95 lines
2.1 KiB
Go
95 lines
2.1 KiB
Go
package test
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
"os"
|
|
"path"
|
|
|
|
gitPkg "coopcloud.tech/abra/pkg/git"
|
|
"git.coopcloud.tech/toolshed/godotenv"
|
|
)
|
|
|
|
var (
|
|
AppName = "test_app.example.com"
|
|
ServerName = "test_server"
|
|
RecipeName = "test_recipe"
|
|
|
|
TFiles = []string{"bar.env", "foo.env"}
|
|
TFolders = []string{"dir1", "dir2"}
|
|
|
|
ServerDir = os.ExpandEnv("$ABRA_DIR/servers/test_server")
|
|
RecipeDir = os.ExpandEnv("$ABRA_DIR/recipes/test_recipe")
|
|
TestDir = os.ExpandEnv("$PWD/../../tests/resources/test_dir")
|
|
|
|
AppEnvPath = path.Join(ServerDir, fmt.Sprintf("%s.env", AppName))
|
|
|
|
AbraTestRecipe = "abra-test-recipe"
|
|
)
|
|
|
|
func Teardown() {
|
|
abraDir := os.ExpandEnv("$ABRA_DIR")
|
|
if abraDir == fmt.Sprintf("%s/.abra", os.ExpandEnv("$HOME")) {
|
|
log.Fatal("set $ABRA_DIR before running the test suite")
|
|
}
|
|
|
|
if err := os.RemoveAll(abraDir); err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
}
|
|
|
|
func Setup() {
|
|
Teardown()
|
|
|
|
if err := os.Mkdir(os.ExpandEnv("$ABRA_DIR"), 0764); err != nil {
|
|
if !os.IsExist(err) {
|
|
log.Fatal(err)
|
|
}
|
|
}
|
|
|
|
if err := os.Mkdir(os.ExpandEnv("$ABRA_DIR/servers"), 0700); err != nil {
|
|
if !os.IsExist(err) {
|
|
log.Fatal(err)
|
|
}
|
|
}
|
|
|
|
if err := os.Mkdir(os.ExpandEnv("$ABRA_DIR/recipes"), 0764); err != nil {
|
|
if !os.IsExist(err) {
|
|
log.Fatal(err)
|
|
}
|
|
}
|
|
|
|
serverSrcDir := os.ExpandEnv("$PWD/../../tests/resources/test_server")
|
|
serverDestDir := os.ExpandEnv("$ABRA_DIR/servers/test_server")
|
|
if err := os.CopyFS(serverDestDir, os.DirFS(serverSrcDir)); err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
recipeSrcDir := os.ExpandEnv("$PWD/../../tests/resources/test_recipe")
|
|
recipeDestDir := os.ExpandEnv("$ABRA_DIR/recipes/test_recipe")
|
|
if err := os.CopyFS(recipeDestDir, os.DirFS(recipeSrcDir)); err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
if err := gitPkg.Init(recipeDestDir, true, "tester", "helo@coopcloud.tech"); err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
}
|
|
|
|
func AddEnv(envKey, envValue string) error {
|
|
filePath := os.ExpandEnv(fmt.Sprintf("$ABRA_DIR/servers/%s/%s.env", ServerName, AppName))
|
|
|
|
envVars, _, err := godotenv.Read(filePath)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
envVars[envKey] = envValue
|
|
|
|
if err := godotenv.Write(envVars, filePath); err != nil {
|
|
return err
|
|
}
|
|
|
|
return nil
|
|
}
|