#![allow(dead_code)]
pub const API_BASE_URL: &str = "https://api.ticktick.com/open/v1";
pub const OAUTH_AUTH_URL: &str = "https://ticktick.com/oauth/authorize";
pub const OAUTH_TOKEN_URL: &str = "https://ticktick.com/oauth/token";
pub const OAUTH_REDIRECT_URI: &str = "http://localhost:8080";
pub const OAUTH_SCOPES: &[&str] = &["tasks:write", "tasks:read"];
pub const INBOX_PROJECT_ID: &str = "inbox";
pub const INBOX_PROJECT_NAME: &str = "Inbox";
pub const DEFAULT_PROJECT_COLOR: &str = "#FF1111";
pub const CONFIG_FILE_NAME: &str = "config.toml";
pub const TOKEN_FILE_NAME: &str = "token";
pub const APP_DIR_NAME: &str = "tickrs";
pub const ENV_CLIENT_ID: &str = "TICKTICK_CLIENT_ID";
pub const ENV_CLIENT_SECRET: &str = "TICKTICK_CLIENT_SECRET";
pub const ENV_TOKEN: &str = "TICKTICK_TOKEN";
pub const ENV_LOG_LEVEL: &str = "RUST_LOG";
pub const DEFAULT_LOG_LEVEL: &str = "info";
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_api_base_url() {
assert!(API_BASE_URL.starts_with("https://"));
assert!(API_BASE_URL.contains("ticktick.com"));
}
#[test]
fn test_oauth_urls() {
assert!(OAUTH_AUTH_URL.starts_with("https://"));
assert!(OAUTH_TOKEN_URL.starts_with("https://"));
assert!(OAUTH_REDIRECT_URI.starts_with("http://localhost"));
}
#[test]
fn test_oauth_scopes() {
assert!(OAUTH_SCOPES.contains(&"tasks:write"));
assert!(OAUTH_SCOPES.contains(&"tasks:read"));
}
#[test]
fn test_inbox_constants() {
assert_eq!(INBOX_PROJECT_ID, "inbox");
assert_eq!(INBOX_PROJECT_NAME, "Inbox");
}
#[test]
fn test_default_color_is_valid_hex() {
assert!(DEFAULT_PROJECT_COLOR.starts_with('#'));
assert_eq!(DEFAULT_PROJECT_COLOR.len(), 7);
}
#[test]
fn test_env_var_names() {
assert_eq!(ENV_CLIENT_ID, "TICKTICK_CLIENT_ID");
assert_eq!(ENV_CLIENT_SECRET, "TICKTICK_CLIENT_SECRET");
assert_eq!(ENV_TOKEN, "TICKTICK_TOKEN");
}
}