diff options
author | Cyborus <cyborus@noreply.codeberg.org> | 2024-10-23 20:53:11 +0200 |
---|---|---|
committer | Cyborus <cyborus@noreply.codeberg.org> | 2024-10-23 20:53:11 +0200 |
commit | 2539731dd8197055ce6176ccbc4a1bf77e7bc79e (patch) | |
tree | 0de68f13331a2a2a27f9b634c1f6a9c400f9d06f /tests | |
parent | Merge pull request 'Clippy Fixes' (#74) from Pi-Cla/forgejo-api:clippy into main (diff) | |
parent | ci: update ci forgejo to 9.0 (diff) | |
download | forgejo-api-main.tar.xz forgejo-api-main.zip |
Reviewed-on: https://codeberg.org/Cyborus/forgejo-api/pulls/75
Diffstat (limited to 'tests')
-rw-r--r-- | tests/admin.rs | 88 | ||||
-rw-r--r-- | tests/repo.rs | 5 |
2 files changed, 91 insertions, 2 deletions
diff --git a/tests/admin.rs b/tests/admin.rs index 6b82fab..674ca16 100644 --- a/tests/admin.rs +++ b/tests/admin.rs @@ -188,3 +188,91 @@ async fn hook() { .await .expect("failed to delete hook"); } + +#[tokio::test] +async fn quota_group() { + let api = common::login(); + + let user_opts = CreateUserOption { + created_at: None, + email: "1997@example.com".into(), + full_name: None, + login_name: None, + must_change_password: None, + password: Some("dialtone".into()), + restricted: None, + send_notify: None, + source_id: None, + username: "salesman".into(), + visibility: None, + }; + api.admin_create_user(user_opts) + .await + .expect("failed to create user"); + + let group = CreateQuotaGroupOptions { + name: Some("no doing anything".into()), + rules: Some(vec![CreateQuotaRuleOptions { + limit: Some(0), + name: Some("blah".into()), + subjects: Some(vec![CreateQuotaRuleOptionsSubjects::SizeAll]), + }]), + }; + let quota_group = api + .admin_create_quota_group(group) + .await + .expect("failed to create quota group"); + + api.admin_add_user_to_quota_group("no doing anything", "salesman") + .await + .expect("failed to add user to quota group"); + + assert!(quota_group + .name + .as_ref() + .is_some_and(|name| name == "no doing anything")); + assert!(quota_group + .rules + .as_ref() + .is_some_and(|rules| rules.len() == 1)); + + let quota_groups = api + .admin_list_quota_groups() + .await + .expect("failed to list quota groups"); + assert_eq!(quota_groups.len(), 1); + assert_eq!("a_groups[0], "a_group); + + let quota_info = api + .admin_get_user_quota("salesman") + .await + .expect("failed to get user quota"); + let usage = quota_info + .used + .expect("quota info missing usage info") + .size + .expect("quota info missing size info"); + assert!(usage + .git + .is_some_and(|git| git.lfs.is_some_and(|lfs| lfs == 0))); + assert!(usage + .repos + .as_ref() + .is_some_and(|repos| repos.public.is_some_and(|lfs| lfs == 0))); + assert!(usage + .repos + .is_some_and(|repos| repos.private.is_some_and(|lfs| lfs == 0))); + assert!(usage + .assets + .is_some_and(|assets| assets.artifacts.is_some_and(|lfs| lfs == 0))); + + api.admin_remove_rule_from_quota_group("no doing anything", "blah") + .await + .expect("failed to delete rule from quota group"); + api.admin_remove_user_from_quota_group("no doing anything", "salesman") + .await + .expect("failed to remove user from quota group"); + api.admin_delete_quota_group("no doing anything") + .await + .expect("failed to delete quota group"); +} diff --git a/tests/repo.rs b/tests/repo.rs index 3a0377c..b8e048a 100644 --- a/tests/repo.rs +++ b/tests/repo.rs @@ -271,7 +271,8 @@ async fn release() { "TestingAdmin", "release-test", release.id.unwrap() as u64, - b"This is a file!".to_vec(), + Some(b"This is a file!".to_vec()), + None, RepoCreateReleaseAttachmentQuery { name: Some("test.txt".into()), }, @@ -390,7 +391,7 @@ async fn team_pr_review_request() { .repo_get_pull_request("team-review-org", "team-pr-review", 1) .await .expect("couldn't get pr"); - assert_eq!(pr.requested_reviewers, Some(Vec::new())); + assert_eq!(pr.requested_reviewers, None); } #[tokio::test] |