From 1e28aad8d6bcaf222ce120c17e376f789cf88a8d Mon Sep 17 00:00:00 2001 From: Oguz Kocer Date: Thu, 23 May 2024 16:07:31 -0400 Subject: [PATCH 1/3] Use partial default over mutable let for params --- wp_api/tests/test_users_err.rs | 72 ++++++++++++++++++++++------------ wp_api/tests/test_users_mut.rs | 60 ++++++++++++++++++---------- 2 files changed, 88 insertions(+), 44 deletions(-) diff --git a/wp_api/tests/test_users_err.rs b/wp_api/tests/test_users_err.rs index 54dbd9aa4..c7aef0951 100644 --- a/wp_api/tests/test_users_err.rs +++ b/wp_api/tests/test_users_err.rs @@ -83,8 +83,10 @@ async fn list_users_err_forbidden_context() { #[tokio::test] async fn list_users_err_forbidden_orderby_email() { - let mut params = UserListParams::default(); - params.orderby = Some(WPApiParamUsersOrderBy::Email); + let params = UserListParams { + orderby: Some(WPApiParamUsersOrderBy::Email), + ..Default::default() + }; api_as_subscriber() .list_users_request(WPContext::View, &Some(params)) .execute() @@ -96,8 +98,10 @@ async fn list_users_err_forbidden_orderby_email() { #[tokio::test] async fn list_users_err_forbidden_who() { - let mut params = UserListParams::default(); - params.who = Some(WPApiParamUsersWho::Authors); + let params = UserListParams { + who: Some(WPApiParamUsersWho::Authors), + ..Default::default() + }; api_as_subscriber() .list_users_request(WPContext::View, &Some(params)) .execute() @@ -109,8 +113,10 @@ async fn list_users_err_forbidden_who() { #[tokio::test] async fn list_users_with_capabilities_err_user_cannot_view() { - let mut params = UserListParams::default(); - params.capabilities = vec!["foo".to_string()]; + let params = UserListParams { + capabilities: vec!["foo".to_string()], + ..Default::default() + }; api_as_subscriber() .list_users_request(WPContext::Edit, &Some(params)) .execute() @@ -122,8 +128,10 @@ async fn list_users_with_capabilities_err_user_cannot_view() { #[tokio::test] async fn list_users_with_roles_err_user_cannot_view() { - let mut params = UserListParams::default(); - params.roles = vec!["foo".to_string()]; + let params = UserListParams { + roles: vec!["foo".to_string()], + ..Default::default() + }; api_as_subscriber() .list_users_request(WPContext::Edit, &Some(params)) .execute() @@ -135,8 +143,10 @@ async fn list_users_with_roles_err_user_cannot_view() { #[tokio::test] async fn list_users_orderby_registered_date_err_forbidden_orderby() { - let mut params = UserListParams::default(); - params.orderby = Some(WPApiParamUsersOrderBy::RegisteredDate); + let params = UserListParams { + orderby: Some(WPApiParamUsersOrderBy::RegisteredDate), + ..Default::default() + }; api_as_subscriber() .list_users_request(WPContext::View, &Some(params)) .execute() @@ -173,8 +183,10 @@ async fn retrieve_user_err_unauthorized() { #[tokio::test] async fn update_user_err_cannot_edit() { - let mut params = UserUpdateParams::default(); - params.slug = Some("new_slug".to_string()); + let params = UserUpdateParams { + slug: Some("new_slug".to_string()), + ..Default::default() + }; // Subscribers can't update someone else's slug api_as_subscriber() .update_user_request(FIRST_USER_ID, ¶ms) @@ -206,8 +218,10 @@ async fn update_user_err_user_invalid_argument() { #[tokio::test] async fn update_user_err_cannot_edit_roles() { - let mut params = UserUpdateParams::default(); - params.roles = vec!["new_role".to_string()]; + let params = UserUpdateParams { + roles: vec!["new_role".to_string()], + ..Default::default() + }; // Subscribers can't update their roles api_as_subscriber() .update_user_request(SECOND_USER_ID, ¶ms) @@ -220,8 +234,10 @@ async fn update_user_err_cannot_edit_roles() { #[tokio::test] async fn update_user_err_user_invalid_email() { - let mut params = UserUpdateParams::default(); - params.email = Some(SECOND_USER_EMAIL.to_string()); + let params = UserUpdateParams { + email: Some(SECOND_USER_EMAIL.to_string()), + ..Default::default() + }; // Can't update user's email to an email that's already in use api() .update_user_request(FIRST_USER_ID, ¶ms) @@ -234,8 +250,10 @@ async fn update_user_err_user_invalid_email() { #[tokio::test] async fn update_user_email_err_invalid_param() { - let mut params = UserUpdateParams::default(); - params.email = Some("not_valid".to_string()); + let params = UserUpdateParams { + email: Some("not_valid".to_string()), + ..Default::default() + }; api() .update_user_request(FIRST_USER_ID, ¶ms) .execute() @@ -247,8 +265,10 @@ async fn update_user_email_err_invalid_param() { #[tokio::test] async fn update_user_password_err_invalid_param() { - let mut params = UserUpdateParams::default(); - params.password = Some("".to_string()); + let params = UserUpdateParams { + password: Some("".to_string()), + ..Default::default() + }; api() .update_user_request(FIRST_USER_ID, ¶ms) .execute() @@ -260,8 +280,10 @@ async fn update_user_password_err_invalid_param() { #[tokio::test] async fn update_user_err_user_invalid_role() { - let mut params = UserUpdateParams::default(); - params.roles = vec!["doesnt_exist".to_string()]; + let params = UserUpdateParams { + roles: vec!["doesnt_exist".to_string()], + ..Default::default() + }; // Can't update user's email to a role that doesn't exist api() .update_user_request(FIRST_USER_ID, ¶ms) @@ -274,8 +296,10 @@ async fn update_user_err_user_invalid_role() { #[tokio::test] async fn update_user_err_user_invalid_slug() { - let mut params = UserUpdateParams::default(); - params.slug = Some(SECOND_USER_SLUG.to_string()); + let params = UserUpdateParams { + slug: Some(SECOND_USER_SLUG.to_string()), + ..Default::default() + }; // Can't update user's slug to a slug that's already in use api() .update_user_request(FIRST_USER_ID, ¶ms) diff --git a/wp_api/tests/test_users_mut.rs b/wp_api/tests/test_users_mut.rs index 4b054725a..fe149a06d 100644 --- a/wp_api/tests/test_users_mut.rs +++ b/wp_api/tests/test_users_mut.rs @@ -89,8 +89,10 @@ async fn delete_current_user() { #[tokio::test] async fn update_user_name() { let new_name = "new_name"; - let mut params = UserUpdateParams::default(); - params.name = Some(new_name.to_string()); + let params = UserUpdateParams { + name: Some(new_name.to_string()), + ..Default::default() + }; test_update_user(params, |user, _| { assert_eq!(user.name, new_name); }) @@ -100,8 +102,10 @@ async fn update_user_name() { #[tokio::test] async fn update_user_first_name() { let new_first_name = "new_first_name"; - let mut params = UserUpdateParams::default(); - params.first_name = Some(new_first_name.to_string()); + let params = UserUpdateParams { + first_name: Some(new_first_name.to_string()), + ..Default::default() + }; test_update_user(params, |_, meta_list| { assert_eq!(find_meta(&meta_list, "first_name"), new_first_name); }) @@ -111,8 +115,10 @@ async fn update_user_first_name() { #[tokio::test] async fn update_user_last_name() { let new_last_name = "new_last_name"; - let mut params = UserUpdateParams::default(); - params.last_name = Some(new_last_name.to_string()); + let params = UserUpdateParams { + last_name: Some(new_last_name.to_string()), + ..Default::default() + }; test_update_user(params, |_, meta_list| { assert_eq!(find_meta(&meta_list, "last_name"), new_last_name); }) @@ -122,8 +128,10 @@ async fn update_user_last_name() { #[tokio::test] async fn update_user_email() { let new_email = "new_email@example.com"; - let mut params = UserUpdateParams::default(); - params.email = Some(new_email.to_string()); + let params = UserUpdateParams { + email: Some(new_email.to_string()), + ..Default::default() + }; test_update_user(params, |user, _| { assert_eq!(user.email, new_email); }) @@ -133,8 +141,10 @@ async fn update_user_email() { #[tokio::test] async fn update_user_url() { let new_url = "https://new_url"; - let mut params = UserUpdateParams::default(); - params.url = Some(new_url.to_string()); + let params = UserUpdateParams { + url: Some(new_url.to_string()), + ..Default::default() + }; test_update_user(params, |user, _| { assert_eq!(user.url, new_url); }) @@ -144,8 +154,10 @@ async fn update_user_url() { #[tokio::test] async fn update_user_description() { let new_description = "new_description"; - let mut params = UserUpdateParams::default(); - params.description = Some(new_description.to_string()); + let params = UserUpdateParams { + description: Some(new_description.to_string()), + ..Default::default() + }; test_update_user(params, |_, meta_list| { assert_eq!(find_meta(&meta_list, "description"), new_description); }) @@ -155,8 +167,10 @@ async fn update_user_description() { #[tokio::test] async fn update_user_nickname() { let new_nickname = "new_nickname"; - let mut params = UserUpdateParams::default(); - params.nickname = Some(new_nickname.to_string()); + let params = UserUpdateParams { + nickname: Some(new_nickname.to_string()), + ..Default::default() + }; test_update_user(params, |_, meta_list| { assert_eq!(find_meta(&meta_list, "nickname"), new_nickname); }) @@ -166,8 +180,10 @@ async fn update_user_nickname() { #[tokio::test] async fn update_user_slug() { let new_slug = "new_slug"; - let mut params = UserUpdateParams::default(); - params.slug = Some(new_slug.to_string()); + let params = UserUpdateParams { + slug: Some(new_slug.to_string()), + ..Default::default() + }; test_update_user(params, |user, _| { assert_eq!(user.slug, new_slug); }) @@ -178,8 +194,10 @@ async fn update_user_slug() { async fn update_user_roles() { wp_db::run_and_restore(|_| async move { let new_role = "new_role"; - let mut params = UserUpdateParams::default(); - params.roles = vec![new_role.to_string()]; + let params = UserUpdateParams { + roles: vec![new_role.to_string()], + ..Default::default() + }; let user_update_response = api() .update_user_request(FIRST_USER_ID, ¶ms) .execute() @@ -195,8 +213,10 @@ async fn update_user_roles() { async fn update_user_password() { wp_db::run_and_restore(|_| async move { let new_password = "new_password"; - let mut params = UserUpdateParams::default(); - params.password = Some(new_password.to_string()); + let params = UserUpdateParams { + password: Some(new_password.to_string()), + ..Default::default() + }; let user_update_response = api() .update_user_request(FIRST_USER_ID, ¶ms) .execute() From 3738d0785a9ead90deb5ac1cc8229328cf0acf7a Mon Sep 17 00:00:00 2001 From: Oguz Kocer Date: Thu, 23 May 2024 16:11:31 -0400 Subject: [PATCH 2/3] Various minor clippy fixes in tests --- wp_api/src/request/endpoint/users_endpoint.rs | 6 +++--- wp_api/tests/test_plugins_immut.rs | 2 +- wp_api/tests/test_users_immut.rs | 2 +- wp_api/tests/test_users_mut.rs | 6 +++--- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/wp_api/src/request/endpoint/users_endpoint.rs b/wp_api/src/request/endpoint/users_endpoint.rs index b0939191c..01b527dc0 100644 --- a/wp_api/src/request/endpoint/users_endpoint.rs +++ b/wp_api/src/request/endpoint/users_endpoint.rs @@ -176,7 +176,7 @@ mod tests { has_published_posts: Some(true), }; validate_endpoint( - users_endpoint.filter_list(WPContext::Edit, Some(¶ms), &vec![SparseUserField::Name, SparseUserField::Email]), + users_endpoint.filter_list(WPContext::Edit, Some(¶ms), &[SparseUserField::Name, SparseUserField::Email]), "/users?context=edit&page=2&per_page=60&search=foo&slug=bar%2Cbaz&has_published_posts=true&_fields=name%2Cemail", ); } @@ -195,7 +195,7 @@ mod tests { users_endpoint.filter_retrieve( UserId(98), WPContext::View, - &vec![SparseUserField::Nickname, SparseUserField::Url], + &[SparseUserField::Nickname, SparseUserField::Url], ), "/users/98?context=view&_fields=nickname%2Curl", ); @@ -214,7 +214,7 @@ mod tests { validate_endpoint( users_endpoint.filter_retrieve_me( WPContext::Embed, - &vec![SparseUserField::Roles, SparseUserField::Capabilities], + &[SparseUserField::Roles, SparseUserField::Capabilities], ), "/users/me?context=embed&_fields=roles%2Ccapabilities", ); diff --git a/wp_api/tests/test_plugins_immut.rs b/wp_api/tests/test_plugins_immut.rs index fd4b49973..6e19040d8 100644 --- a/wp_api/tests/test_plugins_immut.rs +++ b/wp_api/tests/test_plugins_immut.rs @@ -34,7 +34,7 @@ async fn filter_plugins( parsed_response .unwrap() .iter() - .for_each(|plugin| validate_sparse_plugin_fields(&plugin, fields)); + .for_each(|plugin| validate_sparse_plugin_fields(plugin, fields)); } #[apply(filter_fields_cases)] diff --git a/wp_api/tests/test_users_immut.rs b/wp_api/tests/test_users_immut.rs index f2381b8a9..61ffe3ac1 100644 --- a/wp_api/tests/test_users_immut.rs +++ b/wp_api/tests/test_users_immut.rs @@ -27,7 +27,7 @@ async fn filter_users(#[case] fields: &[SparseUserField]) { parsed_response .unwrap() .iter() - .for_each(|user| validate_sparse_user_fields(&user, fields)); + .for_each(|user| validate_sparse_user_fields(user, fields)); } #[apply(filter_fields_cases)] diff --git a/wp_api/tests/test_users_mut.rs b/wp_api/tests/test_users_mut.rs index fe149a06d..069e59871 100644 --- a/wp_api/tests/test_users_mut.rs +++ b/wp_api/tests/test_users_mut.rs @@ -73,7 +73,7 @@ async fn delete_current_user() { .unwrap() .parse(wp_api::users::parse_delete_user_response) .unwrap(); - assert_eq!(true, deleted_user.deleted); + assert!(deleted_user.deleted); assert_eq!(FIRST_USER_ID, deleted_user.previous.id); // Assert that the DB doesn't have a record of the user anymore @@ -230,7 +230,7 @@ async fn update_user_password() { async fn test_update_user(params: UserUpdateParams, assert: F) where - F: Fn(DbUser, Vec) -> (), + F: Fn(DbUser, Vec), { wp_db::run_and_restore(|mut db| async move { let user_update_response = api() @@ -246,7 +246,7 @@ where .await; } -fn find_meta(meta_list: &Vec, meta_key: &str) -> String { +fn find_meta(meta_list: &[DbUserMeta], meta_key: &str) -> String { meta_list .iter() .find_map(|m| { From 19b93491962029afb6b9f4cef6771e9c405e46d0 Mon Sep 17 00:00:00 2001 From: Oguz Kocer Date: Thu, 23 May 2024 16:19:30 -0400 Subject: [PATCH 3/3] Run clippy in tests in 'lint-rust' Make task --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 48c378f62..83bb803be 100644 --- a/Makefile +++ b/Makefile @@ -212,7 +212,7 @@ delete-wp-plugins-backup: lint: lint-rust lint-swift lint-rust: - $(rust_docker_run) /bin/bash -c "rustup component add clippy && cargo clippy --all -- -D warnings" + $(rust_docker_run) /bin/bash -c "rustup component add clippy && cargo clippy --all -- -D warnings && cargo clippy --tests --all -- -D warnings" lint-swift: docker run -v $(PWD):$(docker_container_repo_dir) -w $(docker_container_repo_dir) -it $(swiftlint_container) swiftlint