aboutsummaryrefslogtreecommitdiffstats
path: root/zellij-server
diff options
context:
space:
mode:
authorAram Drevekenin <aram@poor.dev>2026-02-15 12:55:22 +0100
committerGitHub <noreply@github.com>2026-02-15 12:55:22 +0100
commit753110669046196d94ffb1824f6c827a7497eaf0 (patch)
tree589a9515cdc0e37ef00446955503dbb001cc7c03 /zellij-server
parentAllow plugins to read env vars present upon session creation (behind permissi... (diff)
downloadsl0ppij-753110669046196d94ffb1824f6c827a7497eaf0.tar.gz
sl0ppij-753110669046196d94ffb1824f6c827a7497eaf0.tar.xz
sl0ppij-753110669046196d94ffb1824f6c827a7497eaf0.zip
Fix startup message and cache file creation (#4705)
* only show startup loading message if we've been loading for more than 400ms * create relevant cache folders before attempting to write startup cache files * fix flaky tests * rustfmt * add pr
Diffstat (limited to 'zellij-server')
-rw-r--r--zellij-server/src/lib.rs3
-rw-r--r--zellij-server/src/unit/screen_tests.rs21
-rw-r--r--zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_send_keys_action_to_screen.snap19
-rw-r--r--zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_active_tab_sync_action.snap4
4 files changed, 41 insertions, 6 deletions
diff --git a/zellij-server/src/lib.rs b/zellij-server/src/lib.rs
index e24aa38e..38628129 100644
--- a/zellij-server/src/lib.rs
+++ b/zellij-server/src/lib.rs
@@ -2012,6 +2012,9 @@ fn should_show_release_notes(
if ZELLIJ_SEEN_RELEASE_NOTES_CACHE_FILE.exists() {
return false;
} else {
+ if let Some(parent) = ZELLIJ_SEEN_RELEASE_NOTES_CACHE_FILE.parent() {
+ let _ = std::fs::create_dir_all(parent);
+ }
if let Err(e) = std::fs::write(&*ZELLIJ_SEEN_RELEASE_NOTES_CACHE_FILE, &[]) {
log::error!(
"Failed to write seen release notes indication to disk: {}",
diff --git a/zellij-server/src/unit/screen_tests.rs b/zellij-server/src/unit/screen_tests.rs
index 059235a1..96dd25aa 100644
--- a/zellij-server/src/unit/screen_tests.rs
+++ b/zellij-server/src/unit/screen_tests.rs
@@ -2196,7 +2196,16 @@ pub fn send_cli_send_keys_action_to_screen() {
send_cli_action_to_server(&session_metadata, cli_action, client_id);
std::thread::sleep(std::time::Duration::from_millis(100));
mock_screen.teardown(vec![pty_writer_thread, screen_thread]);
- assert_snapshot!(format!("{:?}", *received_pty_instructions.lock().unwrap()));
+ let received_write_instructions: Vec<_> = received_pty_instructions
+ .lock()
+ .unwrap()
+ .clone()
+ .into_iter()
+ .filter(|i| matches!(i, PtyWriteInstruction::Write(..)))
+ .collect();
+ // here we assert only the write instructions to make sure they arrived properly and in
+ // sequence to the pane
+ assert_snapshot!(format!("{:#?}", received_write_instructions));
}
#[test]
@@ -2965,7 +2974,15 @@ pub fn send_cli_toggle_active_tab_sync_action() {
send_cli_action_to_server(&session_metadata, cli_write_action, client_id);
std::thread::sleep(std::time::Duration::from_millis(100)); // give time for actions to be
mock_screen.teardown(vec![pty_writer_thread, screen_thread]);
- assert_snapshot!(format!("{:?}", *received_pty_instructions.lock().unwrap()));
+ let received_write_instructions: Vec<_> = received_pty_instructions
+ .lock()
+ .unwrap()
+ .clone()
+ .into_iter()
+ .filter(|i| matches!(i, PtyWriteInstruction::Write(..)))
+ .collect();
+ // here we should have 2 Write instructions, one for each pane
+ assert_snapshot!(format!("{:?}", received_write_instructions));
}
#[test]
diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_send_keys_action_to_screen.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_send_keys_action_to_screen.snap
index 75e4aeef..c2acd715 100644
--- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_send_keys_action_to_screen.snap
+++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_send_keys_action_to_screen.snap
@@ -1,5 +1,20 @@
---
source: zellij-server/src/./unit/screen_tests.rs
-expression: "format!(\"{:?}\", *received_pty_instructions.lock().unwrap())"
+expression: "format!(\"{:#?}\", received_write_instructions)"
---
-[StartCachingResizes, ApplyCachedResizes, StartCachingResizes, ResizePty(0, 119, 18, None, None), ResizePty(0, 119, 18, None, None), ResizePty(0, 119, 18, None, None), ResizePty(0, 119, 18, None, None), ApplyCachedResizes, ResizePty(0, 119, 18, None, None), ResizePty(0, 119, 18, None, None), ResizePty(0, 119, 18, None, None), ResizePty(0, 119, 18, None, None), ResizePty(0, 119, 18, None, None), ApplyCachedResizes, ApplyCachedResizes, ApplyCachedResizes, StartCachingResizes, ApplyCachedResizes, StartCachingResizes, ApplyCachedResizes, StartCachingResizes, ApplyCachedResizes, StartCachingResizes, Write([1], 0, None), ApplyCachedResizes, StartCachingResizes, ApplyCachedResizes, StartCachingResizes, ApplyCachedResizes, StartCachingResizes, ApplyCachedResizes, StartCachingResizes, Write([120], 0, None), ApplyCachedResizes, StartCachingResizes, ApplyCachedResizes, StartCachingResizes, ApplyCachedResizes, Exit]
+[
+ Write(
+ [
+ 1,
+ ],
+ 0,
+ None,
+ ),
+ Write(
+ [
+ 120,
+ ],
+ 0,
+ None,
+ ),
+]
diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_active_tab_sync_action.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_active_tab_sync_action.snap
index d9fe6929..69157166 100644
--- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_active_tab_sync_action.snap
+++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_active_tab_sync_action.snap
@@ -1,5 +1,5 @@
---
source: zellij-server/src/./unit/screen_tests.rs
-expression: "format!(\"{:?}\", *received_pty_instructions.lock().unwrap())"
+expression: "format!(\"{:?}\", received_write_instructions)"
---
-[StartCachingResizes, ApplyCachedResizes, StartCachingResizes, ResizePty(0, 59, 18, None, None), ResizePty(1, 58, 18, None, None), ResizePty(0, 59, 18, None, None), ResizePty(1, 58, 18, None, None), ResizePty(0, 59, 18, None, None), ResizePty(1, 58, 18, None, None), ResizePty(0, 59, 18, None, None), ResizePty(1, 58, 18, None, None), ApplyCachedResizes, ResizePty(0, 58, 18, None, None), ResizePty(1, 59, 18, None, None), ResizePty(0, 58, 18, None, None), ResizePty(1, 59, 18, None, None), ResizePty(0, 58, 18, None, None), ResizePty(1, 59, 18, None, None), ResizePty(0, 58, 18, None, None), ResizePty(1, 59, 18, None, None), ResizePty(0, 59, 18, None, None), ResizePty(1, 58, 18, None, None), ApplyCachedResizes, ApplyCachedResizes, ApplyCachedResizes, StartCachingResizes, ApplyCachedResizes, StartCachingResizes, ApplyCachedResizes, StartCachingResizes, ApplyCachedResizes, StartCachingResizes, ApplyCachedResizes, StartCachingResizes, ApplyCachedResizes, StartCachingResizes, Write([102, 111, 111], 0, None), Write([102, 111, 111], 1, None), ApplyCachedResizes, StartCachingResizes, ApplyCachedResizes, StartCachingResizes, ApplyCachedResizes, Exit]
+[Write([102, 111, 111], 0, None), Write([102, 111, 111], 1, None)]