tests.rs

 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}