1 #[cfg(all(test, feature = "wasmbind"))] 2 mod test { 3 extern crate chrono; 4 extern crate wasm_bindgen_test; 5 6 use self::chrono::prelude::*; 7 use self::wasm_bindgen_test::*; 8 9 #[wasm_bindgen_test] now()10 fn now() { 11 let utc: DateTime<Utc> = Utc::now(); 12 let local: DateTime<Local> = Local::now(); 13 14 // Ensure time fetched is correct 15 let actual = Utc.datetime_from_str(&env!("NOW"), "%s").unwrap(); 16 assert!(utc - actual < chrono::Duration::minutes(5)); 17 18 let tz = env!("TZ"); 19 eprintln!("testing with tz={}", tz); 20 21 // Ensure offset retrieved when getting local time is correct 22 let expected_offset = match tz { 23 "ACST-9:30" => FixedOffset::east(19 * 30 * 60), 24 "Asia/Katmandu" => FixedOffset::east(23 * 15 * 60), // No DST thankfully 25 "EDT" | "EST4" | "-0400" => FixedOffset::east(-4 * 60 * 60), 26 "EST" | "-0500" => FixedOffset::east(-5 * 60 * 60), 27 "UTC0" | "+0000" => FixedOffset::east(0), 28 tz => panic!("unexpected TZ {}", tz), 29 }; 30 assert_eq!( 31 &expected_offset, 32 local.offset(), 33 "expected: {:?} local: {:?}", 34 expected_offset, 35 local.offset(), 36 ); 37 } 38 39 #[wasm_bindgen_test] from_is_exact()40 fn from_is_exact() { 41 let now = js_sys::Date::new_0(); 42 43 let dt = DateTime::<Utc>::from(now.clone()); 44 45 assert_eq!(now.get_time() as i64, dt.timestamp_millis()); 46 } 47 } 48