@@ -29,27 +29,27 @@ func (m *MockCommandRunner) Run(name string, args []string) error {
2929
3030// Helper to save and restore global state for tests
3131type testState struct {
32- lookPath func (file string ) (string , error )
33- exitFunc func (code int )
34- commandRunner CommandRunner
35- severityFlag string
36- pkgTypesFlag string
37- ignoreUnfixed bool
32+ getTrivyPathResolver func () (string , error )
33+ exitFunc func (code int )
34+ commandRunner CommandRunner
35+ severityFlag string
36+ pkgTypesFlag string
37+ ignoreUnfixed bool
3838}
3939
4040func saveState () testState {
4141 return testState {
42- lookPath : lookPath ,
43- exitFunc : exitFunc ,
44- commandRunner : commandRunner ,
45- severityFlag : severityFlag ,
46- pkgTypesFlag : pkgTypesFlag ,
47- ignoreUnfixed : ignoreUnfixedFlag ,
42+ getTrivyPathResolver : getTrivyPathResolver ,
43+ exitFunc : exitFunc ,
44+ commandRunner : commandRunner ,
45+ severityFlag : severityFlag ,
46+ pkgTypesFlag : pkgTypesFlag ,
47+ ignoreUnfixed : ignoreUnfixedFlag ,
4848 }
4949}
5050
5151func (s testState ) restore () {
52- lookPath = s .lookPath
52+ getTrivyPathResolver = s .getTrivyPathResolver
5353 exitFunc = s .exitFunc
5454 commandRunner = s .commandRunner
5555 severityFlag = s .severityFlag
@@ -63,8 +63,7 @@ func TestGetTrivyPath_Found(t *testing.T) {
6363 state := saveState ()
6464 defer state .restore ()
6565
66- lookPath = func (file string ) (string , error ) {
67- assert .Equal (t , "trivy" , file )
66+ getTrivyPathResolver = func () (string , error ) {
6867 return "/usr/local/bin/trivy" , nil
6968 }
7069
@@ -77,8 +76,8 @@ func TestGetTrivyPath_NotFound(t *testing.T) {
7776 state := saveState ()
7877 defer state .restore ()
7978
80- lookPath = func (_ string ) (string , error ) {
81- return "" , errors .New ("executable file not found in $PATH " )
79+ getTrivyPathResolver = func () (string , error ) {
80+ return "" , errors .New ("trivy not found" )
8281 }
8382
8483 path , err := getTrivyPath ()
@@ -93,8 +92,7 @@ func TestExecuteContainerScan_Success(t *testing.T) {
9392 state := saveState ()
9493 defer state .restore ()
9594
96- // Mock trivy found
97- lookPath = func (_ string ) (string , error ) {
95+ getTrivyPathResolver = func () (string , error ) {
9896 return "/usr/local/bin/trivy" , nil
9997 }
10098
@@ -135,7 +133,7 @@ func TestExecuteContainerScan_VulnerabilitiesFound(t *testing.T) {
135133 state := saveState ()
136134 defer state .restore ()
137135
138- lookPath = func (_ string ) (string , error ) {
136+ getTrivyPathResolver = func () (string , error ) {
139137 return "/usr/local/bin/trivy" , nil
140138 }
141139
@@ -160,7 +158,7 @@ func TestExecuteContainerScan_MultipleImages_SomeWithVulnerabilities(t *testing.
160158 state := saveState ()
161159 defer state .restore ()
162160
163- lookPath = func (_ string ) (string , error ) {
161+ getTrivyPathResolver = func () (string , error ) {
164162 return "/usr/local/bin/trivy" , nil
165163 }
166164
@@ -198,8 +196,8 @@ func TestExecuteContainerScan_TrivyNotFound(t *testing.T) {
198196 state := saveState ()
199197 defer state .restore ()
200198
201- lookPath = func (_ string ) (string , error ) {
202- return "" , errors .New ("executable file not found in $PATH " )
199+ getTrivyPathResolver = func () (string , error ) {
200+ return "" , errors .New ("trivy not in config after install " )
203201 }
204202
205203 // Mock exitFunc to capture exit code instead of exiting
@@ -218,7 +216,7 @@ func TestExecuteContainerScan_MultipleImages_AllPass(t *testing.T) {
218216 state := saveState ()
219217 defer state .restore ()
220218
221- lookPath = func (_ string ) (string , error ) {
219+ getTrivyPathResolver = func () (string , error ) {
222220 return "/usr/local/bin/trivy" , nil
223221 }
224222
@@ -251,7 +249,7 @@ func TestExecuteContainerScan_TrivyExecutionError(t *testing.T) {
251249 state := saveState ()
252250 defer state .restore ()
253251
254- lookPath = func (_ string ) (string , error ) {
252+ getTrivyPathResolver = func () (string , error ) {
255253 return "/usr/local/bin/trivy" , nil
256254 }
257255
@@ -275,7 +273,7 @@ func TestExecuteContainerScan_EmptyImageList(t *testing.T) {
275273 state := saveState ()
276274 defer state .restore ()
277275
278- lookPath = func (_ string ) (string , error ) {
276+ getTrivyPathResolver = func () (string , error ) {
279277 return "/usr/local/bin/trivy" , nil
280278 }
281279
0 commit comments