farmap 0.7.1

A library for working with Farcaster label datasets
Documentation
use farmap::fetch::GithubFetcher;
use std::fs::read_to_string;
use url::Url;

#[tokio::test]
async fn test_commit_call_against_mock_github_data() {
    let mut server = mockito::Server::new_async().await;
    let url = server.url();
    let mock_status_data = read_to_string("./data/local-data-api-mirror/commit_call")
        .expect("api file should exist in data dir");
    println!("setting up server at {url}");
    println!("mock status data: {mock_status_data:?}");
    let _ = server
        .mock("GET", "/repos/warpcast/labels/commits")
        .with_body(mock_status_data)
        .create_async()
        .await;

    let status_url = Url::parse(&format!("{url}/repos/warpcast/labels/commits")).unwrap();
    let base_url = Url::parse(&url).unwrap();

    println!("status url is {status_url}");
    let importer = GithubFetcher::default()
        .with_base_url(base_url)
        .with_status_url(status_url);

    let status = importer.name_strings_from_api().await.unwrap();
    println!("here are the statuses!");
    for stat in &status {
        println!("{}", stat);
    }

    assert_eq!(status.len(), 15);
    let lengths: Vec<usize> = status
        .iter()
        .map(|x| x.to_string().chars().count())
        .collect();
    assert!(lengths.iter().all(|x| *x == 40));
}