chore: restructure unit testing resources

This commit is contained in:
2025-08-25 11:35:56 +02:00
parent 0c708f6592
commit a2940a84b3
10 changed files with 77 additions and 54 deletions

View File

@ -1,6 +1,7 @@
package test package test
import ( import (
"fmt"
"os" "os"
"path" "path"
@ -11,70 +12,68 @@ import (
) )
var ( var (
TestFolder = os.ExpandEnv("$PWD/../../tests/resources/test_folder") AppName = "test_app.example.com"
ValidAbraConf = os.ExpandEnv("$PWD/../../tests/resources/valid_abra_config") ServerName = "test_server"
)
// make sure these are in alphabetical order
var (
TFolders = []string{"folder1", "folder2"}
TFiles = []string{"bar.env", "foo.env"} TFiles = []string{"bar.env", "foo.env"}
) TFolders = []string{"dir1", "dir2"}
TestServer = os.ExpandEnv("$PWD/../../tests/resources/test_server")
TestDir = os.ExpandEnv("$PWD/../../tests/resources/test_dir")
var ( ExpectedAppEnv = envfile.AppEnv{
AppName = "ecloud" "DOMAIN": "test_app.example.com",
ServerName = "evil.corp" "RECIPE": "test_recipe",
) }
var ExpectedAppEnv = envfile.AppEnv{ ExpectedApp = appPkg.App{
"DOMAIN": "ecloud.evil.corp",
"RECIPE": "ecloud",
"SMTP_AUTHTYPE": "login",
}
var ExpectedApp = appPkg.App{
Name: AppName, Name: AppName,
Recipe: recipe.Get(ExpectedAppEnv["RECIPE"]), Recipe: recipe.Get(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 = appPkg.AppFile{ ExpectedAppFile = appPkg.AppFile{
Path: path.Join(ValidAbraConf, "servers", ServerName, AppName+".env"), Path: path.Join(TestServer, fmt.Sprintf("%s.env", AppName)),
Server: ServerName, Server: ServerName,
} }
var ExpectedAppFiles = map[string]appPkg.AppFile{ ExpectedAppFiles = map[string]appPkg.AppFile{
AppName: ExpectedAppFile, AppName: ExpectedAppFile,
} }
)
// RmServerAppRecipe deletes the test server / app / recipe.
func RmServerAppRecipe() { func RmServerAppRecipe() {
testAppLink := os.ExpandEnv("$HOME/.abra/servers/foo.com") testAppLink := os.ExpandEnv("$ABRA_DIR/servers/test_server")
if err := os.Remove(testAppLink); err != nil { os.Remove(testAppLink)
log.Fatal(err)
}
testRecipeLink := os.ExpandEnv("$HOME/.abra/recipes/test") testRecipeLink := os.ExpandEnv("$ABRA_DIR/recipes/test_recipe")
if err := os.Remove(testRecipeLink); err != nil { os.Remove(testRecipeLink)
log.Fatal(err)
}
} }
// MkServerAppRecipe symlinks the test server / app / recipe.
func MkServerAppRecipe() { func MkServerAppRecipe() {
RmServerAppRecipe() RmServerAppRecipe()
testAppDir := os.ExpandEnv("$PWD/../../tests/resources/testapp") if err := os.Mkdir(os.ExpandEnv("$ABRA_DIR/servers"), 0700); err != nil {
testAppLink := os.ExpandEnv("$HOME/.abra/servers/foo.com") 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)
}
}
testAppDir := os.ExpandEnv("$PWD/../../tests/resources/test_server")
testAppLink := os.ExpandEnv("$ABRA_DIR/servers/test_server")
if err := os.Symlink(testAppDir, testAppLink); err != nil { if err := os.Symlink(testAppDir, testAppLink); err != nil {
log.Fatal(err) log.Fatal(err)
} }
testRecipeDir := os.ExpandEnv("$PWD/../../tests/resources/testrecipe") testRecipeDir := os.ExpandEnv("$PWD/../../tests/resources/test_recipe")
testRecipeLink := os.ExpandEnv("$HOME/.abra/recipes/test") testRecipeLink := os.ExpandEnv("$ABRA_DIR/recipes/test_recipe")
if err := os.Symlink(testRecipeDir, testRecipeLink); err != nil { if err := os.Symlink(testRecipeDir, testRecipeLink); err != nil {
log.Fatal(err) log.Fatal(err)
} }

View File

@ -0,0 +1,6 @@
RECIPE=test_recipe
DOMAIN=test_app.example.com
# NOTE(d1): ensure commented out TIMEOUT doesn't get included
# see TestReadEnv in ./pkg/envfile
# TIMEOUT=120

View File

@ -0,0 +1,15 @@
---
version: "3.8"
services:
app:
image: nginx:1.29.0
networks:
- proxy
deploy:
labels:
- "coop-cloud.${STACK_NAME}.timeout=${TIMEOUT}"
networks:
proxy:
external: true

View File

@ -0,0 +1,6 @@
RECIPE=test_recipe
DOMAIN=test_app.example.com
# NOTE(d1): ensure commented out TIMEOUT doesn't get included
# see TestReadEnv in ./pkg/envfile
# TIMEOUT=120

View File

@ -1,3 +0,0 @@
RECIPE=ecloud
DOMAIN=ecloud.evil.corp
SMTP_AUTHTYPE=login