@@ -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