Skip to content

Commit a5ff702

Browse files
committed
chore(crate): move all tests to their folder
1 parent 006bdb4 commit a5ff702

6 files changed

Lines changed: 157 additions & 168 deletions

File tree

src/api/projects.rs

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -26,25 +26,3 @@ impl ModrinthAPI {
2626
.await
2727
}
2828
}
29-
30-
#[cfg(test)]
31-
mod tests {
32-
use super::*;
33-
34-
#[tokio::test]
35-
async fn get_valid_project() -> Result<()> {
36-
let api = ModrinthAPI::default();
37-
// HVnmMxH1 -> Complementary Shaders - Reimagined
38-
let response = api.get_project_by_id("HVnmMxH1").await?;
39-
assert_eq!(response.title, "Complementary Shaders - Reimagined");
40-
Ok(())
41-
}
42-
43-
#[tokio::test]
44-
async fn asrt_slug_error() -> Result<()> {
45-
let api = ModrinthAPI::default();
46-
let response = api.get_project_by_id("dffdsfdsfsdfdsf").await;
47-
assert!(response.is_err());
48-
Ok(())
49-
}
50-
}

src/api/search.rs

Lines changed: 0 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -110,86 +110,3 @@ impl ModrinthAPI {
110110
self.search(query, sort, limit, extended_search).await
111111
}
112112
}
113-
114-
#[cfg(test)]
115-
mod tests {
116-
use super::*;
117-
use crate::structs::{projects::ProjectType, search::Facet};
118-
119-
#[tokio::test]
120-
async fn search_project() -> Result<()> {
121-
let api = ModrinthAPI::default();
122-
let response = api
123-
.search(
124-
"xaeros",
125-
&Sort::Downloads,
126-
None,
127-
Some(ExtendedSearch {
128-
offset: None,
129-
facets: vec![vec![Facet::ProjectType(ProjectType::Mod)]],
130-
}),
131-
)
132-
.await?;
133-
134-
let response = response.hits.first().unwrap();
135-
let title = response.slug.as_ref();
136-
137-
assert!(title.is_some());
138-
assert_eq!(title.ok_or(0), Ok(&String::from("xaeros-minimap")));
139-
Ok(())
140-
}
141-
142-
#[tokio::test]
143-
async fn test_fetching_project_with_mut() -> Result<()> {
144-
let api = ModrinthAPI::default();
145-
let response = api
146-
.search(
147-
"xaeros",
148-
&Sort::Downloads,
149-
None,
150-
Some(ExtendedSearch {
151-
offset: None,
152-
facets: vec![vec![Facet::ProjectType(ProjectType::Mod)]],
153-
}),
154-
)
155-
.await?;
156-
157-
let response = response.hits.first().unwrap();
158-
let title = response.slug.as_ref();
159-
160-
assert!(title.is_some());
161-
assert_eq!(title.ok_or(0), Ok(&String::from("xaeros-minimap")));
162-
163-
let hit = response.to_owned().fetch_project(&api).await?;
164-
165-
assert_eq!(hit.slug.as_ref().unwrap(), &String::from("xaeros-minimap"));
166-
Ok(())
167-
}
168-
169-
#[tokio::test]
170-
async fn test_fetching_project_without_mut() -> Result<()> {
171-
let api = ModrinthAPI::default();
172-
let response = api
173-
.search(
174-
"xaeros",
175-
&Sort::Downloads,
176-
None,
177-
Some(ExtendedSearch {
178-
offset: None,
179-
facets: vec![vec![Facet::ProjectType(ProjectType::Mod)]],
180-
}),
181-
)
182-
.await?;
183-
184-
let response = response.hits.first().unwrap();
185-
let title = response.slug.as_ref();
186-
187-
assert!(title.is_some());
188-
assert_eq!(title.ok_or(0), Ok(&String::from("xaeros-minimap")));
189-
190-
let hit = response.get_full_project(&api).await?;
191-
192-
assert_eq!(hit.slug, String::from("xaeros-minimap"));
193-
Ok(())
194-
}
195-
}

src/api/versions.rs

