// Basic medication integration tests
// These tests verify the medication endpoints work correctly

// Note: These tests require MongoDB to be running
// Run with: cargo test --test medication_tests

#[cfg(test)]
mod medication_tests {
    use reqwest::Client;
    use serde_json::json;

    const BASE_URL: &str = "http://localhost:3000";

    #[tokio::test]
    async fn test_create_medication_requires_auth() {
        let client = Client::new();
        let response = client
            .post(&format!("{}/api/medications", BASE_URL))
            .json(&json!({
                "profile_id": "test-profile",
                "name": "Test Medication",
                "dosage": "10mg",
                "frequency": "daily"
            }))
            .send()
            .await
            .expect("Failed to send request");

        // Should return 401 since no auth token provided
        assert_eq!(response.status(), 401);
    }

    #[tokio::test]
    async fn test_list_medications_requires_auth() {
        let client = Client::new();
        let response = client
            .get(&format!("{}/api/medications", BASE_URL))
            .send()
            .await
            .expect("Failed to send request");

        // Should return 401 since no auth token provided
        assert_eq!(response.status(), 401);
    }

    #[tokio::test]
    async fn test_get_medication_requires_auth() {
        let client = Client::new();
        let response = client
            .get(&format!(
                "{}/api/medications/507f1f77bcf86cd799439011",
                BASE_URL
            ))
            .send()
            .await
            .expect("Failed to send request");

        // Should return 401 since no auth token provided
        assert_eq!(response.status(), 401);
    }
}
