summaryrefslogtreecommitdiffstats
path: root/third_party/rust/chrono/tests/wasm.rs
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/rust/chrono/tests/wasm.rs')
-rw-r--r--third_party/rust/chrono/tests/wasm.rs67
1 files changed, 67 insertions, 0 deletions
diff --git a/third_party/rust/chrono/tests/wasm.rs b/third_party/rust/chrono/tests/wasm.rs
new file mode 100644
index 0000000000..275d120d3b
--- /dev/null
+++ b/third_party/rust/chrono/tests/wasm.rs
@@ -0,0 +1,67 @@
+#[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);
+ }
+}