Lines changed: 0 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -122,65 +122,3 @@ impl ModrinthAPI {
122122
self.client.get(url).custom_send_json().await
123123
}
124124
}
125-
126-
#[cfg(test)]
127-
mod tests {
128-
use super::*;
129-
130-
#[tokio::test]
131-
async fn get_version_from_project() -> Result<()> {
132-
let api = ModrinthAPI::default();
133-
let res = api.get_project_versions("AANobbMI", None).await?;
134-
135-
let result = res.first();
136-
assert!(result.is_some());
137-
assert!(result.unwrap().name.contains("Sodium")); // assume that is Sodium...
138-
Ok(())
139-
}
140-
141-
#[tokio::test]
142-
async fn get_version_from_project_extra() -> Result<()> {
143-
let api = ModrinthAPI::default();
144-
let options = ProjectVersionsFilter {
145-
loaders: Some(&["fabric"]),
146-
game_versions: Some(&["1.20.1"]),
147-
featured: Some(true),
148-
};
149-
let res = api.get_project_versions("AANobbMI", Some(options)).await?;
150-
151-
let result = res.first();
152-
assert!(result.is_some());
153-
assert!(result.unwrap().name.contains("Sodium")); // assume that is Sodium...
154-
Ok(())
155-
}
156-
157-
#[tokio::test]
158-
async fn get_single_version_from_project_extra() -> Result<()> {
159-
let api = ModrinthAPI::default();
160-
let options = ProjectVersionParams {
161-
number: Some("mc1.20.1-0.5.13-fabric"),
162-
loaders: Some(&["fabric"]),
163-
game_versions: Some(&["1.20.1"]),
164-
featured: Some(true),
165-
};
166-
let result = api.get_project_version("AANobbMI", Some(options)).await?;
167-
168-
assert!(result.name.contains("Sodium")); // assume that is Sodium...
169-
Ok(())
170-
}
171-
172-
#[tokio::test]
173-
async fn get_single_version_from_project_with_wrong_id() -> Result<()> {
174-
let api = ModrinthAPI::default();
175-
let options = ProjectVersionParams {
176-
number: Some("2"),
177-
loaders: Some(&["fabric"]),
178-
game_versions: Some(&["1.20.1"]),
179-
featured: Some(true),
180-
};
181-
let result = api.get_project_version("AANobbMI", Some(options)).await;
182-
183-
assert!(result.is_err());
184-
Ok(())
185-
}
186-
}

src/structs/versions.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use serde::{Deserialize, Serialize};
33

