From 33d5675cc490a1ca39541a5d7f0caf61bd2d6ac9 Mon Sep 17 00:00:00 2001 From: bitfl0wer Date: Sun, 13 Aug 2023 15:54:07 +0200 Subject: [PATCH] Change tests to deal with `Arc>`'s --- tests/channels.rs | 44 ++++++++++++++++++-------------------------- tests/guilds.rs | 6 ++---- tests/invites.rs | 7 ++++--- tests/members.rs | 4 ++-- tests/messages.rs | 15 ++++----------- tests/roles.rs | 12 ++++++------ 6 files changed, 36 insertions(+), 52 deletions(-) diff --git a/tests/channels.rs b/tests/channels.rs index 5641b1f..3043c00 100644 --- a/tests/channels.rs +++ b/tests/channels.rs @@ -8,11 +8,11 @@ mod common; #[tokio::test] async fn get_channel() { let mut bundle = common::setup().await; - let bundle_channel = bundle.channel.read().unwrap(); + let bundle_channel = bundle.channel.read().unwrap().clone(); let bundle_user = &mut bundle.user; assert_eq!( - *bundle_channel, + bundle_channel, Channel::get(bundle_user, bundle_channel.id).await.unwrap() ); common::teardown(bundle).await @@ -21,7 +21,8 @@ async fn get_channel() { #[tokio::test] async fn delete_channel() { let mut bundle = common::setup().await; - let result = Channel::delete(*bundle.channel.write().unwrap(), &mut bundle.user).await; + let channel_guard = bundle.channel.write().unwrap().clone(); + let result = Channel::delete(channel_guard, &mut bundle.user).await; assert!(result.is_ok()); common::teardown(bundle).await } @@ -30,7 +31,7 @@ async fn delete_channel() { async fn modify_channel() { const CHANNEL_NAME: &str = "beepboop"; let mut bundle = common::setup().await; - let channel = &mut bundle.channel; + let channel = &mut bundle.channel.read().unwrap().clone(); let modify_data: types::ChannelModifySchema = types::ChannelModifySchema { name: Some(CHANNEL_NAME.to_string()), channel_type: None, @@ -50,37 +51,28 @@ async fn modify_channel() { default_thread_rate_limit_per_user: None, video_quality_mode: None, }; - let modified_channel = Channel::modify( - channel.read().as_ref().unwrap(), - modify_data, - channel.read().unwrap().id, - &mut bundle.user, - ) - .await - .unwrap(); + let modified_channel = Channel::modify(channel, modify_data, &mut bundle.user) + .await + .unwrap(); assert_eq!(modified_channel.name, Some(CHANNEL_NAME.to_string())); let permission_override = PermissionFlags::from_vec(Vec::from([ PermissionFlags::MANAGE_CHANNELS, PermissionFlags::MANAGE_MESSAGES, ])); - let user_id: types::Snowflake = bundle.user.read().unwrap().object.read().unwrap().id; + let user_id: types::Snowflake = bundle.user.object.read().unwrap().id; let permission_override = PermissionOverwrite { id: user_id, overwrite_type: "1".to_string(), allow: permission_override, deny: "0".to_string(), }; + let channel_id: Snowflake = bundle.channel.read().unwrap().id; + Channel::edit_permissions(&mut bundle.user, channel_id, permission_override.clone()) + .await + .unwrap(); - Channel::edit_permissions( - &mut bundle.user, - bundle.channel.id, - permission_override.clone(), - ) - .await - .unwrap(); - - Channel::delete_permission(&mut bundle.user, bundle.channel.id, permission_override.id) + Channel::delete_permission(&mut bundle.user, channel_id, permission_override.id) .await .unwrap(); @@ -90,7 +82,7 @@ async fn modify_channel() { #[tokio::test] async fn get_channel_messages() { let mut bundle = common::setup().await; - + let channel_id: Snowflake = bundle.channel.read().unwrap().id; // First create some messages to read for _ in 0..10 { let _ = bundle @@ -100,7 +92,7 @@ async fn get_channel_messages() { content: Some("A Message!".to_string()), ..Default::default() }, - bundle.channel.id, + channel_id, ) .await .unwrap(); @@ -109,7 +101,7 @@ async fn get_channel_messages() { assert_eq!( Channel::messages( GetChannelMessagesSchema::before(Snowflake::generate()), - bundle.channel.id, + channel_id, &mut bundle.user, ) .await @@ -133,7 +125,7 @@ async fn get_channel_messages() { assert!(Channel::messages( GetChannelMessagesSchema::after(Snowflake::generate()), - bundle.channel.id, + channel_id, &mut bundle.user, ) .await diff --git a/tests/guilds.rs b/tests/guilds.rs index cc33b30..3d29d43 100644 --- a/tests/guilds.rs +++ b/tests/guilds.rs @@ -27,9 +27,7 @@ async fn guild_creation_deletion() { #[tokio::test] async fn get_channels() { let mut bundle = common::setup().await; - println!( - "{:?}", - bundle.guild.channels(&mut bundle.user).await.unwrap() - ); + let guild = bundle.guild.read().unwrap().clone(); + println!("{:?}", guild.channels(&mut bundle.user).await.unwrap()); common::teardown(bundle).await; } diff --git a/tests/invites.rs b/tests/invites.rs index e25fea5..ab264d4 100644 --- a/tests/invites.rs +++ b/tests/invites.rs @@ -3,11 +3,12 @@ use chorus::types::CreateChannelInviteSchema; #[tokio::test] async fn create_accept_invite() { let mut bundle = common::setup().await; - let channel = bundle.channel.clone(); + let channel = bundle.channel.read().unwrap().clone(); let mut other_user = bundle.create_user("testuser1312").await; let user = &mut bundle.user; let create_channel_invite_schema = CreateChannelInviteSchema::default(); - assert!(chorus::types::Guild::get(bundle.guild.id, &mut other_user) + let guild = bundle.guild.read().unwrap().clone(); + assert!(chorus::types::Guild::get(guild.id, &mut other_user) .await .is_err()); let invite = user @@ -16,7 +17,7 @@ async fn create_accept_invite() { .unwrap(); other_user.accept_invite(&invite.code, None).await.unwrap(); - assert!(chorus::types::Guild::get(bundle.guild.id, &mut other_user) + assert!(chorus::types::Guild::get(guild.id, &mut other_user) .await .is_ok()); common::teardown(bundle).await; diff --git a/tests/members.rs b/tests/members.rs index aae8db0..fbab772 100644 --- a/tests/members.rs +++ b/tests/members.rs @@ -5,8 +5,8 @@ mod common; #[tokio::test] async fn add_remove_role() -> ChorusResult<()> { let mut bundle = common::setup().await; - let guild = bundle.guild.id; - let role = bundle.role.id; + let guild = bundle.guild.read().unwrap().id; + let role = bundle.role.read().unwrap().id; let member_id = bundle.user.object.read().unwrap().id; GuildMember::add_role(&mut bundle.user, guild, member_id, role).await?; let member = GuildMember::get(&mut bundle.user, guild, member_id) diff --git a/tests/messages.rs b/tests/messages.rs index af6ee5b..417ca54 100644 --- a/tests/messages.rs +++ b/tests/messages.rs @@ -12,11 +12,8 @@ async fn send_message() { content: Some("A Message!".to_string()), ..Default::default() }; - let _ = bundle - .user - .send_message(message, bundle.channel.id) - .await - .unwrap(); + let channel = bundle.channel.read().unwrap().clone(); + let _ = bundle.user.send_message(message, channel.id).await.unwrap(); common::teardown(bundle).await } @@ -50,13 +47,9 @@ async fn send_message_attachment() { attachments: Some(vec![attachment.clone()]), ..Default::default() }; - + let channel = bundle.channel.read().unwrap().clone(); let vec_attach = vec![attachment.clone()]; let _arg = Some(&vec_attach); - bundle - .user - .send_message(message, bundle.channel.id) - .await - .unwrap(); + bundle.user.send_message(message, channel.id).await.unwrap(); common::teardown(bundle).await } diff --git a/tests/roles.rs b/tests/roles.rs index f45fb62..7876e5d 100644 --- a/tests/roles.rs +++ b/tests/roles.rs @@ -17,12 +17,12 @@ async fn create_and_get_roles() { position: None, color: None, }; - let guild = bundle.guild.id; - let role = types::RoleObject::create(&mut bundle.user, guild, role_create_schema) + let guild_id = bundle.guild.read().unwrap().id; + let role = types::RoleObject::create(&mut bundle.user, guild_id, role_create_schema) .await .unwrap(); - let expected = types::RoleObject::get_all(&mut bundle.user, guild) + let expected = types::RoleObject::get_all(&mut bundle.user, guild_id) .await .unwrap()[2] .clone(); @@ -34,9 +34,9 @@ async fn create_and_get_roles() { #[tokio::test] async fn get_singular_role() { let mut bundle = common::setup().await; - let guild_id = bundle.guild.id; - let role_id = bundle.role.id; - let role = bundle.role.clone(); + let guild_id = bundle.guild.read().unwrap().id; + let role_id = bundle.role.read().unwrap().id; + let role = bundle.role.read().unwrap().clone(); let same_role = chorus::types::RoleObject::get(&mut bundle.user, guild_id, role_id) .await .unwrap();