use js_sys::*; use wasm_bindgen::JsCast; use wasm_bindgen::JsValue; use wasm_bindgen_test::*; #[wasm_bindgen_test] fn new() { let error = Error::new("some message"); assert_eq!(JsValue::from(error.message()), "some message"); } #[wasm_bindgen_test] fn new_with_cause() { let options = Object::new(); Reflect::set( options.as_ref(), &JsValue::from("cause"), &JsValue::from("some cause"), ) .unwrap(); let error = Error::new_with_options("some message", &options); assert_eq!(error.cause(), "some cause"); } #[wasm_bindgen_test] fn empty_cause() { let error = Error::new("test"); assert_eq!(error.cause(), JsValue::UNDEFINED); } #[wasm_bindgen_test] fn set_cause() { let error = Error::new("test"); error.set_cause(&JsValue::from("different")); assert_eq!(error.cause(), "different"); } #[wasm_bindgen_test] fn set_message() { let error = Error::new("test"); error.set_message("another"); assert_eq!(JsValue::from(error.message()), "another"); } #[wasm_bindgen_test] fn name() { let error = Error::new("test"); assert_eq!(JsValue::from(error.name()), "Error"); } #[wasm_bindgen_test] fn set_name() { let error = Error::new("test"); error.set_name("different"); assert_eq!(JsValue::from(error.name()), "different"); } #[wasm_bindgen_test] fn to_string() { let error = Error::new("error message 1"); assert_eq!(JsValue::from(error.to_string()), "Error: error message 1"); error.set_name("error_name_1"); assert_eq!( JsValue::from(error.to_string()), "error_name_1: error message 1" ); } #[wasm_bindgen_test] fn error_inheritance() { let error = Error::new("test"); assert!(error.is_instance_of::()); assert!(error.is_instance_of::()); let _: &Object = error.as_ref(); }