109 lines
2.5 KiB
Go
109 lines
2.5 KiB
Go
package config_test
|
|
|
|
import (
|
|
"fmt"
|
|
"reflect"
|
|
"testing"
|
|
|
|
"coopcloud.tech/abra/pkg/config"
|
|
"coopcloud.tech/abra/pkg/recipe"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestNewApp(t *testing.T) {
|
|
app, err := config.NewApp(ExpectedAppEnv, AppName, ExpectedAppFile)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if !reflect.DeepEqual(app, ExpectedApp) {
|
|
t.Fatalf("did not get expected app type. Expected: %s; Got: %s", app, ExpectedApp)
|
|
}
|
|
}
|
|
|
|
func TestReadAppEnvFile(t *testing.T) {
|
|
app, err := config.ReadAppEnvFile(ExpectedAppFile, AppName)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if !reflect.DeepEqual(app, ExpectedApp) {
|
|
t.Fatalf("did not get expected app type. Expected: %s; Got: %s", app, ExpectedApp)
|
|
}
|
|
}
|
|
|
|
func TestGetApp(t *testing.T) {
|
|
app, err := config.GetApp(ExpectedAppFiles, AppName)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if !reflect.DeepEqual(app, ExpectedApp) {
|
|
t.Fatalf("did not get expected app type. Expected: %s; Got: %s", app, ExpectedApp)
|
|
}
|
|
}
|
|
|
|
func TestGetComposeFiles(t *testing.T) {
|
|
offline := true
|
|
r, err := recipe.Get("abra-integration-test-recipe", offline)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
tests := []struct {
|
|
appEnv map[string]string
|
|
composeFiles []string
|
|
}{
|
|
{
|
|
map[string]string{},
|
|
[]string{
|
|
fmt.Sprintf("%s/%s/compose.yml", config.RECIPES_DIR, r.Name),
|
|
},
|
|
},
|
|
{
|
|
map[string]string{"COMPOSE_FILE": "compose.yml"},
|
|
[]string{
|
|
fmt.Sprintf("%s/%s/compose.yml", config.RECIPES_DIR, r.Name),
|
|
},
|
|
},
|
|
{
|
|
map[string]string{"COMPOSE_FILE": "compose.extra_secret.yml"},
|
|
[]string{
|
|
fmt.Sprintf("%s/%s/compose.extra_secret.yml", config.RECIPES_DIR, r.Name),
|
|
},
|
|
},
|
|
{
|
|
map[string]string{"COMPOSE_FILE": "compose.yml:compose.extra_secret.yml"},
|
|
[]string{
|
|
fmt.Sprintf("%s/%s/compose.yml", config.RECIPES_DIR, r.Name),
|
|
fmt.Sprintf("%s/%s/compose.extra_secret.yml", config.RECIPES_DIR, r.Name),
|
|
},
|
|
},
|
|
}
|
|
|
|
for _, test := range tests {
|
|
composeFiles, err := config.GetComposeFiles(r.Name, test.appEnv)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
assert.Equal(t, composeFiles, test.composeFiles)
|
|
}
|
|
}
|
|
|
|
func TestGetComposeFilesError(t *testing.T) {
|
|
offline := true
|
|
r, err := recipe.Get("abra-integration-test-recipe", offline)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
tests := []struct{ appEnv map[string]string }{
|
|
{map[string]string{"COMPOSE_FILE": "compose.yml::compose.foo.yml"}},
|
|
{map[string]string{"COMPOSE_FILE": "doesnt.exist.yml"}},
|
|
}
|
|
|
|
for _, test := range tests {
|
|
_, err := config.GetComposeFiles(r.Name, test.appEnv)
|
|
if err == nil {
|
|
t.Fatalf("should have failed: %v", test.appEnv)
|
|
}
|
|
}
|
|
}
|