use std::path::Path;
use crate::AuthTokenStore;
use crate::FileAuthTokenStore;
#[tokio::test]
async fn test_save_and_load_token() {
let dir = std::env::temp_dir().join("framesmith_test_token");
let path = dir.join("token.txt");
let _ = std::fs::remove_file(&path);
let _ = std::fs::remove_dir(&dir);
let store = FileAuthTokenStore::new(&path);
assert_eq!(store.load_token().await.unwrap(), None);
store.save_token("test-token-123").await.unwrap();
assert_eq!(
store.load_token().await.unwrap(),
Some("test-token-123".to_string())
);
let _ = std::fs::remove_file(&path);
let _ = std::fs::remove_dir(&dir);
}
#[tokio::test]
async fn test_load_nonexistent_file() {
let store = FileAuthTokenStore::new(Path::new("/tmp/framesmith_nonexistent_token.txt"));
assert_eq!(store.load_token().await.unwrap(), None);
}
#[tokio::test]
async fn test_load_empty_file() {
let path = std::env::temp_dir().join("framesmith_empty_token.txt");
std::fs::write(&path, "").unwrap();
let store = FileAuthTokenStore::new(&path);
assert_eq!(store.load_token().await.unwrap(), None);
let _ = std::fs::remove_file(&path);
}
#[tokio::test]
async fn test_load_trimmed_token() {
let path = std::env::temp_dir().join("framesmith_trimmed_token.txt");
std::fs::write(&path, " my-token \n").unwrap();
let store = FileAuthTokenStore::new(&path);
assert_eq!(
store.load_token().await.unwrap(),
Some("my-token".to_string())
);
let _ = std::fs::remove_file(&path);
}