Skip to content

Commit 52d2fec

Browse files
author
Checkmarx Automation
committed
Refactor error handling in container image validation tests
- Update test assertions to check for consolidated error messages in the container image validation logic. - Ensure error messages provide clearer feedback on user input errors, including specific issues with image tags and unsupported prefixes. - Enhance test coverage for various error scenarios to improve robustness of validation checks.
1 parent 01ac705 commit 52d2fec

3 files changed

Lines changed: 16 additions & 5 deletions

File tree

go.mod

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ module github.com/checkmarx/ast-cli
33
go 1.24.6
44

55
require (
6-
github.com/Checkmarx/containers-resolver v1.0.21
6+
github.com/Checkmarx/containers-resolver v1.0.22
77
github.com/Checkmarx/containers-types v1.0.9
88
github.com/Checkmarx/gen-ai-prompts v0.0.0-20240807143411-708ceec12b63
99
github.com/Checkmarx/gen-ai-wrapper v1.0.2
@@ -42,7 +42,7 @@ require (
4242
github.com/BobuSumisu/aho-corasick v1.0.3 // indirect
4343
github.com/BurntSushi/toml v1.5.0 // indirect
4444
github.com/Checkmarx/containers-images-extractor v1.0.18
45-
github.com/Checkmarx/containers-syft-packages-extractor v1.0.17 // indirect
45+
github.com/Checkmarx/containers-syft-packages-extractor v1.0.18 // indirect
4646
github.com/CycloneDX/cyclonedx-go v0.9.2 // indirect
4747
github.com/DataDog/zstd v1.5.6 // indirect
4848
github.com/Masterminds/goutils v1.1.1 // indirect
@@ -186,7 +186,7 @@ require (
186186
github.com/mitchellh/go-homedir v1.1.0 // indirect
187187
github.com/mitchellh/go-wordwrap v1.0.1 // indirect
188188
github.com/mitchellh/hashstructure/v2 v2.0.2 // indirect
189-
github.com/mitchellh/mapstructure v1.5.0 // indirect
189+
github.com/mitchellh/mapstructure v1.5.1-0.20220423092549-19e70c243037 // indirect
190190
github.com/mitchellh/reflectwalk v1.0.2 // indirect
191191
github.com/moby/docker-image-spec v1.3.1 // indirect
192192
github.com/moby/locker v1.0.1 // indirect

go.sum

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,12 @@ github.com/Checkmarx/containers-images-extractor v1.0.18 h1:vj22lJurK72Zw28uenlz
6767
github.com/Checkmarx/containers-images-extractor v1.0.18/go.mod h1:n3B8u4/WZCtsIwamIz7Prz6Ktl169i+aJb9Yq5R3D2M=
6868
github.com/Checkmarx/containers-resolver v1.0.21 h1:HFl9ZfdzH7Fh3jvdRxnTIHYotI/3ZNMJTFP70c1jZWU=
6969
github.com/Checkmarx/containers-resolver v1.0.21/go.mod h1:Kq7Jb+bvCx+BObImrydImkFIPWyhaZaX6lJyoz+IhA4=
70+
github.com/Checkmarx/containers-resolver v1.0.22 h1:UXIbMLS/olOSTRpm0EIgDdJUkRZ1yDbIF7TInyB8/wQ=
71+
github.com/Checkmarx/containers-resolver v1.0.22/go.mod h1:63a9NJmj4xktasA0tUDm5hclErwesdWT4taF7jrAgUg=
7072
github.com/Checkmarx/containers-syft-packages-extractor v1.0.17 h1:OrqJ7Z+9Cpz+258B9uMGgxA8/prTuHmG0w7UJ+y6Fvw=
7173
github.com/Checkmarx/containers-syft-packages-extractor v1.0.17/go.mod h1:o5O/uQuZVaHTsOU4PXQyRseGSblR+HXsdfZv7Hrt5CA=
74+
github.com/Checkmarx/containers-syft-packages-extractor v1.0.18 h1:Y1mE3oE2AkU05ooTvCIxsh8TpaWkJt6t83nqJMY9bDw=
75+
github.com/Checkmarx/containers-syft-packages-extractor v1.0.18/go.mod h1:o5O/uQuZVaHTsOU4PXQyRseGSblR+HXsdfZv7Hrt5CA=
7276
github.com/Checkmarx/containers-types v1.0.9 h1:LbHDj9LZ0x3f28wDx398WC19sw0U0EfEewHMLStBwvs=
7377
github.com/Checkmarx/containers-types v1.0.9/go.mod h1:KR0w8XCosq3+6jRCfQrH7i//Nj2u11qaUJM62CREFZA=
7478
github.com/Checkmarx/gen-ai-prompts v0.0.0-20240807143411-708ceec12b63 h1:SCuTcE+CFvgjbIxUNL8rsdB2sAhfuNx85HvxImKta3g=
@@ -722,6 +726,8 @@ github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh
722726
github.com/mitchellh/mapstructure v1.4.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
723727
github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
724728
github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
729+
github.com/mitchellh/mapstructure v1.5.1-0.20220423092549-19e70c243037 h1:HFfFxOGn95p7f1McxDK/LbYRMTjNKiDEOMgUIzMSXdU=
730+
github.com/mitchellh/mapstructure v1.5.1-0.20220423092549-19e70c243037/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
725731
github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ=
726732
github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=
727733
github.com/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0=

internal/commands/scan_test.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -181,14 +181,19 @@ func TestCreateScanFromFolder_InvalidContainerImageFormat_FailCreatingScan(t *te
181181
clearFlags()
182182
baseArgs := []string{"scan", "create", "--project-name", "MOCK", "-b", "dummy_branch", "--container-images", "image1,image2:tag", "--scan-types", "containers", "--containers-local-resolution"}
183183
err := execCmdNotNilAssertion(t, append(baseArgs, "-s", blankSpace+"."+blankSpace)...)
184-
assert.Assert(t, err.Error() == "Invalid value for --container-images flag. The value must be in the format <image-name>:<image-tag>, <image-name>.tar, or use a supported prefix (docker:, podman:, containerd:, registry:, docker-archive:, oci-archive:, oci-dir:, file:)")
184+
// The updated format returns a consolidated error message with header and bullet points
185+
assert.Assert(t, strings.Contains(err.Error(), "User input error for --container-images flag"))
186+
assert.Assert(t, strings.Contains(err.Error(), "User input: 'image1' error: image does not have a tag"))
185187
}
186188

187189
func TestCreateScanFromFolder_CommaSeparatedContainerImages_SingleBadEntry_FailCreatingScan(t *testing.T) {
188190
clearFlags()
189191
baseArgs := []string{"scan", "create", "--project-name", "MOCK", "-b", "dummy_branch", "--container-images", "docker:nginx:latest,dir:/bad/directory,registry:ubuntu:20.04", "--scan-types", "containers"}
190192
err := execCmdNotNilAssertion(t, append(baseArgs, "-s", blankSpace+"."+blankSpace)...)
191-
assert.Assert(t, err.Error() == "Invalid value for --container-images flag. The 'dir:' prefix is not supported as it would scan entire directories rather than a single image")
193+
// The updated format returns a consolidated error message with all validation errors
194+
assert.Assert(t, strings.Contains(err.Error(), "User input error for --container-images flag"))
195+
assert.Assert(t, strings.Contains(err.Error(), "dir:/bad/directory"))
196+
assert.Assert(t, strings.Contains(err.Error(), "'dir:' prefix is not supported"))
192197
}
193198

194199
func TestCreateScanWithThreshold_ShouldSuccess(t *testing.T) {

0 commit comments

Comments
 (0)