diff --git a/tests/method_call.rs b/tests/method_call.rs index 6043345a..a4e19251 100644 --- a/tests/method_call.rs +++ b/tests/method_call.rs @@ -4,7 +4,7 @@ use rhai::{Engine, EvalAltResult, RegisterFn, INT}; #[test] fn test_method_call() -> Result<(), EvalAltResult> { - #[derive(Clone)] + #[derive(Debug, Clone, Eq, PartialEq)] struct TestStruct { x: INT, } @@ -26,11 +26,15 @@ fn test_method_call() -> Result<(), EvalAltResult> { engine.register_fn("update", TestStruct::update); engine.register_fn("new_ts", TestStruct::new); - let ts = engine.eval::("let x = new_ts(); x.update(); x")?; - assert_eq!(ts.x, 1001); + assert_eq!( + engine.eval::("let x = new_ts(); x.update(); x")?, + TestStruct { x: 1001 } + ); - let ts = engine.eval::("let x = new_ts(); update(x); x")?; - assert_eq!(ts.x, 1); + assert_eq!( + engine.eval::("let x = new_ts(); update(x); x")?, + TestStruct { x: 1 } + ); Ok(()) } diff --git a/tests/types.rs b/tests/types.rs index 0101a120..78018482 100644 --- a/tests/types.rs +++ b/tests/types.rs @@ -2,6 +2,11 @@ use rhai::{Engine, EvalAltResult}; #[test] fn test_type_of() -> Result<(), EvalAltResult> { + #[derive(Clone)] + struct TestStruct { + x: INT, + } + let mut engine = Engine::new(); #[cfg(not(feature = "only_i32"))] @@ -14,12 +19,25 @@ fn test_type_of() -> Result<(), EvalAltResult> { assert_eq!(engine.eval::("type_of(1.0 + 2.0)")?, "f64"); #[cfg(not(feature = "no_index"))] - #[cfg(not(feature = "no_float"))] assert_eq!( - engine.eval::(r#"type_of([1.0, 2, "hello"])"#)?, + engine.eval::(r#"type_of([true, 2, "hello"])"#)?, "array" ); + // #[cfg(not(feature = "no_object"))] + // assert_eq!( + // engine.eval::(r#"type_of(${a:true, "":2, "z":"hello"})"#)?, + // "map" + // ); + + #[cfg(not(feature = "no_object"))] + { + engine.register_type::("Hello"); + engine.register_fn("new_ts", || TestStruct { x: 1 }); + + assert_eq!(engine.eval::("type_of(new_ts())")?, "Hello"); + } + assert_eq!(engine.eval::(r#"type_of("hello")"#)?, "string"); #[cfg(not(feature = "only_i32"))]