test(unit): ensure timeout handling
This commit is contained in:
62
pkg/app/compose_test.go
Normal file
62
pkg/app/compose_test.go
Normal file
@ -0,0 +1,62 @@
|
||||
package app_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
appPkg "coopcloud.tech/abra/pkg/app"
|
||||
testPkg "coopcloud.tech/abra/pkg/test"
|
||||
stack "coopcloud.tech/abra/pkg/upstream/stack"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestGetTimeoutFromLabel(t *testing.T) {
|
||||
testPkg.MkServerAppRecipe()
|
||||
defer testPkg.RmServerAppRecipe()
|
||||
|
||||
tests := []struct {
|
||||
configuredTimeout string
|
||||
expectedTimeout int
|
||||
}{
|
||||
{"0", 0},
|
||||
{"DOESNTEXIST", 0}, // NOTE(d1): test when missing from .env
|
||||
{"80", 80},
|
||||
{"120", 120},
|
||||
}
|
||||
|
||||
for _, test := range tests {
|
||||
app, err := appPkg.GetApp(testPkg.ExpectedAppFiles, testPkg.AppName)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
if test.configuredTimeout != "DOESNTEXIST" {
|
||||
app.Env["TIMEOUT"] = test.configuredTimeout
|
||||
}
|
||||
|
||||
composeFiles, err := app.Recipe.GetComposeFiles(app.Env)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
deployOpts := stack.Deploy{
|
||||
Composefiles: composeFiles,
|
||||
Namespace: app.StackName(),
|
||||
Prune: false,
|
||||
ResolveImage: stack.ResolveImageAlways,
|
||||
Detach: false,
|
||||
}
|
||||
|
||||
compose, err := appPkg.GetAppComposeConfig(app.Name, deployOpts, app.Env)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
timeout, err := appPkg.GetTimeoutFromLabel(compose, app.StackName())
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
assert.Equal(t, timeout, test.expectedTimeout)
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user