@@ -29,9 +29,9 @@ mod tests {
2929 use crate :: {
3030 lang:: error:: ProcessorError ,
3131 middleware:: {
32- CustomPredicate , CustomPredicateBatch , CustomPredicateRef , Key , NativePredicate ,
33- Params , PodType , Predicate , StatementTmpl , StatementTmplArg , Value , Wildcard ,
34- SELF_ID_HASH ,
32+ hash_str , CustomPredicate , CustomPredicateBatch , CustomPredicateRef , Key ,
33+ NativePredicate , Params , PodId , PodType , Predicate , RawValue , StatementTmpl ,
34+ StatementTmplArg , Value , Wildcard , SELF_ID_HASH ,
3535 } ,
3636 } ;
3737
@@ -854,6 +854,78 @@ mod tests {
854854 Ok ( ( ) )
855855 }
856856
857+ #[ test]
858+ fn test_e2e_literals ( ) -> Result < ( ) , LangError > {
859+ let pk = crate :: backends:: plonky2:: primitives:: ec:: curve:: Point :: generator ( ) ;
860+ let pk_b58 = pk. to_string ( ) ;
861+ let pod_id = PodId ( hash_str ( "test" ) ) ;
862+ let raw = RawValue :: from ( 1 ) ;
863+ let string = "hello" ;
864+ let int = 123 ;
865+ let bool = true ;
866+
867+ let input = format ! (
868+ r#"
869+ REQUEST(
870+ Equal(?A["pk"], PublicKey({}))
871+ Equal(?B["pod_id"], {})
872+ Equal(?C["raw"], Raw({}))
873+ Equal(?D["string"], "{}")
874+ Equal(?E["int"], {})
875+ Equal(?F["bool"], {})
876+ )
877+ "# ,
878+ pk_b58, pod_id, raw, string, int, bool
879+ ) ;
880+ /*
881+ REQUEST(
882+ Equal(?A["pk"], PublicKey(3t9fNuU194n7mSJPRdeaJRMqw6ZQCUddzvECWNe1k2b1rdBezXpJxF))
883+ Equal(?B["pod_id"], 0x735b31d3aad0f5b66002ffe1dc7d2eaa0ee9c59c09b641e8261530c5f3a02f29)
884+ Equal(?C["raw"], Raw(0x0000000000000000000000000000000000000000000000000000000000000001))
885+ Equal(?D["string"], "hello")
886+ Equal(?E["int"], 123)
887+ Equal(?F["bool"], true)
888+ )
889+ */
890+
891+ let params = Params :: default ( ) ;
892+ let processed = parse ( & input, & params, & [ ] ) ?;
893+ let request_templates = processed. request_templates ;
894+
895+ assert_eq ! ( request_templates. len( ) , 6 ) ;
896+
897+ let expected_templates = vec ! [
898+ StatementTmpl {
899+ pred: Predicate :: Native ( NativePredicate :: Equal ) ,
900+ args: vec![ sta_ak( ( "A" , 0 ) , "pk" ) , sta_lit( Value :: from( pk) ) ] ,
901+ } ,
902+ StatementTmpl {
903+ pred: Predicate :: Native ( NativePredicate :: Equal ) ,
904+ args: vec![ sta_ak( ( "B" , 1 ) , "pod_id" ) , sta_lit( Value :: from( pod_id) ) ] ,
905+ } ,
906+ StatementTmpl {
907+ pred: Predicate :: Native ( NativePredicate :: Equal ) ,
908+ args: vec![ sta_ak( ( "C" , 2 ) , "raw" ) , sta_lit( Value :: from( raw) ) ] ,
909+ } ,
910+ StatementTmpl {
911+ pred: Predicate :: Native ( NativePredicate :: Equal ) ,
912+ args: vec![ sta_ak( ( "D" , 3 ) , "string" ) , sta_lit( Value :: from( string) ) ] ,
913+ } ,
914+ StatementTmpl {
915+ pred: Predicate :: Native ( NativePredicate :: Equal ) ,
916+ args: vec![ sta_ak( ( "E" , 4 ) , "int" ) , sta_lit( Value :: from( int) ) ] ,
917+ } ,
918+ StatementTmpl {
919+ pred: Predicate :: Native ( NativePredicate :: Equal ) ,
920+ args: vec![ sta_ak( ( "F" , 5 ) , "bool" ) , sta_lit( Value :: from( bool ) ) ] ,
921+ } ,
922+ ] ;
923+
924+ assert_eq ! ( request_templates, expected_templates) ;
925+
926+ Ok ( ( ) )
927+ }
928+
857929 #[ test]
858930 fn test_e2e_use_unknown_batch ( ) {
859931 let params = Params :: default ( ) ;
0 commit comments