1extern crate apify_client;
2
3extern 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 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 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}