github.com/Racer159/jackal@v0.32.7-0.20240401174413-0bd2339e4f2e/src/test/e2e/33_component_webhooks_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 "testing" 10 11 "github.com/stretchr/testify/require" 12 ) 13 14 func TestComponentWebhooks(t *testing.T) { 15 t.Log("E2E: Component Webhooks") 16 e2e.SetupWithCluster(t) 17 18 // Deploy example Pepr webhook. 19 webhookPath := fmt.Sprintf("build/jackal-package-component-webhooks-%s-0.0.1.tar.zst", e2e.Arch) 20 stdOut, stdErr, err := e2e.Jackal("package", "deploy", webhookPath, "--confirm") 21 require.NoError(t, err, stdOut, stdErr) 22 stdOut, stdErr, err = e2e.Jackal("tools", "wait-for", "deployment", "pepr-cb5693ef-d13c-5fe1-b5ad-c870fd911b3b", "available", "-n=pepr-system") 23 require.NoError(t, err, stdOut, stdErr) 24 defer e2e.CleanFiles(webhookPath) 25 26 // Ensure package deployments wait for webhooks to complete. 27 gamesPath := fmt.Sprintf("build/jackal-package-dos-games-%s-1.0.0.tar.zst", e2e.Arch) 28 stdOut, stdErr, err = e2e.Jackal("package", "deploy", gamesPath, "--confirm") 29 require.NoError(t, err, stdOut, stdErr) 30 require.Contains(t, stdErr, "Waiting for webhook 'test-webhook' to complete for component 'baseline'") 31 32 // Ensure package deployments with the '--skip-webhooks' flag do not wait on webhooks to complete. 33 stdOut, stdErr, err = e2e.Jackal("package", "deploy", gamesPath, "--skip-webhooks", "--confirm") 34 require.NoError(t, err, stdOut, stdErr) 35 require.NotContains(t, stdErr, "Waiting for webhook 'test-webhook' to complete for component 'baseline'") 36 37 // Remove the Pepr webhook package. 38 stdOut, stdErr, err = e2e.Jackal("package", "remove", "component-webhooks", "--confirm") 39 require.NoError(t, err, stdOut, stdErr) 40 stdOut, stdErr, err = e2e.Kubectl("delete", "namespace", "pepr-system") 41 require.NoError(t, err, stdOut, stdErr) 42 43 // Remove the dos-games package. 44 stdOut, stdErr, err = e2e.Jackal("package", "remove", "dos-games", "--confirm") 45 require.NoError(t, err, stdOut, stdErr) 46 stdOut, stdErr, err = e2e.Kubectl("delete", "namespace", "dos-games") 47 require.NoError(t, err, stdOut, stdErr) 48 }