forked from toolshed/abra
.chglog
catalogue
cli
client
cmd
config
app.go
app_test.go
env.go
env_test.go
secret
tagcmp
tests
web
.drone.yml
.envrc.sample
.gitignore
Makefile
README.md
TODO.md
go.mod
go.sum
version
Stack interaction is now under client. App types and functions moved from env to app under config
84 lines
2.0 KiB
Go
84 lines
2.0 KiB
Go
package config
|
|
|
|
import (
|
|
"os"
|
|
"path"
|
|
"reflect"
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
var testFolder = os.ExpandEnv("$PWD/../tests/resources/test_folder")
|
|
var validAbraConf = os.ExpandEnv("$PWD/../tests/resources/valid_abra_config")
|
|
|
|
// make sure these are in alphabetical order
|
|
var tFolders = []string{"folder1", "folder2"}
|
|
var tFiles = []string{"bar", "foo"}
|
|
|
|
var appName = "ecloud"
|
|
var serverName = "evil.corp"
|
|
|
|
var expectedAppEnv = AppEnv{
|
|
"DOMAIN": "ecloud.evil.corp",
|
|
"TYPE": "ecloud",
|
|
}
|
|
|
|
var expectedApp = App{
|
|
Name: appName,
|
|
Type: expectedAppEnv["TYPE"],
|
|
Domain: expectedAppEnv["DOMAIN"],
|
|
Env: expectedAppEnv,
|
|
File: expectedAppFile,
|
|
}
|
|
|
|
var expectedAppFile = AppFile{
|
|
Path: path.Join(validAbraConf, "servers", serverName, appName+".env"),
|
|
Server: serverName,
|
|
}
|
|
|
|
var expectedAppFiles = map[string]AppFile{
|
|
appName: expectedAppFile,
|
|
}
|
|
|
|
// var expectedServerNames = []string{"evil.corp"}
|
|
|
|
func TestGetAllFoldersInDirectory(t *testing.T) {
|
|
folders, err := getAllFoldersInDirectory(testFolder)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if !reflect.DeepEqual(folders, tFolders) {
|
|
t.Fatalf("did not get expected folders. Expected: (%s), Got: (%s)", strings.Join(tFolders, ","), strings.Join(folders, ","))
|
|
}
|
|
}
|
|
|
|
func TestGetAllFilesInDirectory(t *testing.T) {
|
|
files, err := getAllFilesInDirectory(testFolder)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
var fileNames []string
|
|
for _, file := range files {
|
|
fileNames = append(fileNames, file.Name())
|
|
}
|
|
if !reflect.DeepEqual(fileNames, tFiles) {
|
|
t.Fatalf("did not get expected files. Expected: (%s), Got: (%s)", strings.Join(tFiles, ","), strings.Join(fileNames, ","))
|
|
}
|
|
}
|
|
|
|
func TestReadEnv(t *testing.T) {
|
|
env, err := ReadEnv(expectedAppFile.Path)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if !reflect.DeepEqual(env, expectedAppEnv) {
|
|
t.Fatalf(
|
|
"did not get expected application settings. Expected: DOMAIN=%s TYPE=%s; Got: DOMAIN=%s TYPE=%s",
|
|
expectedAppEnv["DOMAIN"],
|
|
expectedAppEnv["TYPE"],
|
|
env["DOMAIN"],
|
|
env["TYPE"],
|
|
)
|
|
}
|
|
}
|