changes tests to a macro (#822)

This commit is contained in:
Wyatt Verchere
2024-01-06 11:08:03 -08:00
committed by GitHub
parent 10eed05d87
commit 87862f3e23
32 changed files with 423 additions and 391 deletions

View File

@@ -7,9 +7,9 @@ use bytes::Bytes;
use labrinth::models::{collections::Collection, v3::projects::Project};
use serde_json::json;
use crate::common::{
api_common::{request_data::ImageData, Api, AppendsOptionalPat},
asserts::assert_status,
use crate::{
assert_status,
common::api_common::{request_data::ImageData, Api, AppendsOptionalPat},
};
use super::ApiV3;
@@ -44,7 +44,7 @@ impl ApiV3 {
pub async fn get_collection_deserialized(&self, id: &str, pat: Option<&str>) -> Collection {
let resp = self.get_collection(id, pat).await;
assert_status(&resp, StatusCode::OK);
assert_status!(&resp, StatusCode::OK);
test::read_body_json(resp).await
}
@@ -74,7 +74,7 @@ impl ApiV3 {
pat: Option<&str>,
) -> Vec<Project> {
let resp = self.get_collection_projects(id, pat).await;
assert_status(&resp, StatusCode::OK);
assert_status!(&resp, StatusCode::OK);
test::read_body_json(resp).await
}
@@ -149,7 +149,7 @@ impl ApiV3 {
pat: Option<&str>,
) -> Vec<Collection> {
let resp = self.get_user_collections(user_id_or_username, pat).await;
assert_status(&resp, StatusCode::OK);
assert_status!(&resp, StatusCode::OK);
// First, deserialize to the non-common format (to test the response is valid for this api version)
let projects: Vec<Project> = test::read_body_json(resp).await;
// Then, deserialize to the common format

View File

@@ -10,9 +10,9 @@ use labrinth::auth::oauth::{
};
use reqwest::header::{AUTHORIZATION, LOCATION};
use crate::common::{
api_common::{Api, AppendsOptionalPat},
asserts::assert_status,
use crate::{
assert_status,
common::api_common::{Api, AppendsOptionalPat},
};
use super::ApiV3;
@@ -117,20 +117,20 @@ pub fn generate_authorize_uri(
}
pub async fn get_authorize_accept_flow_id(response: ServiceResponse) -> String {
assert_status(&response, StatusCode::OK);
assert_status!(&response, StatusCode::OK);
test::read_body_json::<OAuthClientAccessRequest, _>(response)
.await
.flow_id
}
pub async fn get_auth_code_from_redirect_params(response: &ServiceResponse) -> String {
assert_status(response, StatusCode::OK);
assert_status!(response, StatusCode::OK);
let query_params = get_redirect_location_query_params(response);
query_params.get("code").unwrap().to_string()
}
pub async fn get_access_token(response: ServiceResponse) -> String {
assert_status(&response, StatusCode::OK);
assert_status!(&response, StatusCode::OK);
test::read_body_json::<TokenResponse, _>(response)
.await
.access_token

View File

@@ -12,9 +12,9 @@ use labrinth::{
};
use serde_json::json;
use crate::common::{
api_common::{Api, AppendsOptionalPat},
asserts::assert_status,
use crate::{
assert_status,
common::api_common::{Api, AppendsOptionalPat},
};
use super::ApiV3;
@@ -51,7 +51,7 @@ impl ApiV3 {
.append_pat(pat)
.to_request();
let resp = self.call(req).await;
assert_status(&resp, StatusCode::OK);
assert_status!(&resp, StatusCode::OK);
test::read_body_json(resp).await
}
@@ -116,7 +116,7 @@ impl ApiV3 {
.append_pat(pat)
.to_request();
let resp = self.call(req).await;
assert_status(&resp, StatusCode::OK);
assert_status!(&resp, StatusCode::OK);
test::read_body_json(resp).await
}

View File

@@ -7,9 +7,9 @@ use bytes::Bytes;
use labrinth::models::{organizations::Organization, users::UserId, v3::projects::Project};
use serde_json::json;
use crate::common::{
api_common::{request_data::ImageData, Api, AppendsOptionalPat},
asserts::assert_status,
use crate::{
assert_status,
common::api_common::{request_data::ImageData, Api, AppendsOptionalPat},
};
use super::ApiV3;
@@ -48,7 +48,7 @@ impl ApiV3 {
pat: Option<&str>,
) -> Organization {
let resp = self.get_organization(id_or_title, pat).await;
assert_status(&resp, StatusCode::OK);
assert_status!(&resp, StatusCode::OK);
test::read_body_json(resp).await
}
@@ -86,7 +86,7 @@ impl ApiV3 {
pat: Option<&str>,
) -> Vec<Project> {
let resp = self.get_organization_projects(id_or_title, pat).await;
assert_status(&resp, StatusCode::OK);
assert_status!(&resp, StatusCode::OK);
test::read_body_json(resp).await
}

View File

@@ -16,15 +16,17 @@ use labrinth::{
use rust_decimal::Decimal;
use serde_json::json;
use crate::common::{
api_common::{
models::{CommonItemType, CommonProject, CommonVersion},
request_data::{ImageData, ProjectCreationRequestData},
Api, ApiProject, AppendsOptionalPat,
use crate::{
assert_status,
common::{
api_common::{
models::{CommonItemType, CommonProject, CommonVersion},
request_data::{ImageData, ProjectCreationRequestData},
Api, ApiProject, AppendsOptionalPat,
},
database::MOD_USER_PAT,
dummy_data::TestFile,
},
asserts::assert_status,
database::MOD_USER_PAT,
dummy_data::TestFile,
};
use super::{
@@ -46,7 +48,7 @@ impl ApiProject for ApiV3 {
// Add a project.
let slug = creation_data.slug.clone();
let resp = self.create_project(creation_data, pat).await;
assert_status(&resp, StatusCode::OK);
assert_status!(&resp, StatusCode::OK);
// Approve as a moderator.
let req = TestRequest::patch()
@@ -59,7 +61,7 @@ impl ApiProject for ApiV3 {
))
.to_request();
let resp = self.call(req).await;
assert_status(&resp, StatusCode::NO_CONTENT);
assert_status!(&resp, StatusCode::NO_CONTENT);
let project = self.get_project(&slug, pat).await;
let project = test::read_body_json(project).await;
@@ -119,7 +121,7 @@ impl ApiProject for ApiV3 {
pat: Option<&str>,
) -> CommonProject {
let resp = self.get_project(id_or_slug, pat).await;
assert_status(&resp, StatusCode::OK);
assert_status!(&resp, StatusCode::OK);
// First, deserialize to the non-common format (to test the response is valid for this api version)
let project: Project = test::read_body_json(resp).await;
// Then, deserialize to the common format
@@ -169,7 +171,7 @@ impl ApiProject for ApiV3 {
pat: Option<&str>,
) -> Vec<CommonProject> {
let resp = self.get_user_projects(user_id_or_username, pat).await;
assert_status(&resp, StatusCode::OK);
assert_status!(&resp, StatusCode::OK);
// First, deserialize to the non-common format (to test the response is valid for this api version)
let projects: Vec<Project> = test::read_body_json(resp).await;
// Then, deserialize to the common format
@@ -477,7 +479,7 @@ impl ApiProject for ApiV3 {
impl ApiV3 {
pub async fn get_project_deserialized(&self, id_or_slug: &str, pat: Option<&str>) -> Project {
let resp = self.get_project(id_or_slug, pat).await;
assert_status(&resp, StatusCode::OK);
assert_status!(&resp, StatusCode::OK);
test::read_body_json(resp).await
}
@@ -500,7 +502,7 @@ impl ApiV3 {
pat: Option<&str>,
) -> Organization {
let resp = self.get_project_organization(id_or_slug, pat).await;
assert_status(&resp, StatusCode::OK);
assert_status!(&resp, StatusCode::OK);
test::read_body_json(resp).await
}
@@ -527,7 +529,7 @@ impl ApiV3 {
.append_pat(pat)
.to_request();
let resp = self.call(req).await;
assert_status(&resp, StatusCode::OK);
assert_status!(&resp, StatusCode::OK);
test::read_body_json(resp).await
}
@@ -594,7 +596,7 @@ impl ApiV3 {
pat,
)
.await;
assert_status(&resp, StatusCode::OK);
assert_status!(&resp, StatusCode::OK);
test::read_body_json(resp).await
}
}

View File

@@ -9,13 +9,15 @@ use labrinth::{
database::models::loader_fields::LoaderFieldEnumValue, routes::v3::tags::CategoryData,
};
use crate::common::{
api_common::{
models::{CommonCategoryData, CommonLoaderData},
Api, ApiTags, AppendsOptionalPat,
use crate::{
assert_status,
common::{
api_common::{
models::{CommonCategoryData, CommonLoaderData},
Api, ApiTags, AppendsOptionalPat,
},
database::ADMIN_USER_PAT,
},
asserts::assert_status,
database::ADMIN_USER_PAT,
};
use super::ApiV3;
@@ -32,7 +34,7 @@ impl ApiTags for ApiV3 {
async fn get_loaders_deserialized_common(&self) -> Vec<CommonLoaderData> {
let resp = self.get_loaders().await;
assert_status(&resp, StatusCode::OK);
assert_status!(&resp, StatusCode::OK);
// First, deserialize to the non-common format (to test the response is valid for this api version)
let v: Vec<LoaderData> = test::read_body_json(resp).await;
// Then, deserialize to the common format
@@ -50,7 +52,7 @@ impl ApiTags for ApiV3 {
async fn get_categories_deserialized_common(&self) -> Vec<CommonCategoryData> {
let resp = self.get_categories().await;
assert_status(&resp, StatusCode::OK);
assert_status!(&resp, StatusCode::OK);
// First, deserialize to the non-common format (to test the response is valid for this api version)
let v: Vec<CategoryData> = test::read_body_json(resp).await;
// Then, deserialize to the common format
@@ -62,7 +64,7 @@ impl ApiTags for ApiV3 {
impl ApiV3 {
pub async fn get_loaders_deserialized(&self) -> Vec<LoaderData> {
let resp = self.get_loaders().await;
assert_status(&resp, StatusCode::OK);
assert_status!(&resp, StatusCode::OK);
test::read_body_json(resp).await
}
@@ -79,7 +81,7 @@ impl ApiV3 {
loader_field: &str,
) -> Vec<LoaderFieldEnumValue> {
let resp = self.get_loader_field_variants(loader_field).await;
assert_status(&resp, StatusCode::OK);
assert_status!(&resp, StatusCode::OK);
test::read_body_json(resp).await
}
@@ -94,7 +96,7 @@ impl ApiV3 {
pub async fn get_games_deserialized(&self) -> Vec<GameData> {
let resp = self.get_games().await;
assert_status(&resp, StatusCode::OK);
assert_status!(&resp, StatusCode::OK);
test::read_body_json(resp).await
}
}

View File

@@ -7,12 +7,12 @@ use labrinth::models::{
};
use serde_json::json;
use crate::common::{
api_common::{
use crate::{
assert_status,
common::api_common::{
models::{CommonNotification, CommonTeamMember},
Api, ApiTeams, AppendsOptionalPat,
},
asserts::assert_status,
};
use super::ApiV3;
@@ -24,7 +24,7 @@ impl ApiV3 {
pat: Option<&str>,
) -> Vec<TeamMember> {
let resp = self.get_organization_members(id_or_title, pat).await;
assert_status(&resp, StatusCode::OK);
assert_status!(&resp, StatusCode::OK);
test::read_body_json(resp).await
}
@@ -34,7 +34,7 @@ impl ApiV3 {
pat: Option<&str>,
) -> Vec<TeamMember> {
let resp = self.get_team_members(team_id, pat).await;
assert_status(&resp, StatusCode::OK);
assert_status!(&resp, StatusCode::OK);
test::read_body_json(resp).await
}
@@ -44,7 +44,7 @@ impl ApiV3 {
pat: Option<&str>,
) -> Vec<TeamMember> {
let resp = self.get_project_members(project_id, pat).await;
assert_status(&resp, StatusCode::OK);
assert_status!(&resp, StatusCode::OK);
test::read_body_json(resp).await
}
}
@@ -65,7 +65,7 @@ impl ApiTeams for ApiV3 {
pat: Option<&str>,
) -> Vec<CommonTeamMember> {
let resp = self.get_team_members(id_or_title, pat).await;
assert_status(&resp, StatusCode::OK);
assert_status!(&resp, StatusCode::OK);
// First, deserialize to the non-common format (to test the response is valid for this api version)
let v: Vec<TeamMember> = test::read_body_json(resp).await;
// Then, deserialize to the common format
@@ -103,7 +103,7 @@ impl ApiTeams for ApiV3 {
pat: Option<&str>,
) -> Vec<CommonTeamMember> {
let resp = self.get_project_members(id_or_title, pat).await;
assert_status(&resp, StatusCode::OK);
assert_status!(&resp, StatusCode::OK);
// First, deserialize to the non-common format (to test the response is valid for this api version)
let v: Vec<TeamMember> = test::read_body_json(resp).await;
// Then, deserialize to the common format
@@ -129,7 +129,7 @@ impl ApiTeams for ApiV3 {
pat: Option<&str>,
) -> Vec<CommonTeamMember> {
let resp = self.get_organization_members(id_or_title, pat).await;
assert_status(&resp, StatusCode::OK);
assert_status!(&resp, StatusCode::OK);
// First, deserialize to the non-common format (to test the response is valid for this api version)
let v: Vec<TeamMember> = test::read_body_json(resp).await;
// Then, deserialize to the common format
@@ -203,7 +203,7 @@ impl ApiTeams for ApiV3 {
pat: Option<&str>,
) -> Vec<CommonNotification> {
let resp = self.get_user_notifications(user_id, pat).await;
assert_status(&resp, StatusCode::OK);
assert_status!(&resp, StatusCode::OK);
// First, deserialize to the non-common format (to test the response is valid for this api version)
let v: Vec<Notification> = test::read_body_json(resp).await;
// Then, deserialize to the common format

View File

@@ -4,10 +4,12 @@ use super::{
request_data::{self, get_public_version_creation_data},
ApiV3,
};
use crate::common::{
api_common::{models::CommonVersion, Api, ApiVersion, AppendsOptionalPat},
asserts::assert_status,
dummy_data::TestFile,
use crate::{
assert_status,
common::{
api_common::{models::CommonVersion, Api, ApiVersion, AppendsOptionalPat},
dummy_data::TestFile,
},
};
use actix_http::StatusCode;
use actix_web::{
@@ -50,17 +52,17 @@ impl ApiV3 {
pat,
)
.await;
assert_status(&resp, StatusCode::OK);
assert_status!(&resp, StatusCode::OK);
let value: serde_json::Value = test::read_body_json(resp).await;
let version_id = value["id"].as_str().unwrap();
let version = self.get_version(version_id, pat).await;
assert_status(&version, StatusCode::OK);
assert_status!(&version, StatusCode::OK);
test::read_body_json(version).await
}
pub async fn get_version_deserialized(&self, id: &str, pat: Option<&str>) -> Version {
let resp = self.get_version(id, pat).await;
assert_status(&resp, StatusCode::OK);
assert_status!(&resp, StatusCode::OK);
test::read_body_json(resp).await
}
@@ -88,7 +90,7 @@ impl ApiV3 {
pat: Option<&str>,
) -> HashMap<String, Version> {
let resp = self.update_individual_files(algorithm, hashes, pat).await;
assert_status(&resp, StatusCode::OK);
assert_status!(&resp, StatusCode::OK);
test::read_body_json(resp).await
}
}
@@ -140,7 +142,7 @@ impl ApiVersion for ApiV3 {
pat,
)
.await;
assert_status(&resp, StatusCode::OK);
assert_status!(&resp, StatusCode::OK);
// First, deserialize to the non-common format (to test the response is valid for this api version)
let v: Version = test::read_body_json(resp).await;
// Then, deserialize to the common format
@@ -158,7 +160,7 @@ impl ApiVersion for ApiV3 {
async fn get_version_deserialized_common(&self, id: &str, pat: Option<&str>) -> CommonVersion {
let resp = self.get_version(id, pat).await;
assert_status(&resp, StatusCode::OK);
assert_status!(&resp, StatusCode::OK);
// First, deserialize to the non-common format (to test the response is valid for this api version)
let v: Version = test::read_body_json(resp).await;
// Then, deserialize to the common format
@@ -217,7 +219,7 @@ impl ApiVersion for ApiV3 {
pat: Option<&str>,
) -> CommonVersion {
let resp = self.get_version_from_hash(hash, algorithm, pat).await;
assert_status(&resp, StatusCode::OK);
assert_status!(&resp, StatusCode::OK);
// First, deserialize to the non-common format (to test the response is valid for this api version)
let v: Version = test::read_body_json(resp).await;
// Then, deserialize to the common format
@@ -249,7 +251,7 @@ impl ApiVersion for ApiV3 {
pat: Option<&str>,
) -> HashMap<String, CommonVersion> {
let resp = self.get_versions_from_hashes(hashes, algorithm, pat).await;
assert_status(&resp, StatusCode::OK);
assert_status!(&resp, StatusCode::OK);
// First, deserialize to the non-common format (to test the response is valid for this api version)
let v: HashMap<String, Version> = test::read_body_json(resp).await;
// Then, deserialize to the common format
@@ -301,7 +303,7 @@ impl ApiVersion for ApiV3 {
let resp = self
.get_update_from_hash(hash, algorithm, loaders, game_versions, version_types, pat)
.await;
assert_status(&resp, StatusCode::OK);
assert_status!(&resp, StatusCode::OK);
// First, deserialize to the non-common format (to test the response is valid for this api version)
let v: Version = test::read_body_json(resp).await;
// Then, deserialize to the common format
@@ -361,7 +363,7 @@ impl ApiVersion for ApiV3 {
pat,
)
.await;
assert_status(&resp, StatusCode::OK);
assert_status!(&resp, StatusCode::OK);
// First, deserialize to the non-common format (to test the response is valid for this api version)
let v: HashMap<String, Version> = test::read_body_json(resp).await;
// Then, deserialize to the common format
@@ -444,7 +446,7 @@ impl ApiVersion for ApiV3 {
pat,
)
.await;
assert_status(&resp, StatusCode::OK);
assert_status!(&resp, StatusCode::OK);
// First, deserialize to the non-common format (to test the response is valid for this api version)
let v: Vec<Version> = test::read_body_json(resp).await;
// Then, deserialize to the common format
@@ -486,7 +488,7 @@ impl ApiVersion for ApiV3 {
pat: Option<&str>,
) -> Vec<CommonVersion> {
let resp = self.get_versions(version_ids, pat).await;
assert_status(&resp, StatusCode::OK);
assert_status!(&resp, StatusCode::OK);
// First, deserialize to the non-common format (to test the response is valid for this api version)
let v: Vec<Version> = test::read_body_json(resp).await;
// Then, deserialize to the common format