mod common;
#[tokio::test(flavor = "multi_thread")]
async fn get_own_account() {
let client = require_client!();
let user = client
.me()
.get()
.await
.expect("get current user")
.expect("current user should exist");
assert!(!user.id.is_empty(), "user id should be present");
}
#[tokio::test(flavor = "multi_thread")]
async fn get_monthly_usage() {
let client = require_client!();
let usage = client
.me()
.monthly_usage()
.await
.expect("get monthly usage");
assert!(usage.is_object(), "monthly usage should be a JSON object");
}
#[tokio::test(flavor = "multi_thread")]
async fn get_monthly_usage_for_date() {
let client = require_client!();
let requested_day = "2026-03-15"; let usage = client
.me()
.monthly_usage_for_date(Some(requested_day))
.await
.expect("get monthly usage for date");
let cycle = usage
.get("usageCycle")
.expect("monthly usage should contain usageCycle");
let start = cycle
.get("startAt")
.and_then(|v| v.as_str())
.expect("usageCycle.startAt should be a string");
let end = cycle
.get("endAt")
.and_then(|v| v.as_str())
.expect("usageCycle.endAt should be a string");
let start_day = start
.get(..10)
.expect("usageCycle.startAt should be an RFC3339 date at least 10 chars long");
let end_day = end
.get(..10)
.expect("usageCycle.endAt should be an RFC3339 date at least 10 chars long");
assert!(
start_day <= requested_day && requested_day <= end_day,
"requested day {requested_day} should fall within usage cycle days [{start_day}, {end_day}] \
(full bounds [{start}, {end}])"
);
}
#[tokio::test(flavor = "multi_thread")]
async fn get_limits() {
let client = require_client!();
let limits = client.me().limits().await.expect("get limits");
assert!(limits.is_object(), "limits should be a JSON object");
}