github.com/Racer159/jackal@v0.32.7-0.20240401174413-0bd2339e4f2e/src/test/e2e/28_wait_test.go (about) 1 // SPDX-License-Identifier: Apache-2.0 2 // SPDX-FileCopyrightText: 2021-Present The Jackal Authors 3 4 // Package test provides e2e tests for Jackal. 5 package test 6 7 import ( 8 "fmt" 9 "time" 10 11 "testing" 12 13 "github.com/Racer159/jackal/src/test" 14 "github.com/stretchr/testify/require" 15 ) 16 17 type jackalCommandResult struct { 18 stdOut string 19 stdErr string 20 err error 21 } 22 23 func jackalCommandWStruct(e2e test.JackalE2ETest, path string) (result jackalCommandResult) { 24 result.stdOut, result.stdErr, result.err = e2e.Jackal("package", "deploy", path, "--confirm") 25 return result 26 } 27 28 func TestNoWait(t *testing.T) { 29 t.Log("E2E: Helm Wait") 30 e2e.SetupWithCluster(t) 31 32 stdOut, stdErr, err := e2e.Jackal("package", "create", "src/test/packages/28-helm-no-wait", "-o=build", "--confirm") 33 require.NoError(t, err, stdOut, stdErr) 34 35 path := fmt.Sprintf("build/jackal-package-helm-no-wait-%s.tar.zst", e2e.Arch) 36 37 jackalChannel := make(chan jackalCommandResult, 1) 38 go func() { 39 jackalChannel <- jackalCommandWStruct(e2e, path) 40 }() 41 42 stdOut = "" 43 stdErr = "" 44 err = nil 45 46 select { 47 case res := <-jackalChannel: 48 stdOut = res.stdOut 49 stdErr = res.stdErr 50 err = res.err 51 case <-time.After(30 * time.Second): 52 t.Error("Timeout waiting for jackal deploy (it tried to wait)") 53 t.Log("Removing hanging namespace...") 54 _, _, _ = e2e.Kubectl("delete", "namespace", "no-wait", "--force=true", "--wait=false", "--grace-period=0") 55 } 56 require.NoError(t, err, stdOut, stdErr) 57 58 stdOut, stdErr, err = e2e.Jackal("package", "remove", "helm-no-wait", "--confirm") 59 require.NoError(t, err, stdOut, stdErr) 60 }