Get server integration tests passing again

* Set up UserStore to have the current user, so that
  channel messages can be sent. This is needed now that
  pending messages are represented more similarly to
  regular messages.
* Drop buffer inside of an `AppContext.update` block, so that
  the Buffer's release hook is called in time.

Co-Authored-By: Nathan Sobo <nathan@zed.dev>
This commit is contained in:
Max Brunsfeld
2021-09-15 16:17:07 -07:00
co-authored by Nathan Sobo
parent 95ef70e4f4
commit 31b5602dc1
5 changed files with 140 additions and 117 deletions
+29 -8
View File
@@ -133,14 +133,18 @@ impl Db {
let query = "
SELECT users.*
FROM
users, channel_memberships
users LEFT JOIN channel_memberships
ON
channel_memberships.user_id = users.id
WHERE
users.id = ANY ($1) AND
channel_memberships.user_id = users.id AND
channel_memberships.channel_id IN (
SELECT channel_id
FROM channel_memberships
WHERE channel_memberships.user_id = $2
users.id = $2 OR
(
users.id = ANY ($1) AND
channel_memberships.channel_id IN (
SELECT channel_id
FROM channel_memberships
WHERE channel_memberships.user_id = $2
)
)
";
@@ -455,7 +459,7 @@ macro_rules! id_type {
}
id_type!(UserId);
#[derive(Debug, FromRow, Serialize)]
#[derive(Debug, FromRow, Serialize, PartialEq)]
pub struct User {
pub id: UserId,
pub github_login: String,
@@ -563,6 +567,23 @@ pub mod tests {
}
}
#[gpui::test]
async fn test_get_users_by_ids() {
let test_db = TestDb::new();
let db = test_db.db();
let user_id = db.create_user("user", false).await.unwrap();
assert_eq!(
db.get_users_by_ids(user_id, Some(user_id).iter().copied())
.await
.unwrap(),
vec![User {
id: user_id,
github_login: "user".to_string(),
admin: false,
}]
)
}
#[gpui::test]
async fn test_recent_channel_messages() {
let test_db = TestDb::new();