2023-11-28 10:36:59 -08:00
|
|
|
use crate::common::api_v2::request_data::get_public_project_creation_data;
|
|
|
|
|
use crate::common::api_v2::request_data::get_public_version_creation_data;
|
2023-11-25 13:42:39 -08:00
|
|
|
use crate::common::api_v2::ApiV2;
|
2023-11-28 10:36:59 -08:00
|
|
|
use crate::common::dummy_data::TestFile;
|
2023-11-25 13:42:39 -08:00
|
|
|
use crate::common::environment::with_test_environment;
|
2023-11-16 10:36:03 -08:00
|
|
|
use crate::common::environment::TestEnvironment;
|
|
|
|
|
use crate::common::scopes::ScopeTest;
|
|
|
|
|
use actix_web::test;
|
2023-11-28 10:36:59 -08:00
|
|
|
use labrinth::models::ids::base62_impl::parse_base62;
|
2023-11-16 10:36:03 -08:00
|
|
|
use labrinth::models::pats::Scopes;
|
2023-11-28 10:36:59 -08:00
|
|
|
use labrinth::models::projects::ProjectId;
|
2023-11-16 10:36:03 -08:00
|
|
|
use labrinth::util::actix::AppendsMultipart;
|
|
|
|
|
|
|
|
|
|
// Project version creation scopes
|
|
|
|
|
#[actix_rt::test]
|
|
|
|
|
pub async fn project_version_create_scopes() {
|
2023-11-25 13:42:39 -08:00
|
|
|
with_test_environment(None, |test_env: TestEnvironment<ApiV2>| async move {
|
|
|
|
|
// Create project
|
|
|
|
|
let create_project = Scopes::PROJECT_CREATE;
|
|
|
|
|
|
|
|
|
|
let req_gen = || {
|
2023-11-28 10:36:59 -08:00
|
|
|
let creation_data =
|
|
|
|
|
get_public_project_creation_data("demo", Some(TestFile::BasicMod), None);
|
2023-11-25 13:42:39 -08:00
|
|
|
test::TestRequest::post()
|
2023-11-28 10:36:59 -08:00
|
|
|
.uri("/v2/project")
|
|
|
|
|
.set_multipart(creation_data.segment_data)
|
2023-11-25 13:42:39 -08:00
|
|
|
};
|
|
|
|
|
let (_, success) = ScopeTest::new(&test_env)
|
|
|
|
|
.test(req_gen, create_project)
|
|
|
|
|
.await
|
|
|
|
|
.unwrap();
|
|
|
|
|
let project_id = success["id"].as_str().unwrap();
|
2023-11-28 10:36:59 -08:00
|
|
|
let project_id = ProjectId(parse_base62(project_id).unwrap());
|
2023-11-16 10:36:03 -08:00
|
|
|
|
2023-11-25 13:42:39 -08:00
|
|
|
// Add version to project
|
|
|
|
|
let create_version = Scopes::VERSION_CREATE;
|
|
|
|
|
let req_gen = || {
|
2023-11-28 10:36:59 -08:00
|
|
|
let creation_data = get_public_version_creation_data(
|
|
|
|
|
project_id,
|
|
|
|
|
"1.2.3.4",
|
|
|
|
|
TestFile::BasicModDifferent,
|
|
|
|
|
None,
|
|
|
|
|
None,
|
|
|
|
|
);
|
2023-11-25 13:42:39 -08:00
|
|
|
test::TestRequest::post()
|
2023-11-28 10:36:59 -08:00
|
|
|
.uri("/v2/version")
|
|
|
|
|
.set_multipart(creation_data.segment_data)
|
2023-11-25 13:42:39 -08:00
|
|
|
};
|
|
|
|
|
ScopeTest::new(&test_env)
|
|
|
|
|
.test(req_gen, create_version)
|
|
|
|
|
.await
|
|
|
|
|
.unwrap();
|
|
|
|
|
})
|
|
|
|
|
.await;
|
2023-11-16 10:36:03 -08:00
|
|
|
}
|