github.com/Racer159/jackal@v0.32.7-0.20240401174413-0bd2339e4f2e/src/test/e2e/32_checksum_and_signature_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 TestChecksumAndSignature(t *testing.T) { 15 t.Log("E2E: Checksum and Signature") 16 e2e.SetupWithCluster(t) 17 18 testPackageDirPath := "examples/dos-games" 19 pkgName := fmt.Sprintf("jackal-package-dos-games-%s-1.0.0.tar.zst", e2e.Arch) 20 privateKeyFlag := "--signing-key=src/test/packages/jackal-test.prv-key" 21 publicKeyFlag := "--key=src/test/packages/jackal-test.pub" 22 23 stdOut, stdErr, err := e2e.Jackal("package", "create", testPackageDirPath, privateKeyFlag, "--confirm") 24 require.NoError(t, err, stdOut, stdErr) 25 defer e2e.CleanFiles(pkgName) 26 27 /* Test operations during package inspect */ 28 // Test that we can inspect the yaml of the package without the private key 29 stdOut, stdErr, err = e2e.Jackal("package", "inspect", pkgName) 30 require.NoError(t, err, stdOut, stdErr) 31 32 // Test that we don't get an error when we remember to provide the public key 33 stdOut, stdErr, err = e2e.Jackal("package", "inspect", pkgName, publicKeyFlag) 34 require.NoError(t, err, stdOut, stdErr) 35 require.Contains(t, stdErr, "Verified OK") 36 37 /* Test operations during package deploy */ 38 // Test that we get an error when trying to deploy a package without providing the public key 39 stdOut, stdErr, err = e2e.Jackal("package", "deploy", pkgName, "--confirm") 40 require.Error(t, err, stdOut, stdErr) 41 require.Contains(t, stdErr, "Failed to deploy package: unable to load the package: package is signed but no key was provided") 42 43 // Test that we don't get an error when we remember to provide the public key 44 stdOut, stdErr, err = e2e.Jackal("package", "deploy", pkgName, publicKeyFlag, "--confirm") 45 require.NoError(t, err, stdOut, stdErr) 46 require.Contains(t, stdErr, "Jackal deployment complete") 47 48 // Remove the package 49 stdOut, stdErr, err = e2e.Jackal("package", "remove", pkgName, publicKeyFlag, "--confirm") 50 require.NoError(t, err, stdOut, stdErr) 51 }