mirror of
https://github.com/kubescape/kubescape.git
synced 2026-03-04 10:40:37 +00:00
Title: Add Test Case for Non-Existent Image in GetPatchCmd Description: This pull request introduces a new test case TestGetPatchCmdWithNonExistentImage in the patch_test.go file. The purpose of this test case is to verify the behavior of the GetPatchCmd function when it's run with a non-existent image argument. In this test case, we: Create a mock Kubescape interface Call the GetPatchCmd function with the mock interface Run the command with a non-existent image argument Check that there is an error and the error message is "image tag is required" This test case enhances the test coverage of the GetPatchCmd function and ensures that it correctly handles non-existent image arguments. Signed-off-by: Umair <58398786+Umair0343@users.noreply.github.com>
53 lines
1.7 KiB
Go
53 lines
1.7 KiB
Go
package patch
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/kubescape/kubescape/v3/core/mocks"
|
|
"github.com/spf13/cobra"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestGetPatchCmd(t *testing.T) {
|
|
// Create a mock Kubescape interface
|
|
mockKubescape := &mocks.MockIKubescape{}
|
|
|
|
cmd := GetPatchCmd(mockKubescape)
|
|
|
|
// Verify the command name and short description
|
|
assert.Equal(t, "patch --image <image>:<tag> [flags]", cmd.Use)
|
|
assert.Equal(t, "Patch container images with vulnerabilities", cmd.Short)
|
|
assert.Equal(t, "Patch command is for automatically patching images with vulnerabilities.", cmd.Long)
|
|
assert.Equal(t, patchCmdExamples, cmd.Example)
|
|
|
|
err := cmd.Args(&cobra.Command{}, []string{})
|
|
assert.Nil(t, err)
|
|
|
|
err = cmd.Args(&cobra.Command{}, []string{"test"})
|
|
expectedErrorMessage := "the command takes no arguments"
|
|
assert.Equal(t, expectedErrorMessage, err.Error())
|
|
|
|
err = cmd.RunE(&cobra.Command{}, []string{})
|
|
expectedErrorMessage = "image tag is required"
|
|
assert.Equal(t, expectedErrorMessage, err.Error())
|
|
|
|
err = cmd.RunE(&cobra.Command{}, []string{"patch", "--image", "docker.io/library/nginx:1.22"})
|
|
assert.Equal(t, expectedErrorMessage, err.Error())
|
|
}
|
|
|
|
func TestGetPatchCmdWithNonExistentImage(t *testing.T) {
|
|
// Create a mock Kubescape interface
|
|
mockKubescape := &mocks.MockIKubescape{}
|
|
|
|
// Call the GetPatchCmd function
|
|
cmd := GetPatchCmd(mockKubescape)
|
|
|
|
// Run the command with a non-existent image argument
|
|
err := cmd.RunE(&cobra.Command{}, []string{"patch", "--image", "non-existent-image"})
|
|
|
|
// Check that there is an error and the error message is as expected
|
|
expectedErrorMessage := "image tag is required"
|
|
assert.Error(t, err)
|
|
assert.Equal(t, expectedErrorMessage, err.Error())
|
|
}
|