1use std::sync::Arc;
2
3use call::Room;
4use client::ChannelId;
5use gpui::{Model, TestAppContext};
6
7mod channel_buffer_tests;
8mod channel_guest_tests;
9mod channel_message_tests;
10mod channel_tests;
11mod editor_tests;
12mod following_tests;
13mod integration_tests;
14mod notification_tests;
15mod random_channel_buffer_tests;
16mod random_project_collaboration_tests;
17mod randomized_test_helpers;
18mod test_server;
19
20use language::{tree_sitter_rust, Language, LanguageConfig, LanguageMatcher};
21pub use randomized_test_helpers::{
22 run_randomized_test, save_randomized_test_plan, RandomizedTest, TestError, UserTestPlan,
23};
24pub use test_server::{TestClient, TestServer};
25
26#[derive(Debug, Eq, PartialEq)]
27struct RoomParticipants {
28 remote: Vec<String>,
29 pending: Vec<String>,
30}
31
32fn room_participants(room: &Model<Room>, cx: &mut TestAppContext) -> RoomParticipants {
33 room.read_with(cx, |room, _| {
34 let mut remote = room
35 .remote_participants()
36 .iter()
37 .map(|(_, participant)| participant.user.github_login.clone())
38 .collect::<Vec<_>>();
39 let mut pending = room
40 .pending_participants()
41 .iter()
42 .map(|user| user.github_login.clone())
43 .collect::<Vec<_>>();
44 remote.sort();
45 pending.sort();
46 RoomParticipants { remote, pending }
47 })
48}
49
50fn channel_id(room: &Model<Room>, cx: &mut TestAppContext) -> Option<ChannelId> {
51 cx.read(|cx| room.read(cx).channel_id())
52}
53
54fn rust_lang() -> Arc<Language> {
55 Arc::new(Language::new(
56 LanguageConfig {
57 name: "Rust".into(),
58 matcher: LanguageMatcher {
59 path_suffixes: vec!["rs".to_string()],
60 ..Default::default()
61 },
62 ..Default::default()
63 },
64 Some(tree_sitter_rust::language()),
65 ))
66}