diff --git a/tests/interpreter/cases/refr/keywords_in_refs.yaml b/tests/interpreter/cases/refr/keywords_in_refs.yaml index bfe8b28..be27c0a 100644 --- a/tests/interpreter/cases/refr/keywords_in_refs.yaml +++ b/tests/interpreter/cases/refr/keywords_in_refs.yaml @@ -203,3 +203,66 @@ cases: config: ok query: data.test.allow want_result: true + + - note: keywords_in_refs/future keywords without import + modules: + - | + package test + x = [input.if.flag, input.in.value, input.every.item, input.contains.key] + input: + if: + flag: true + in: + value: member + every: + item: each + contains: + key: present + query: data.test.x + want_result: [true, member, each, present] + + - note: keywords_in_refs/package path keywords + modules: + - | + package words.if.default + value = 7 + - | + package test + x = data.words.if.default.value + query: data.test.x + want_result: 7 + + - note: keywords_in_refs/import path keywords + modules: + - | + package test + import data.catalog.if.default as kw + x = kw.value + data: + catalog: + if: + default: + value: 99 + query: data.test.x + want_result: 99 + + - note: keywords_in_refs/rule head keyword path + modules: + - | + package test + policy.default.level := 3 + query: data.test.policy.default.level + want_result: 3 + + - note: keywords_in_refs/mixed dot keyword and dynamic bracket + modules: + - | + package test + x = input.package[segment].value + segment = "import" + input: + package: + import: + value: from_dynamic + query: data.test.x + want_result: from_dynamic diff --git a/tests/rvm/rego/cases/chained_access.yaml b/tests/rvm/rego/cases/chained_access.yaml index 4b38c3c..e8ef5f9 100644 --- a/tests/rvm/rego/cases/chained_access.yaml +++ b/tests/rvm/rego/cases/chained_access.yaml @@ -354,3 +354,70 @@ cases: } query: data.test.result want_result: true + + - note: keywords_in_refs/future_keywords_without_import + data: {} + input: + if: + flag: true + in: + value: member + every: + item: each + contains: + key: present + modules: + - | + package test + result := [input.if.flag, input.in.value, input.every.item, input.contains.key] + query: data.test.result + want_result: [true, "member", "each", "present"] + + - note: keywords_in_refs/package_path_keywords + data: {} + modules: + - | + package words.if.default + value := 7 + - | + package test + result := data.words.if.default.value + query: data.test.result + want_result: 7 + + - note: keywords_in_refs/import_path_keywords + data: + catalog: + if: + default: + value: 99 + modules: + - | + package test + import data.catalog.if.default as kw + result := kw.value + query: data.test.result + want_result: 99 + + - note: keywords_in_refs/rule_head_keyword_path + data: {} + modules: + - | + package test + policy.default.level := 3 + query: data.test.policy.default.level + want_result: 3 + + - note: keywords_in_refs/mixed_dot_keyword_and_dynamic_bracket + data: {} + input: + package: + import: + value: from_dynamic + modules: + - | + package test + segment := "import" + result := input.package[segment].value + query: data.test.result + want_result: "from_dynamic"