test: write a unit test for group chat permissions
This commit is contained in:
28
crates/core/database/fixtures/group_with_members.json
Normal file
28
crates/core/database/fixtures/group_with_members.json
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"_object_type": "User",
|
||||||
|
"_id": "__ID:0__",
|
||||||
|
"username": "Owner",
|
||||||
|
"discriminator": "0001"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_object_type": "User",
|
||||||
|
"_id": "__ID:1__",
|
||||||
|
"username": "Member",
|
||||||
|
"discriminator": "0001"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_object_type": "User",
|
||||||
|
"_id": "__ID:2__",
|
||||||
|
"username": "Member",
|
||||||
|
"discriminator": "0002"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_object_type": "Channel",
|
||||||
|
"_id": "__ID:3__",
|
||||||
|
"channel_type": "Group",
|
||||||
|
"name": "My Group",
|
||||||
|
"owner": "__ID:0__",
|
||||||
|
"recipients": ["__ID:0__", "__ID:1__", "__ID:2__"]
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -695,6 +695,32 @@ mod tests {
|
|||||||
|
|
||||||
use crate::{fixture, util::permissions::DatabasePermissionQuery};
|
use crate::{fixture, util::permissions::DatabasePermissionQuery};
|
||||||
|
|
||||||
|
#[async_std::test]
|
||||||
|
async fn permissions_group_channel() {
|
||||||
|
database_test!(|db| async move {
|
||||||
|
fixture!(db, "group_with_members",
|
||||||
|
owner user 0
|
||||||
|
member1 user 1
|
||||||
|
member2 user 2
|
||||||
|
channel channel 3);
|
||||||
|
|
||||||
|
let mut query = DatabasePermissionQuery::new(&db, &owner).channel(&channel);
|
||||||
|
assert!(calculate_channel_permissions(&mut query)
|
||||||
|
.await
|
||||||
|
.has_channel_permission(ChannelPermission::SendMessage));
|
||||||
|
|
||||||
|
let mut query = DatabasePermissionQuery::new(&db, &member1).channel(&channel);
|
||||||
|
assert!(calculate_channel_permissions(&mut query)
|
||||||
|
.await
|
||||||
|
.has_channel_permission(ChannelPermission::SendMessage));
|
||||||
|
|
||||||
|
let mut query = DatabasePermissionQuery::new(&db, &member2).channel(&channel);
|
||||||
|
assert!(!calculate_channel_permissions(&mut query)
|
||||||
|
.await
|
||||||
|
.has_channel_permission(ChannelPermission::SendMessage));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
#[async_std::test]
|
#[async_std::test]
|
||||||
async fn permissions_text_channel() {
|
async fn permissions_text_channel() {
|
||||||
database_test!(|db| async move {
|
database_test!(|db| async move {
|
||||||
|
|||||||
Reference in New Issue
Block a user