44
/// The Version struct
55
///
6-
/// Documentation: https://docs.modrinth.com/api/operations/getprojectversions/#200
6+
/// Documentation: <https://docs.modrinth.com/api/operations/getprojectversions/#200>
77
#[derive(Serialize, Deserialize, Debug)]
88
pub struct Version {
99
pub name: String,

tests/search_tests.rs

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
use modrinth_api::ModrinthAPI;
2+
use modrinth_api::structs::projects::ProjectType;
3+
use modrinth_api::structs::search::{ExtendedSearch, Facet, Sort};
4+
5+
#[tokio::test]
6+
async fn get_valid_project() -> modrinth_api::Result<()> {
7+
let api = ModrinthAPI::default();
8+
// HVnmMxH1 -> Complementary Shaders - Reimagined
9+
let response = api.get_project_by_id("HVnmMxH1").await?;
10+
assert_eq!(response.title, "Complementary Shaders - Reimagined");
11+
Ok(())
12+
}
13+
14+
#[tokio::test]
15+
async fn asrt_slug_error() -> modrinth_api::Result<()> {
16+
let api = ModrinthAPI::default();
17+
let response = api.get_project_by_id("dffdsfdsfsdfdsf").await;
18+
assert!(response.is_err());
19+
Ok(())
20+
}
21+
22+
#[tokio::test]
23+
async fn search_project() -> modrinth_api::Result<()> {
24+
let api = ModrinthAPI::default();
25+
let response = api
26+
.search(
27+
"xaeros",
28+
&Sort::Downloads,
29+
None,
30+
Some(ExtendedSearch {
31+
offset: None,
32+
facets: vec![vec![Facet::ProjectType(ProjectType::Mod)]],
33+
}),
34+
)
35+
.await?;
36+
37+
let response = response.hits.first().unwrap();
38+
let title = response.slug.as_ref();
39+
40+
assert!(title.is_some());
41+
assert_eq!(title.ok_or(0), Ok(&String::from("xaeros-minimap")));
42+
Ok(())
43+
}
44+
45+
#[tokio::test]
46+
async fn test_fetching_project_with_mut() -> modrinth_api::Result<()> {
47+
let api = ModrinthAPI::default();
48+
let response = api
49+
.search(
50+
"xaeros",
51+
&Sort::Downloads,
52+
None,
53+
Some(ExtendedSearch {
54+
offset: None,
55+
facets: vec![vec![Facet::ProjectType(ProjectType::Mod)]],
56+
}),
57+
)
58+
.await?;
59+
60+
let response = response.hits.first().unwrap();
61+
let title = response.slug.as_ref();
62+
63+
assert!(title.is_some());
64+
assert_eq!(title.ok_or(0), Ok(&String::from("xaeros-minimap")));
65+
66+
let hit = response.to_owned().fetch_project(&api).await?;
67+
68+
assert_eq!(hit.slug.as_ref().unwrap(), &String::from("xaeros-minimap"));
69+
Ok(())
70+
}
71+
72+
#[tokio::test]
73+
async fn test_fetching_project_without_mut() -> modrinth_api::Result<()> {
74+
let api = ModrinthAPI::default();
75+
let response = api
76+
.search(
77+
"xaeros",
78+
&Sort::Downloads,
79+
None,
80+
Some(ExtendedSearch {
81+
offset: None,
82+
facets: vec![vec![Facet::ProjectType(ProjectType::Mod)]],
83+
}),
84+
)
85+
.await?;
86+
87+
let response = response.hits.first().unwrap();
88+
let title = response.slug.as_ref();
89+
90+
assert!(title.is_some());
91+
assert_eq!(title.ok_or(0), Ok(&String::from("xaeros-minimap")));
92+
93+
let hit = response.get_full_project(&api).await?;
94+
95+
assert_eq!(hit.slug, String::from("xaeros-minimap"));
96+
Ok(())
97+
}

tests/versions_tests.rs

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
use modrinth_api::ModrinthAPI;
2+
use modrinth_api::structs::versions::{ProjectVersionParams, ProjectVersionsFilter};
3+
4+
#[tokio::test]
5+
async fn get_version_from_project() -> modrinth_api::Result<()> {
6+
let api = ModrinthAPI::default();
7+
let res = api.get_project_versions("AANobbMI", None).await?;
8+
9+
let result = res.first();
10+
assert!(result.is_some());
11+
assert!(result.unwrap().name.contains("Sodium")); // assume that is Sodium...
12+
Ok(())
13+
}
14+
15+
#[tokio::test]
16+
async fn get_version_from_project_extra() -> modrinth_api::Result<()> {
17+
let api = ModrinthAPI::default();
18+
let options = ProjectVersionsFilter {
19+
loaders: Some(&["fabric"]),
20+
game_versions: Some(&["1.20.1"]),
21+
featured: Some(true),
22+
};
23+
let res = api.get_project_versions("AANobbMI", Some(options)).await?;
24+
25+
let result = res.first();
26+
assert!(result.is_some());
27+
assert!(result.unwrap().name.contains("Sodium")); // assume that is Sodium...
28+
Ok(())
29+
}
30+
31+
#[tokio::test]
32+
async fn get_single_version_from_project_extra() -> modrinth_api::Result<()> {
33+
let api = ModrinthAPI::default();
34+
let options = ProjectVersionParams {
35+
number: Some("mc1.20.1-0.5.13-fabric"),
36+
loaders: Some(&["fabric"]),
37+
game_versions: Some(&["1.20.1"]),
38+
featured: Some(true),
39+
};
40+
let result = api.get_project_version("AANobbMI", Some(options)).await?;
41+
42+
assert!(result.name.contains("Sodium")); // assume that is Sodium...
43+
Ok(())
44+
}
45+
46+
#[tokio::test]
47+
async fn get_single_version_from_project_with_wrong_id() -> modrinth_api::Result<()> {
48+
let api = ModrinthAPI::default();
49+
let options = ProjectVersionParams {
50+
number: Some("2"),
51+
loaders: Some(&["fabric"]),
52+
game_versions: Some(&["1.20.1"]),
53+
featured: Some(true),
54+
};
55+
let result = api.get_project_version("AANobbMI", Some(options)).await;
56+
57+
assert!(result.is_err());
58+
Ok(())
59+
}

0 commit comments

Comments
 (0)