4
4
"bytes"
5
5
"embed"
6
6
"fmt"
7
- "io"
8
7
"log/slog"
9
8
"strings"
10
9
"testing"
@@ -16,7 +15,6 @@ import (
16
15
17
16
checks "github.com/aquasecurity/trivy-checks"
18
17
"github.com/aquasecurity/trivy/pkg/iac/rego"
19
- "github.com/aquasecurity/trivy/pkg/iac/scanners/options"
20
18
"github.com/aquasecurity/trivy/pkg/iac/types"
21
19
"github.com/aquasecurity/trivy/pkg/log"
22
20
)
@@ -33,10 +31,11 @@ func Test_RegoScanning_WithSomeInvalidPolicies(t *testing.T) {
33
31
slog .SetDefault (log .New (log .NewHandler (& debugBuf , nil )))
34
32
scanner := rego .NewScanner (
35
33
types .SourceDockerfile ,
36
- options .ScannerWithRegoErrorLimits (0 ),
34
+ rego .WithRegoErrorLimits (0 ),
35
+ rego .WithPolicyDirs ("." ),
37
36
)
38
37
39
- err := scanner .LoadPolicies (false , false , testEmbedFS , [] string { "." }, nil )
38
+ err := scanner .LoadPolicies (testEmbedFS )
40
39
require .ErrorContains (t , err , `want (one of): ["Cmd" "EndLine" "Flags" "JSON" "Original" "Path" "Stage" "StartLine" "SubCmd" "Value"]` )
41
40
assert .Contains (t , debugBuf .String (), "Error(s) occurred while loading checks" )
42
41
})
@@ -46,10 +45,11 @@ func Test_RegoScanning_WithSomeInvalidPolicies(t *testing.T) {
46
45
slog .SetDefault (log .New (log .NewHandler (& debugBuf , nil )))
47
46
scanner := rego .NewScanner (
48
47
types .SourceDockerfile ,
49
- options .ScannerWithRegoErrorLimits (1 ),
48
+ rego .WithRegoErrorLimits (1 ),
49
+ rego .WithPolicyDirs ("." ),
50
50
)
51
51
52
- err := scanner .LoadPolicies (false , false , testEmbedFS , [] string { "." }, nil )
52
+ err := scanner .LoadPolicies (testEmbedFS )
53
53
require .NoError (t , err )
54
54
55
55
assert .Contains (t , debugBuf .String (), "Error occurred while parsing\t file_path=\" testdata/policies/invalid.rego\" err=\" testdata/policies/invalid.rego:7" )
@@ -64,9 +64,13 @@ package mypackage
64
64
deny {
65
65
input.evil == "foo bar"
66
66
}`
67
- scanner := rego .NewScanner (types .SourceJSON )
67
+ scanner := rego .NewScanner (
68
+ types .SourceJSON ,
69
+ rego .WithPolicyDirs ("." ),
70
+ rego .WithPolicyReader (strings .NewReader (check )),
71
+ )
68
72
69
- err := scanner .LoadPolicies (false , false , fstest.MapFS {}, [] string { "." }, []io. Reader { strings . NewReader ( check ) })
73
+ err := scanner .LoadPolicies (fstest.MapFS {})
70
74
assert .ErrorContains (t , err , "could not find schema \" fooschema\" " )
71
75
})
72
76
@@ -79,15 +83,19 @@ package mypackage
79
83
deny {
80
84
input.evil == "foo bar"
81
85
}`
82
- scanner := rego .NewScanner (types .SourceJSON )
86
+ scanner := rego .NewScanner (
87
+ types .SourceJSON ,
88
+ rego .WithPolicyDirs ("." ),
89
+ rego .WithPolicyReader (strings .NewReader (check )),
90
+ )
83
91
84
92
fsys := fstest.MapFS {
85
93
"schemas/fooschema.json" : & fstest.MapFile {
86
94
Data : []byte ("bad json" ),
87
95
},
88
96
}
89
97
90
- err := scanner .LoadPolicies (false , false , fsys , [] string { "." }, []io. Reader { strings . NewReader ( check )} )
98
+ err := scanner .LoadPolicies (fsys )
91
99
assert .ErrorContains (t , err , "could not parse schema \" fooschema\" " )
92
100
})
93
101
@@ -97,8 +105,12 @@ deny {
97
105
deny {
98
106
input.evil == "foo bar"
99
107
}`
100
- scanner := rego .NewScanner (types .SourceJSON )
101
- err := scanner .LoadPolicies (false , false , fstest.MapFS {}, []string {"." }, []io.Reader {strings .NewReader (check )})
108
+ scanner := rego .NewScanner (
109
+ types .SourceJSON ,
110
+ rego .WithPolicyDirs ("." ),
111
+ rego .WithPolicyReader (strings .NewReader (check )),
112
+ )
113
+ err := scanner .LoadPolicies (fstest.MapFS {})
102
114
require .NoError (t , err )
103
115
})
104
116
@@ -184,8 +196,9 @@ deny {
184
196
t .Run (tt .name , func (t * testing.T ) {
185
197
scanner := rego .NewScanner (
186
198
types .SourceDockerfile ,
187
- options .ScannerWithRegoErrorLimits (0 ),
188
- options .ScannerWithEmbeddedPolicies (false ),
199
+ rego .WithRegoErrorLimits (0 ),
200
+ rego .WithEmbeddedPolicies (false ),
201
+ rego .WithPolicyDirs ("." ),
189
202
)
190
203
191
204
tt .files ["schemas/fooschema.json" ] = & fstest.MapFile {
@@ -200,9 +213,8 @@ deny {
200
213
}` ),
201
214
}
202
215
203
- fsys := fstest .MapFS (tt .files )
204
216
checks .EmbeddedPolicyFileSystem = embeddedChecksFS
205
- err := scanner .LoadPolicies (false , false , fsys , [] string { "." }, nil )
217
+ err := scanner .LoadPolicies (fstest . MapFS ( tt . files ) )
206
218
207
219
if tt .expectedErr != "" {
208
220
assert .ErrorContains (t , err , tt .expectedErr )
@@ -244,8 +256,9 @@ deny {
244
256
245
257
scanner := rego .NewScanner (
246
258
types .SourceDockerfile ,
247
- options .ScannerWithEmbeddedPolicies (false ),
259
+ rego .WithEmbeddedPolicies (false ),
260
+ rego .WithPolicyDirs ("." ),
248
261
)
249
- err := scanner .LoadPolicies (false , false , fsys , [] string { "." }, nil )
262
+ err := scanner .LoadPolicies (fsys )
250
263
require .Error (t , err )
251
264
}
0 commit comments