summaryrefslogtreecommitdiffstats
path: root/zellij-server/src/unit/screen_tests.rs
diff options
context:
space:
mode:
Diffstat (limited to 'zellij-server/src/unit/screen_tests.rs')
-rw-r--r--zellij-server/src/unit/screen_tests.rs36
1 files changed, 36 insertions, 0 deletions
diff --git a/zellij-server/src/unit/screen_tests.rs b/zellij-server/src/unit/screen_tests.rs
index 8383a2462..3cde1d818 100644
--- a/zellij-server/src/unit/screen_tests.rs
+++ b/zellij-server/src/unit/screen_tests.rs
@@ -2674,3 +2674,39 @@ pub fn send_cli_undo_rename_tab() {
*received_plugin_instructions.lock().unwrap()
))
}
+
+#[test]
+pub fn send_cli_query_tab_names_action() {
+ let size = Size { cols: 80, rows: 10 };
+ let client_id = 10; // fake client id should not appear in the screen's state
+ let mut mock_screen = MockScreen::new(size);
+ mock_screen.new_tab(TiledPaneLayout::default());
+ let session_metadata = mock_screen.clone_session_metadata();
+ let screen_thread = mock_screen.run(Some(TiledPaneLayout::default()));
+ let received_server_instructions = Arc::new(Mutex::new(vec![]));
+ let server_receiver = mock_screen.server_receiver.take().unwrap();
+ let server_thread = log_actions_in_thread!(
+ received_server_instructions,
+ ServerInstruction::KillSession,
+ server_receiver
+ );
+ let query_tab_names = CliAction::QueryTabNames;
+ send_cli_action_to_server(
+ &session_metadata,
+ query_tab_names,
+ &mut mock_screen,
+ client_id,
+ );
+ std::thread::sleep(std::time::Duration::from_millis(100));
+ mock_screen.teardown(vec![server_thread, screen_thread]);
+ let log_tab_names_instruction = received_server_instructions
+ .lock()
+ .unwrap()
+ .iter()
+ .find(|instruction| match instruction {
+ ServerInstruction::Log(..) => true,
+ _ => false,
+ })
+ .cloned();
+ assert_snapshot!(format!("{:#?}", log_tab_names_instruction));
+}