txts_rs/
lib.rs

1mod client;
2mod page;
3mod error;
4
5pub use client::TxtsClient;
6pub use page::Page;
7pub use error::Error;
8
9#[cfg(test)]
10mod tests {
11    use url::Url;
12    use uuid::Uuid;
13
14    use super::*;
15    const HOST: &'static str = "http://localhost:8001/";
16
17    #[tokio::test]
18    async fn test_page_verified() -> Result<(), Error> {
19        let client = TxtsClient::new(Url::parse(HOST).unwrap())?;
20        let page = client.get("verifiedtest").await?;
21        assert_eq!(page.verified, true);
22        Ok(())
23    }
24
25    #[tokio::test]
26    async fn test_page_unverified() -> Result<(), Error> {
27        let client = TxtsClient::new(Url::parse(HOST).unwrap())?;
28        let page = client.get("test").await?;
29        assert_eq!(page.verified, false);
30        Ok(())
31    }
32
33    #[tokio::test]
34    async fn test_markdown_get() -> Result<(), Error> {
35        let client = TxtsClient::new(Url::parse(HOST).unwrap())?;
36        client.get_markdown("test").await?;
37        Ok(())
38    }
39
40    #[tokio::test]
41    async fn test_create_ok() -> Result<(), Error> {
42        let client = TxtsClient::new(Url::parse(HOST).unwrap())?;
43        client.create("test", "content").await?;
44        Ok(())
45    }
46
47    #[tokio::test]
48    async fn test_create_err() -> Result<(), Error> {
49        let client = TxtsClient::new(Url::parse(HOST).unwrap())?;
50        let resp = client.create("test", "content").await;
51        match resp {
52            Ok(_) => panic!(),
53            Err(e) => match e {
54                Error::TxtsError { .. } => Ok(()),
55                _ => panic!(),
56            },
57        }
58    }
59
60    #[tokio::test]
61    async fn test_edit_ok() -> Result<(), Error> {
62        let client = TxtsClient::new(Url::parse(HOST).unwrap())?;
63        let secret = Uuid::parse_str("35934ccc-d791-4c05-befd-5e92e91c9339").unwrap();
64        client.edit("test", &secret, "epic content").await?;
65        Ok(())
66    }
67
68    #[tokio::test]
69    async fn test_edit_err() -> Result<(), Error> {
70        let client = TxtsClient::new(Url::parse(HOST).unwrap())?;
71        let wrong_secret = Uuid::parse_str("ab6f8341-080f-4ef3-82b7-ec6a3c37a0f2").unwrap();
72        let resp = client.edit("test", &wrong_secret, "epic content").await;
73        match resp {
74            Ok(_) => panic!(),
75            Err(e) => match e {
76                Error::TxtsError { .. } => Ok(()),
77                _ => panic!(),
78            },
79        }
80    }
81}