Skip to content

Commit

Permalink
fix: refactors tests and fixes bugs
Browse files Browse the repository at this point in the history
  • Loading branch information
UncleGedd committed Feb 27, 2024
1 parent 70b2c68 commit 332e9dc
Show file tree
Hide file tree
Showing 5 changed files with 103 additions and 81 deletions.
1 change: 0 additions & 1 deletion src/pkg/bundle/deploy.go
Original file line number Diff line number Diff line change
Expand Up @@ -369,7 +369,6 @@ func (b *Bundle) processOverrideVariables(overrideMap *map[string]map[string]*va
overrideVal = sharedConfigOverride
} else {
// use default v if no config v is set
//overrideVal = "sharedConfigOverride"
overrideVal = v.Default
}

Expand Down
2 changes: 1 addition & 1 deletion src/pkg/bundle/remove.go
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ func removePackages(packagesToRemove []types.Package, b *Bundle, zarfPackageName
pkg := packagesToRemove[i]
zarfPackageName := pkg.Name
// use the name map if it has been set (remote pkgs where the pkg name isn't consistent)
if zarfPackageNameMap[pkg.Name] != "" {
if _, ok := zarfPackageNameMap[pkg.Name]; ok {
zarfPackageName = zarfPackageNameMap[pkg.Name]
}

Expand Down
13 changes: 0 additions & 13 deletions src/test/bundles/01-uds-bundle/local/uds-bundle.yaml

This file was deleted.

168 changes: 102 additions & 66 deletions src/test/e2e/bundle_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -109,106 +109,139 @@ func TestLocalBundleWithRemotePkgs(t *testing.T) {
pkg = fmt.Sprintf("src/test/packages/podinfo/zarf-package-podinfo-%s-0.0.1.tar.zst", e2e.Arch)
zarfPublish(t, pkg, "localhost:889")

bundleDir := "src/test/bundles/01-uds-bundle/remote"
bundleDir := "src/test/bundles/01-uds-bundle"
bundlePath := filepath.Join(bundleDir, fmt.Sprintf("uds-bundle-example-remote-%s-0.0.1.tar.zst", e2e.Arch))

createLocal(t, bundleDir, e2e.Arch)
inspectLocal(t, bundlePath)
inspectLocalAndSBOMExtract(t, bundlePath)
deploy(t, bundlePath)
remove(t, bundlePath)

// Test create using custom tmpDir
runCmd(t, "create "+bundleDir+" --tmpdir ./customtmp --confirm --insecure")

// remove customtmp folder if it exists
err := os.RemoveAll("./customtmp")
require.NoError(t, err)
}

func TestPackagesFlag(t *testing.T) {
deployZarfInit(t)

e2e.CreateZarfPkg(t, "src/test/packages/podinfo", false)

bundleDir := "src/test/bundles/03-local-and-remote"
bundlePath := filepath.Join(bundleDir, fmt.Sprintf("uds-bundle-test-local-and-remote-%s-0.0.1.tar.zst", e2e.Arch))

createLocal(t, bundleDir, e2e.Arch)

// Test only podinfo deploy
deployPackagesFlag(bundlePath, "podinfo")
cmd := strings.Split("zarf tools kubectl get deployments -A -o=jsonpath='{.items[*].metadata.name}'", " ")
deployments, _, _ := e2e.UDS(cmd...)
require.Contains(t, deployments, "podinfo")
require.NotContains(t, deployments, "nginx")

remove(t, bundlePath)

// Test both podinfo and nginx deploy
deployPackagesFlag(bundlePath, "podinfo,nginx")
deployments, _, _ = e2e.UDS(cmd...)
require.Contains(t, deployments, "podinfo")
require.Contains(t, deployments, "nginx")
t.Run("Test only podinfo deploy (local pkg)", func(t *testing.T) {
deployPackagesFlag(bundlePath, "podinfo")
cmd := strings.Split("zarf tools kubectl get deployments -A -o=jsonpath='{.items[*].metadata.name}'", " ")
deployments, _, _ := e2e.UDS(cmd...)
require.Contains(t, deployments, "podinfo")
require.NotContains(t, deployments, "nginx")
remove(t, bundlePath)
})

// Remove only podinfo (local pkg)
removePackagesFlag(bundlePath, "podinfo")
deployments, _, _ = e2e.UDS(cmd...)
require.NotContains(t, deployments, "podinfo")
require.Contains(t, deployments, "nginx")

// Remove only nginx (remote pkg)
removePackagesFlag(bundlePath, "nginx")
deployments, _, _ = e2e.UDS(cmd...)
require.NotContains(t, deployments, "podinfo")
require.NotContains(t, deployments, "nginx")

// Test invalid package deploy
_, stderr := deployPackagesFlag(bundlePath, "podinfo,nginx,peanuts")
require.Contains(t, stderr, "invalid zarf packages specified by --packages")

// Test invalid package remove
_, stderr = removePackagesFlag(bundlePath, "podinfo,nginx,peanuts")
require.Contains(t, stderr, "invalid zarf packages specified by --packages")
cmd := strings.Split("zarf tools kubectl get deployments -A -o=jsonpath='{.items[*].metadata.name}'", " ")
t.Run("Test only nginx deploy (remote pkg)", func(t *testing.T) {
deployPackagesFlag(bundlePath, "nginx")
deployments, _, _ := e2e.UDS(cmd...)
require.Contains(t, deployments, "nginx")
require.NotContains(t, deployments, "podinfo")
remove(t, bundlePath)
})

t.Run("Test both podinfo and nginx deploy", func(t *testing.T) {
deployPackagesFlag(bundlePath, "podinfo,nginx")
deployments, _, _ := e2e.UDS(cmd...)
require.Contains(t, deployments, "podinfo")
require.Contains(t, deployments, "nginx")

})
t.Run("Remove only podinfo (local pkg)", func(t *testing.T) {
removePackagesFlag(bundlePath, "podinfo")
deployments, _, _ := e2e.UDS(cmd...)
require.NotContains(t, deployments, "podinfo")
require.Contains(t, deployments, "nginx")

})
t.Run("Remove only nginx (remote pkg)", func(t *testing.T) {
removePackagesFlag(bundlePath, "nginx")
deployments, _, _ := e2e.UDS(cmd...)
require.NotContains(t, deployments, "podinfo")
require.NotContains(t, deployments, "nginx")

})
t.Run("Test invalid package deploy", func(t *testing.T) {
_, stderr := deployPackagesFlag(bundlePath, "podinfo,nginx,peanuts")
require.Contains(t, stderr, "invalid zarf packages specified by --packages")

})
t.Run("Test invalid package remove", func(t *testing.T) {
_, stderr := removePackagesFlag(bundlePath, "podinfo,nginx,peanuts")
require.Contains(t, stderr, "invalid zarf packages specified by --packages")

})
}

func TestResumeFlag(t *testing.T) {
deployZarfInit(t)

e2e.CreateZarfPkg(t, "src/test/packages/nginx", false)
e2e.CreateZarfPkg(t, "src/test/packages/podinfo", false)

bundleDir := "src/test/bundles/01-uds-bundle/local"
bundlePath := filepath.Join(bundleDir, fmt.Sprintf("uds-bundle-example-local-%s-0.0.1.tar.zst", e2e.Arch))
bundleDir := "src/test/bundles/03-local-and-remote"
bundlePath := filepath.Join(bundleDir, fmt.Sprintf("uds-bundle-test-local-and-remote-%s-0.0.1.tar.zst", e2e.Arch))

createLocal(t, bundleDir, e2e.Arch)
inspectLocal(t, bundlePath)
inspectLocalAndSBOMExtract(t, bundlePath)

// Deploy only podinfo from bundle
deployPackagesFlag(bundlePath, "podinfo")
cmd := strings.Split("zarf tools kubectl get deployments -A -o=jsonpath='{.items[*].metadata.name}'", " ")
deployments, _, _ := e2e.UDS(cmd...)
require.Contains(t, deployments, "podinfo")
require.NotContains(t, deployments, "nginx")
getDeploymentsCmd := strings.Split("zarf tools kubectl get deployments -A -o=jsonpath='{.items[*].metadata.name}'", " ")

// Deploy only podinfo (local pkg)
t.Run("Deploy only podinfo (local pkg)", func(t *testing.T) {
deployPackagesFlag(bundlePath, "podinfo")
deployments, _, _ := e2e.UDS(getDeploymentsCmd...)
require.Contains(t, deployments, "podinfo")
require.NotContains(t, deployments, "nginx")
})

// Deploy bundle --resume
deployResumeFlag(t, bundlePath)
cmd = strings.Split("zarf tools kubectl get deployments -A -o=jsonpath='{.items[*].metadata.name}'", " ")
deployments, _, _ = e2e.UDS(cmd...)
require.Contains(t, deployments, "podinfo")
require.Contains(t, deployments, "nginx")
// Deploy bundle --resume (resumes remote pkg)
t.Run("Deploy bundle --resume", func(t *testing.T) {
deployResumeFlag(t, bundlePath)
deployments, _, _ := e2e.UDS(getDeploymentsCmd...)
require.Contains(t, deployments, "podinfo")
require.Contains(t, deployments, "nginx")
})

// Remove only podinfo
removePackagesFlag(bundlePath, "podinfo")
deployments, _, _ = e2e.UDS(cmd...)
require.NotContains(t, deployments, "podinfo")
require.Contains(t, deployments, "nginx")
t.Run("Remove only podinfo", func(t *testing.T) {
removePackagesFlag(bundlePath, "podinfo")
deployments, _, _ := e2e.UDS(getDeploymentsCmd...)
require.NotContains(t, deployments, "podinfo")
require.Contains(t, deployments, "nginx")
})

// Deploy only nginx (remote pkg)
t.Run("Deploy only nginx (remote pkg)", func(t *testing.T) {
deployPackagesFlag(bundlePath, "nginx")
deployments, _, _ := e2e.UDS(getDeploymentsCmd...)
require.Contains(t, deployments, "nginx")
require.NotContains(t, deployments, "podinfo")
})

// Deploy bundle --resume (resumes remote pkg)
t.Run("Deploy bundle --resume", func(t *testing.T) {
deployResumeFlag(t, bundlePath)
deployments, _, _ := e2e.UDS(getDeploymentsCmd...)
require.Contains(t, deployments, "podinfo")
require.Contains(t, deployments, "nginx")
})

// Remove only nginx
t.Run("Remove only podinfo", func(t *testing.T) {
removePackagesFlag(bundlePath, "nginx")
deployments, _, _ := e2e.UDS(getDeploymentsCmd...)
require.NotContains(t, deployments, "nginx")
require.Contains(t, deployments, "podinfo")
})

// Remove bundle
remove(t, bundlePath)
cmd = strings.Split("zarf tools kubectl get deployments -A -o=jsonpath='{.items[*].metadata.name}'", " ")
deployments, _, _ = e2e.UDS(cmd...)
deployments, _, _ := e2e.UDS(getDeploymentsCmd...)
require.NotContains(t, deployments, "podinfo")
require.NotContains(t, deployments, "nginx")
}
Expand Down Expand Up @@ -237,7 +270,7 @@ func TestRemoteBundleWithRemotePkgs(t *testing.T) {
}

tarballPath := filepath.Join("build", fmt.Sprintf("uds-bundle-example-remote-%s-0.0.1.tar.zst", e2e.Arch))
bundlePath := "src/test/bundles/01-uds-bundle/remote"
bundlePath := "src/test/bundles/01-uds-bundle"
createRemoteInsecure(t, bundlePath, bundleRef.Registry, e2e.Arch)

// Test without oci prefix
Expand Down Expand Up @@ -531,4 +564,7 @@ func TestBundleTmpDir(t *testing.T) {
case <-time.After(10 * time.Second): // Timeout after 10 seconds
t.Fatal("timeout waiting for directory to get populated")
}
// remove customtmp folder if it exists
err = os.RemoveAll("./customtmp")
require.NoError(t, err)
}

0 comments on commit 332e9dc

Please sign in to comment.