diff options
| author | Aram Drevekenin <aram@poor.dev> | 2020-11-03 15:50:18 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-11-03 15:50:18 +0100 |
| commit | 5592a83d4a38b8d2089f4887f3da26597abb4021 (patch) | |
| tree | 1ab21cea62ad206fbe6468d7b39ef9a9b99426fe /src/tests/integration/basic.rs | |
| parent | feat(screen): split largest terminal (#19) (diff) | |
| download | sl0ppij-5592a83d4a38b8d2089f4887f3da26597abb4021.tar.gz sl0ppij-5592a83d4a38b8d2089f4887f3da26597abb4021.tar.xz sl0ppij-5592a83d4a38b8d2089f4887f3da26597abb4021.zip | |
feat(screen): allow specifying max panes on screen (#20)
Diffstat (limited to 'src/tests/integration/basic.rs')
| -rw-r--r-- | src/tests/integration/basic.rs | 38 |
1 files changed, 30 insertions, 8 deletions
diff --git a/src/tests/integration/basic.rs b/src/tests/integration/basic.rs index ef122583..aae545b0 100644 --- a/src/tests/integration/basic.rs +++ b/src/tests/integration/basic.rs @@ -1,7 +1,7 @@ use ::nix::pty::Winsize; use ::insta::assert_snapshot; -use crate::start; +use crate::{start, Opt}; use crate::tests::fakes::{FakeInputOutput}; use crate::tests::utils::get_output_frame_snapshots; @@ -19,7 +19,7 @@ pub fn starts_with_one_terminal () { }; let mut fake_input_output = get_fake_os_input(&fake_win_size); fake_input_output.add_terminal_input(&[17]); // quit (ctrl-q) - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); for snapshot in snapshots { @@ -37,7 +37,7 @@ pub fn split_terminals_vertically() { }; let mut fake_input_output = get_fake_os_input(&fake_win_size); fake_input_output.add_terminal_input(&[14, 17]); // split-vertically and quit (ctrl-n + ctrl-q) - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); for snapshot in snapshots { @@ -55,7 +55,7 @@ pub fn split_terminals_horizontally() { }; let mut fake_input_output = get_fake_os_input(&fake_win_size); fake_input_output.add_terminal_input(&[2, 17]); // split-horizontally and quit (ctrl-b + ctrl-q) - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); for snapshot in snapshots { @@ -73,8 +73,8 @@ pub fn split_largest_terminal () { ws_ypixel: 0, }; let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[13, 13, 13, 17]); // split-largest_terminal * 4 and quit (ctrl-m + ctrl-m + ctrl-m + ctrl-m + ctrl-q) - start(Box::new(fake_input_output.clone())); + fake_input_output.add_terminal_input(&[13, 13, 13, 17]); // split-largest_terminal * 3 and quit (ctrl-m + ctrl-m + ctrl-m + ctrl-m + ctrl-q) + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); for snapshot in snapshots { @@ -110,7 +110,7 @@ pub fn resize_right_and_up_on_the_same_axis() { // (ctrl-b + ctrl-n + ctrl-p + ctrl-n + ctrl-p * 2 + ctrl-l + ctrl-h + ctrl-k + ctrl-q) fake_input_output.add_terminal_input(&[2, 14, 16, 14, 16, 16, 12, 8, 11, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); for snapshot in snapshots { @@ -128,7 +128,29 @@ pub fn scrolling_inside_a_pane() { }; let mut fake_input_output = get_fake_os_input(&fake_win_size); fake_input_output.add_terminal_input(&[2, 14, 27, 27, 29, 29, 17]); // split-horizontally, split-vertically, scroll up twice, scroll down twice and quit (ctrl-b + ctrl+[ * 2 + ctrl+] * 2, ctrl-q) - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); + let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); + let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); + for snapshot in snapshots { + assert_snapshot!(snapshot); + } +} + +#[test] +pub fn max_panes () { + // with the --max-panes option, we only allow a certain amount of panes on screen + // simultaneously, new panes beyond this limit will close older panes on screen + let fake_win_size = Winsize { // TODO: combine with above + ws_col: 121, + ws_row: 20, + ws_xpixel: 0, + ws_ypixel: 0, + }; + let mut fake_input_output = get_fake_os_input(&fake_win_size); + fake_input_output.add_terminal_input(&[13, 13, 13, 13, 17]); // split-largest_terminal * 4 and quit (ctrl-m + ctrl-m + ctrl-m + ctrl-m + ctrl-q) + let mut opts = Opt::default(); + opts.max_panes = Some(4); + start(Box::new(fake_input_output.clone()), opts); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); for snapshot in snapshots { |
