Skip to main content

apify/
lib.rs

1extern crate apify_client;
2
3// TODO: re-export serde from client;
4extern crate serde;
5
6pub mod utils;
7pub mod actor;
8pub mod dataset;
9
10use crate::actor::Actor;
11
12#[cfg(test)]
13mod tests {
14    use super::*;
15
16    // let name = "RUST-TEST-PUSH-DATA";
17
18    // Simple await macro for tests
19    macro_rules! await_test {
20        ($e:expr) => {
21            tokio_test::block_on($e)
22        };
23    }
24
25    fn dummy_data() -> Vec<serde_json::Value> {
26        let item1 = serde_json::json!({ "obj": 1 });
27        let item2 = serde_json::json!({ "obj": 2 });
28        vec![item1, item2]
29    }
30    #[test]
31    fn push_data_local() {
32        let mut actor = Actor::new();
33        
34        let v = dummy_data();
35        await_test!(actor.push_data(&v));
36    }
37
38    #[test]
39    fn push_data_local_named() {
40        let mut actor = Actor::new();
41        let dataset_handle = await_test!(actor.openDataset(Some("my-dataset"), false));
42        
43        let v = dummy_data();
44        await_test!(dataset_handle.push_data(&v));
45    }
46
47    fn set_fake_cloud_env () -> Actor {
48        std::env::set_var("APIFY_IS_AT_HOME", "1");
49
50        let token = std::fs::read_to_string("test/test_token.txt").unwrap();
51        std::env::set_var("APIFY_TOKEN", token);
52
53        let mut actor = Actor::new();
54
55        // Create dummy dataset as a default dataset for this test
56        let dataset = await_test!(actor.client.create_dataset("RUST-TEST-PUSH-DATA").send()).unwrap();
57        std::env::set_var("APIFY_DEFAULT_DATASET_ID", dataset.id);
58        actor
59    }
60
61    #[test]
62    fn push_data_cloud () {
63        let mut actor = set_fake_cloud_env();
64        
65        let v = dummy_data();
66        await_test!(actor.push_data(&v));
67    }
68
69    #[test]
70    fn push_data_cloud_named() {
71        let mut actor = set_fake_cloud_env();
72        
73        let dataset_handle = await_test!(actor.openDataset(Some("my-dataset"), false));
74        
75        let v = dummy_data();
76        await_test!(dataset_handle.push_data(&v));
77    }
78}