From 44a7d288af076930b103026087dc2ec37540c8ce Mon Sep 17 00:00:00 2001 From: decentral1se Date: Mon, 25 Aug 2025 11:37:49 +0200 Subject: [PATCH] test(unit): ensure timeout handling --- pkg/app/compose_test.go | 62 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 pkg/app/compose_test.go diff --git a/pkg/app/compose_test.go b/pkg/app/compose_test.go new file mode 100644 index 00000000..f66e7565 --- /dev/null +++ b/pkg/app/compose_test.go @@ -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) + } +}