use chrono::{DateTime, Utc};
pub(crate) fn utc_now() -> DateTime<Utc> {
#[cfg(not(target_arch = "wasm32"))]
{
Utc::now()
}
#[cfg(target_arch = "wasm32")]
{
let utc_duration = web_time::SystemTime::now()
.duration_since(web_time::UNIX_EPOCH)
.unwrap_or(std::time::Duration::ZERO);
let mut utc_now = chrono::DateTime::UNIX_EPOCH;
utc_now += utc_duration;
utc_now
}
}
#[cfg(test)]
mod tests {
#![allow(clippy::expect_used)]
#![allow(clippy::panic)]
#![allow(clippy::unwrap_used)]
#[cfg(all(target_arch = "wasm32", not(target_os = "wasi")))]
use wasm_bindgen_test::wasm_bindgen_test;
use crate::crypto::internal::time;
#[test]
#[cfg_attr(
all(target_arch = "wasm32", not(target_os = "wasi")),
wasm_bindgen_test
)]
fn now() {
let time_now = time::utc_now();
let unix_ts = time_now.timestamp();
dbg!(&unix_ts);
assert!(unix_ts > 1731560000); }
}