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.env", "foo.env"} 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, Path: expectedAppFile.Path, Server: expectedAppFile.Server, } 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"], ) } }