diff --git a/policies/rudderc/src/ir/value.rs b/policies/rudderc/src/ir/value.rs index f015f4c3088..587d21a9314 100644 --- a/policies/rudderc/src/ir/value.rs +++ b/policies/rudderc/src/ir/value.rs @@ -420,7 +420,7 @@ fn ncf_const(s: &str) -> IResult<&str, Expression> { terminated( map( |s| expression(s, true), - |out| Expression::Const(Box::new(out)), + |out| Expression::NcfConst(Box::new(out)), ), char('}'), ), @@ -503,6 +503,11 @@ mod tests { out, Expression::Const(Box::new(Expression::Scalar("dollar".to_string()))) ); + let out: Expression = "${ncf_const.s}".parse().unwrap(); + assert_eq!( + out, + Expression::NcfConst(Box::new(Expression::Scalar("s".to_string()))) + ); let out: Expression = "${sys.interface_flags[eth0]}".parse().unwrap(); assert_eq!( out, @@ -559,6 +564,15 @@ mod tests { ); } + #[test] + fn it_reads_vcf_const_var() { + let (_, out) = ncf_const("${ncf_const.s}").unwrap(); + assert_eq!( + out, + Expression::NcfConst(Box::new(Expression::Scalar("s".to_string()))) + ); + } + #[test] fn it_reads_parameters() { let (_, out) = parameter("${rudder.parameters[plouf]}").unwrap();