2024-01-30 17:19:34 +01:00
|
|
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
|
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
|
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
|
2023-06-22 13:14:07 +02:00
|
|
|
use chorus::{errors::ChorusResult, types::GuildMember};
|
2023-11-20 14:03:06 +01:00
|
|
|
#[cfg(target_arch = "wasm32")]
|
|
|
|
use wasm_bindgen_test::*;
|
|
|
|
#[cfg(target_arch = "wasm32")]
|
|
|
|
wasm_bindgen_test_configure!(run_in_browser);
|
2023-06-22 13:14:07 +02:00
|
|
|
|
2023-06-10 00:39:04 +02:00
|
|
|
mod common;
|
|
|
|
|
2023-11-22 14:39:32 +01:00
|
|
|
#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
|
|
|
|
#[cfg_attr(not(target_arch = "wasm32"), tokio::test)]
|
2023-06-22 13:14:07 +02:00
|
|
|
async fn add_remove_role() -> ChorusResult<()> {
|
2023-06-10 00:39:04 +02:00
|
|
|
let mut bundle = common::setup().await;
|
2023-08-13 15:54:07 +02:00
|
|
|
let guild = bundle.guild.read().unwrap().id;
|
|
|
|
let role = bundle.role.read().unwrap().id;
|
2024-07-05 18:15:24 +02:00
|
|
|
let member_id = bundle.user.object.as_ref().unwrap()
|
|
|
|
.read().unwrap().id;
|
2023-06-22 13:14:07 +02:00
|
|
|
GuildMember::add_role(&mut bundle.user, guild, member_id, role).await?;
|
|
|
|
let member = GuildMember::get(&mut bundle.user, guild, member_id)
|
2023-06-10 17:35:09 +02:00
|
|
|
.await
|
|
|
|
.unwrap();
|
2023-06-22 13:14:07 +02:00
|
|
|
assert!(member.roles.contains(&role));
|
|
|
|
|
|
|
|
GuildMember::remove_role(&mut bundle.user, guild, member_id, role).await?;
|
|
|
|
let member = GuildMember::get(&mut bundle.user, guild, member_id)
|
2023-06-10 17:35:09 +02:00
|
|
|
.await
|
|
|
|
.unwrap();
|
2023-06-22 13:14:07 +02:00
|
|
|
assert!(!member.roles.contains(&role));
|
|
|
|
|
|
|
|
common::teardown(bundle).await;
|
|
|
|
Ok(())
|
2023-06-10 00:39:04 +02:00
|
|
|
}
|