12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- #[cfg(all(test, feature = "wasmbind"))]
- mod test {
- extern crate chrono;
- extern crate wasm_bindgen_test;
- use self::chrono::prelude::*;
- use self::wasm_bindgen_test::*;
- #[wasm_bindgen_test]
- fn now() {
- let utc: DateTime<Utc> = Utc::now();
- let local: DateTime<Local> = Local::now();
- // Ensure time set by the test script is correct
- let now = env!("NOW");
- let actual = Utc.datetime_from_str(&now, "%s").unwrap();
- let diff = utc - actual;
- assert!(
- diff < chrono::Duration::minutes(5),
- "expected {} - {} == {} < 5m (env var: {})",
- utc,
- actual,
- diff,
- now,
- );
- let tz = env!("TZ");
- eprintln!("testing with tz={}", tz);
- // Ensure offset retrieved when getting local time is correct
- let expected_offset = match tz {
- "ACST-9:30" => FixedOffset::east(19 * 30 * 60),
- "Asia/Katmandu" => FixedOffset::east(23 * 15 * 60), // No DST thankfully
- "EDT" | "EST4" | "-0400" => FixedOffset::east(-4 * 60 * 60),
- "EST" | "-0500" => FixedOffset::east(-5 * 60 * 60),
- "UTC0" | "+0000" => FixedOffset::east(0),
- tz => panic!("unexpected TZ {}", tz),
- };
- assert_eq!(
- &expected_offset,
- local.offset(),
- "expected: {:?} local: {:?}",
- expected_offset,
- local.offset(),
- );
- }
- #[wasm_bindgen_test]
- fn from_is_exact() {
- let now = js_sys::Date::new_0();
- let dt = DateTime::<Utc>::from(now.clone());
- assert_eq!(now.get_time() as i64, dt.timestamp_millis());
- }
- #[wasm_bindgen_test]
- fn local_from_local_datetime() {
- let now = Local::now();
- let ndt = now.naive_local();
- let res = match Local.from_local_datetime(&ndt).single() {
- Some(v) => v,
- None => panic! {"Required for test!"},
- };
- assert_eq!(now, res);
- }
- }
|