Skip to content

Commit f42ad67

Browse files
committed
ast/index_test: add some empty-rhs-coll test cases
Signed-off-by: Stephan Renatus <stephan.renatus@gmail.com>
1 parent 4a91479 commit f42ad67

1 file changed

Lines changed: 53 additions & 0 deletions

File tree

v1/ast/index_test.go

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -954,6 +954,59 @@ func TestBaseDocEqIndexing(t *testing.T) {
954954
input: `{"role": "guest"}`,
955955
expectedRS: []string{},
956956
},
957+
{
958+
note: "internal.member_2: var with empty array in rhs (one other match)",
959+
module: module(`package test
960+
p if {
961+
__local0__ = input.role
962+
__local1__ = []
963+
internal.member_2(__local0__, __local1__)
964+
}
965+
p if {
966+
__local0__ = input.role
967+
__local1__ = ["admin", "guest"]
968+
internal.member_2(__local0__, __local1__)
969+
}`),
970+
ruleset: "p",
971+
input: `{"role": "guest"}`,
972+
expectedRS: []string{
973+
`p if { __local0__ = input.role; __local1__ = []; internal.member_2(__local0__, __local1__) }`,
974+
`p if { __local0__ = input.role; __local1__ = ["admin", "guest"]; internal.member_2(__local0__, __local1__) }`,
975+
},
976+
},
977+
{
978+
note: "internal.member_2: var with empty array in rhs (no index)",
979+
module: module(`package test
980+
p if {
981+
__local0__ = input.role
982+
__local1__ = []
983+
internal.member_2(__local0__, __local1__)
984+
}`),
985+
ruleset: "p",
986+
input: `{"role": "guest"}`,
987+
expectedRS: []string{
988+
`p if { __local0__ = input.role; __local1__ = []; internal.member_2(__local0__, __local1__) }`,
989+
},
990+
},
991+
{
992+
note: "internal.member_2: var with empty array in rhs (one other is mismatch)",
993+
module: module(`package test
994+
p if {
995+
__local0__ = input.role
996+
__local1__ = []
997+
internal.member_2(__local0__, __local1__)
998+
}
999+
p if {
1000+
__local0__ = input.role
1001+
__local1__ = ["admin", "guest"]
1002+
internal.member_2(__local0__, __local1__)
1003+
}`),
1004+
ruleset: "p",
1005+
input: `{"role": "user"}`,
1006+
expectedRS: []string{
1007+
`p if { __local0__ = input.role; __local1__ = []; internal.member_2(__local0__, __local1__) }`,
1008+
},
1009+
},
9571010
{
9581011
note: "internal.member_2: var with set value in rhs (match)",
9591012
module: module(`package test

0 commit comments

Comments
 (0)