Files
regorus/tests/interpreter/cases/variables/mod.rs
Anand Krishnamoorthi 2436467fbd Minimize PR 22 (#26)
* specific functions added to eval different rego components

Signed-off-by: eric-therond <eric.therond.fr@gmail.com>

* allow multiple inputs and results

Signed-off-by: eric-therond <eric.therond.fr@gmail.com>

* prepare_for_eval is necessary to be called

Signed-off-by: eric-therond <eric.therond.fr@gmail.com>

* test with the suggested code examples and clean scopes

Signed-off-by: eric-therond <eric.therond.fr@gmail.com>

* try to refactor first steps of evaluations

Signed-off-by: eric-therond <eric.therond.fr@gmail.com>

* improve coverage and fix clean state internal evaluation

Signed-off-by: eric-therond <eric.therond.fr@gmail.com>

* add getters and setters and fix clean function

Signed-off-by: eric-therond <eric.therond.fr@gmail.com>

* Tests are single input by default. Multi input specified via "many!" marker.

Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>

---------

Signed-off-by: eric-therond <eric.therond.fr@gmail.com>
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
Co-authored-by: eric-therond <eric.therond.fr@gmail.com>
2023-10-09 14:27:31 -07:00

55 lines
929 B
Rust

// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
#![cfg(test)]
use crate::interpreter::*;
#[test]
fn basic() -> Result<()> {
let rego = r#"
package test
array = [1, 2, 3]
nested_array = [1, [2, 3, 4], 5, 6]
object = { "key0": "value0" }
key = "key"
object_var = { key: array }
local_0 = x {
x = 10
}
local_1 = x {
some x
x = "test_local"
}
set = {1, 2, 3}
"#;
let expected = vec![Value::from_json_str(
r#" {
"array": [1, 2, 3],
"nested_array": [1, [2, 3, 4], 5, 6],
"object": { "key0": "value0" },
"key": "key",
"object_var": { "key": [1, 2, 3] },
"set" : {
"set!" : [3, 2, 1]
},
"local_0": 10,
"local_1": "test_local"
}"#,
)?];
assert_match(
eval_file(&[rego.to_owned()], None, None, "data.test", false)?,
expected,
);
Ok(())
}