@@ -912,6 +912,24 @@ pub(crate) mod test {
912912 } ) ;
913913 }
914914
915+ #[ test]
916+ fn test_either_with_state ( ) {
917+ let mut states = States :: new ( ) ;
918+ let expr = either ( index ( ident ( "state" ) , strlit ( "num" ) ) , num ( 2 ) ) ;
919+
920+ setup ( & mut states, Variables :: new ( ) , |test| {
921+ test. with_state ( |state| state. num . set ( 0 ) ) ;
922+ let value = test. eval ( & expr) ;
923+ assert_eq ! ( 2 , value. as_int( ) . unwrap( ) ) ;
924+ } ) ;
925+
926+ setup ( & mut states, Variables :: new ( ) , |test| {
927+ test. with_state ( |state| state. num . set ( 1 ) ) ;
928+ let value = test. eval ( & expr) ;
929+ assert_eq ! ( 1 , value. as_int( ) . unwrap( ) ) ;
930+ } ) ;
931+ }
932+
915933 #[ test]
916934 fn test_either ( ) {
917935 let mut states = States :: new ( ) ;
@@ -1030,25 +1048,6 @@ pub(crate) mod test {
10301048 } ) ;
10311049 }
10321050
1033- // #[test]
1034- // fn test_nested_maps() {
1035- // let mut states = States::new();
1036- // setup(&mut states, Default::default(), |test| {
1037- // let expr = index(
1038- // index(index(ident("state"), strlit("value")), strlit("value")),
1039- // strlit("value"),
1040- // );
1041- // let mut inner_map = Value::new(Map::empty());
1042- // let mut inner_inner_map = Value::new(Map::empty());
1043- // inner_inner_map.insert("value", 123);
1044- // inner_map.insert("value", inner_inner_map);
1045-
1046- // test.set_state("value", inner_map);
1047- // let value = test.eval(&*expr);
1048- // assert_eq!(123, value.as_int().unwrap());
1049- // });
1050- // }
1051-
10521051 #[ test]
10531052 fn stringify ( ) {
10541053 let mut states = States :: new ( ) ;
0 commit comments