test: use _test to avoid cyclic imports

This commit is contained in:
decentral1se 2023-10-04 02:29:39 +02:00
parent d11ad61efb
commit 970ae0fc4e
Signed by: decentral1se
GPG Key ID: 03789458B3D0C410
3 changed files with 52 additions and 45 deletions

View File

@ -149,7 +149,7 @@ func (a ByName) Less(i, j int) bool {
return strings.ToLower(a[i].Name) < strings.ToLower(a[j].Name) return strings.ToLower(a[i].Name) < strings.ToLower(a[j].Name)
} }
func readAppEnvFile(appFile AppFile, name AppName) (App, error) { func ReadAppEnvFile(appFile AppFile, name AppName) (App, error) {
env, err := ReadEnv(appFile.Path) env, err := ReadEnv(appFile.Path)
if err != nil { if err != nil {
return App{}, fmt.Errorf("env file for %s couldn't be read: %s", name, err.Error()) return App{}, fmt.Errorf("env file for %s couldn't be read: %s", name, err.Error())
@ -157,7 +157,7 @@ func readAppEnvFile(appFile AppFile, name AppName) (App, error) {
logrus.Debugf("read env %s from %s", env, appFile.Path) logrus.Debugf("read env %s from %s", env, appFile.Path)
app, err := newApp(env, name, appFile) app, err := NewApp(env, name, appFile)
if err != nil { if err != nil {
return App{}, fmt.Errorf("env file for %s has issues: %s", name, err.Error()) return App{}, fmt.Errorf("env file for %s has issues: %s", name, err.Error())
} }
@ -165,8 +165,8 @@ func readAppEnvFile(appFile AppFile, name AppName) (App, error) {
return app, nil return app, nil
} }
// newApp creates new App object // NewApp creates new App object
func newApp(env AppEnv, name string, appFile AppFile) (App, error) { func NewApp(env AppEnv, name string, appFile AppFile) (App, error) {
domain := env["DOMAIN"] domain := env["DOMAIN"]
recipe, exists := env["RECIPE"] recipe, exists := env["RECIPE"]
@ -232,7 +232,7 @@ func GetApp(apps AppFiles, name AppName) (App, error) {
return App{}, fmt.Errorf("cannot find app with name %s", name) return App{}, fmt.Errorf("cannot find app with name %s", name)
} }
app, err := readAppEnvFile(appFile, name) app, err := ReadAppEnvFile(appFile, name)
if err != nil { if err != nil {
return App{}, err return App{}, err
} }

View File

@ -1,36 +1,38 @@
package config package config_test
import ( import (
"reflect" "reflect"
"testing" "testing"
"coopcloud.tech/abra/pkg/config"
) )
func TestNewApp(t *testing.T) { func TestNewApp(t *testing.T) {
app, err := newApp(expectedAppEnv, appName, expectedAppFile) app, err := config.NewApp(ExpectedAppEnv, AppName, ExpectedAppFile)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
if !reflect.DeepEqual(app, expectedApp) { if !reflect.DeepEqual(app, ExpectedApp) {
t.Fatalf("did not get expected app type. Expected: %s; Got: %s", app, expectedApp) t.Fatalf("did not get expected app type. Expected: %s; Got: %s", app, ExpectedApp)
} }
} }
func TestReadAppEnvFile(t *testing.T) { func TestReadAppEnvFile(t *testing.T) {
app, err := readAppEnvFile(expectedAppFile, appName) app, err := config.ReadAppEnvFile(ExpectedAppFile, AppName)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
if !reflect.DeepEqual(app, expectedApp) { if !reflect.DeepEqual(app, ExpectedApp) {
t.Fatalf("did not get expected app type. Expected: %s; Got: %s", app, expectedApp) t.Fatalf("did not get expected app type. Expected: %s; Got: %s", app, ExpectedApp)
} }
} }
func TestGetApp(t *testing.T) { func TestGetApp(t *testing.T) {
app, err := GetApp(expectedAppFiles, appName) app, err := config.GetApp(ExpectedAppFiles, AppName)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
if !reflect.DeepEqual(app, expectedApp) { if !reflect.DeepEqual(app, ExpectedApp) {
t.Fatalf("did not get expected app type. Expected: %s; Got: %s", app, expectedApp) t.Fatalf("did not get expected app type. Expected: %s; Got: %s", app, ExpectedApp)
} }
} }

View File

@ -1,60 +1,65 @@
package config package config_test
import ( import (
"fmt"
"os" "os"
"path" "path"
"reflect" "reflect"
"strings" "strings"
"testing" "testing"
"coopcloud.tech/abra/pkg/catalogue"
"coopcloud.tech/abra/pkg/config"
"coopcloud.tech/abra/pkg/recipe"
) )
var testFolder = os.ExpandEnv("$PWD/../../tests/resources/test_folder") var TestFolder = os.ExpandEnv("$PWD/../../tests/resources/test_folder")
var validAbraConf = os.ExpandEnv("$PWD/../../tests/resources/valid_abra_config") var ValidAbraConf = os.ExpandEnv("$PWD/../../tests/resources/valid_abra_config")
// make sure these are in alphabetical order // make sure these are in alphabetical order
var tFolders = []string{"folder1", "folder2"} var TFolders = []string{"folder1", "folder2"}
var tFiles = []string{"bar.env", "foo.env"} var TFiles = []string{"bar.env", "foo.env"}
var appName = "ecloud" var AppName = "ecloud"
var serverName = "evil.corp" var ServerName = "evil.corp"
var expectedAppEnv = AppEnv{ var ExpectedAppEnv = config.AppEnv{
"DOMAIN": "ecloud.evil.corp", "DOMAIN": "ecloud.evil.corp",
"RECIPE": "ecloud", "RECIPE": "ecloud",
} }
var expectedApp = App{ var ExpectedApp = config.App{
Name: appName, Name: AppName,
Recipe: expectedAppEnv["RECIPE"], Recipe: ExpectedAppEnv["RECIPE"],
Domain: expectedAppEnv["DOMAIN"], Domain: ExpectedAppEnv["DOMAIN"],
Env: expectedAppEnv, Env: ExpectedAppEnv,
Path: expectedAppFile.Path, Path: ExpectedAppFile.Path,
Server: expectedAppFile.Server, Server: ExpectedAppFile.Server,
} }
var expectedAppFile = AppFile{ var ExpectedAppFile = config.AppFile{
Path: path.Join(validAbraConf, "servers", serverName, appName+".env"), Path: path.Join(ValidAbraConf, "servers", ServerName, AppName+".env"),
Server: serverName, Server: ServerName,
} }
var expectedAppFiles = map[string]AppFile{ var ExpectedAppFiles = map[string]config.AppFile{
appName: expectedAppFile, AppName: ExpectedAppFile,
} }
// var expectedServerNames = []string{"evil.corp"} // var expectedServerNames = []string{"evil.corp"}
func TestGetAllFoldersInDirectory(t *testing.T) { func TestGetAllFoldersInDirectory(t *testing.T) {
folders, err := GetAllFoldersInDirectory(testFolder) folders, err := config.GetAllFoldersInDirectory(TestFolder)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
if !reflect.DeepEqual(folders, tFolders) { if !reflect.DeepEqual(folders, TFolders) {
t.Fatalf("did not get expected folders. Expected: (%s), Got: (%s)", strings.Join(tFolders, ","), strings.Join(folders, ",")) t.Fatalf("did not get expected folders. Expected: (%s), Got: (%s)", strings.Join(TFolders, ","), strings.Join(folders, ","))
} }
} }
func TestGetAllFilesInDirectory(t *testing.T) { func TestGetAllFilesInDirectory(t *testing.T) {
files, err := GetAllFilesInDirectory(testFolder) files, err := config.GetAllFilesInDirectory(TestFolder)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
@ -62,21 +67,21 @@ func TestGetAllFilesInDirectory(t *testing.T) {
for _, file := range files { for _, file := range files {
fileNames = append(fileNames, file.Name()) fileNames = append(fileNames, file.Name())
} }
if !reflect.DeepEqual(fileNames, tFiles) { if !reflect.DeepEqual(fileNames, TFiles) {
t.Fatalf("did not get expected files. Expected: (%s), Got: (%s)", strings.Join(tFiles, ","), strings.Join(fileNames, ",")) t.Fatalf("did not get expected files. Expected: (%s), Got: (%s)", strings.Join(TFiles, ","), strings.Join(fileNames, ","))
} }
} }
func TestReadEnv(t *testing.T) { func TestReadEnv(t *testing.T) {
env, err := ReadEnv(expectedAppFile.Path) env, err := config.ReadEnv(ExpectedAppFile.Path)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
if !reflect.DeepEqual(env, expectedAppEnv) { if !reflect.DeepEqual(env, ExpectedAppEnv) {
t.Fatalf( t.Fatalf(
"did not get expected application settings. Expected: DOMAIN=%s RECIPE=%s; Got: DOMAIN=%s RECIPE=%s", "did not get expected application settings. Expected: DOMAIN=%s RECIPE=%s; Got: DOMAIN=%s RECIPE=%s",
expectedAppEnv["DOMAIN"], ExpectedAppEnv["DOMAIN"],
expectedAppEnv["RECIPE"], ExpectedAppEnv["RECIPE"],
env["DOMAIN"], env["DOMAIN"],
env["RECIPE"], env["RECIPE"],
) )