aboutsummaryrefslogtreecommitdiffstats
path: root/src/tests
diff options
context:
space:
mode:
authorAram Drevekenin <aram@poor.dev>2020-11-03 15:50:18 +0100
committerGitHub <noreply@github.com>2020-11-03 15:50:18 +0100
commit5592a83d4a38b8d2089f4887f3da26597abb4021 (patch)
tree1ab21cea62ad206fbe6468d7b39ef9a9b99426fe /src/tests
parentfeat(screen): split largest terminal (#19) (diff)
downloadsl0ppij-5592a83d4a38b8d2089f4887f3da26597abb4021.tar.gz
sl0ppij-5592a83d4a38b8d2089f4887f3da26597abb4021.tar.xz
sl0ppij-5592a83d4a38b8d2089f4887f3da26597abb4021.zip
feat(screen): allow specifying max panes on screen (#20)
Diffstat (limited to 'src/tests')
-rw-r--r--src/tests/integration/basic.rs38
-rw-r--r--src/tests/integration/close_pane.rs26
-rw-r--r--src/tests/integration/compatibility.rs14
-rw-r--r--src/tests/integration/resize_down.rs26
-rw-r--r--src/tests/integration/resize_left.rs26
-rw-r--r--src/tests/integration/resize_right.rs26
-rw-r--r--src/tests/integration/resize_up.rs26
-rw-r--r--src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-10.snap24
-rw-r--r--src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-2.snap24
-rw-r--r--src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-3.snap24
-rw-r--r--src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-4.snap24
-rw-r--r--src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-5.snap24
-rw-r--r--src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-6.snap24
-rw-r--r--src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-7.snap24
-rw-r--r--src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-8.snap24
-rw-r--r--src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-9.snap24
-rw-r--r--src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes.snap24
17 files changed, 342 insertions, 80 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 {
diff --git a/src/tests/integration/close_pane.rs b/src/tests/integration/close_pane.rs
index 8d3b181c..09ee6a9d 100644
--- a/src/tests/integration/close_pane.rs
+++ b/src/tests/integration/close_pane.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;
@@ -27,7 +27,7 @@ pub fn close_pane_with_another_pane_above_it() {
};
let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[2, 24, 17]); // split-horizontally, close focused pane and quit (ctrl-b + ctrl-x + 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);
@@ -54,7 +54,7 @@ pub fn close_pane_with_another_pane_below_it() {
};
let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[2, 16, 24, 17]); // split-horizontally, change-focus, close focused pane and quit (ctrl-b + ctrl-p + ctrl-x + 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);
@@ -79,7 +79,7 @@ pub fn close_pane_with_another_pane_to_the_left() {
};
let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[14, 24, 17]); // split-vertically, close focused pane and quit (ctrl-n + ctrl-x + 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);
@@ -104,7 +104,7 @@ pub fn close_pane_with_another_pane_to_the_right() {
};
let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[14, 16, 24, 17]); // split-vertically, change-focus, close focused pane and quit (ctrl-n + ctrl-p + ctrl-x + 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);
@@ -133,7 +133,7 @@ pub fn close_pane_with_multiple_panes_above_it() {
// split-horizontally, change-focus, split-vertically, change-focus * 2, close focused pane and quit
// (ctrl-b + ctrl-p + ctrl-n + ctrl-p * 2 + ctrl-x + ctrl-q)
fake_input_output.add_terminal_input(&[2, 16, 14, 16, 16, 24, 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);
@@ -162,7 +162,7 @@ pub fn close_pane_with_multiple_panes_below_it() {
// split-horizontally, split-vertically, change-focus, change-focus, close focused pane and quit
// (ctrl-b + ctrl-n + ctrl-p + ctrl-x + ctrl-q)
fake_input_output.add_terminal_input(&[2, 14, 16, 24, 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);
@@ -191,7 +191,7 @@ pub fn close_pane_with_multiple_panes_to_the_left() {
// split-vertically, change-focus, split-horizontally, change-focus * 2, close focused pane and quit
// (ctrl-n + ctrl-p + ctrl-b + ctrl-p * 2 + ctrl-x + ctrl-q)
fake_input_output.add_terminal_input(&[14, 16, 2, 16, 16, 24, 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);
@@ -220,7 +220,7 @@ pub fn close_pane_with_multiple_panes_to_the_right() {
// split-vertically, change-focus, split-horizontally, change-focus * 2, close focused pane and quit
// (ctrl-n + ctrl-p + ctrl-b + ctrl-p * 2 + ctrl-x + ctrl-q)
fake_input_output.add_terminal_input(&[14, 2, 16, 24, 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);
@@ -252,7 +252,7 @@ pub fn close_pane_with_multiple_panes_above_it_away_from_screen_edges() {
// (ctrl-b + ctrl-n + ctrl-n + ctrl-p + ctrl-n + ctrl-n + ctrl-k + ctrl-p + ctrl-k + ctrl-p * 4
// + ctrl-n + ctrl-p * 3 + ctrl-x + ctrl-q)
fake_input_output.add_terminal_input(&[2, 14, 14, 16, 14, 14, 11, 16, 11, 16, 16, 16, 16, 14, 16, 16, 16, 24, 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);
@@ -284,7 +284,7 @@ pub fn close_pane_with_multiple_panes_below_it_away_from_screen_edges() {
// (ctrl-b + ctrl-n + ctrl-n + ctrl-p + ctrl-n + ctrl-n + ctrl-j + ctrl-p + ctrl-j + ctrl-p * 2
// + ctrl-n + ctrl-p * 5 + ctrl-x + ctrl-q)
fake_input_output.add_terminal_input(&[2, 14, 14, 16, 14, 14, 10, 16, 10, 16, 16, 14, 16, 16, 16, 16, 16, 24, 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);
@@ -319,7 +319,7 @@ pub fn close_pane_with_multiple_panes_to_the_left_away_from_screen_edges() {
// (ctrl-n + ctrl-b + ctrl-b + ctrl-p + ctrl-b + ctrl-b + ctrl-h + ctrl-p + ctrl-h + ctrl-p * 4
// + ctrl-b + ctrl-p * 3 + ctrl-x + ctrl-q)
fake_input_output.add_terminal_input(&[14, 2, 2, 16, 2, 2, 8, 16, 8, 16, 16, 16, 16, 2, 16, 16, 16, 24, 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);
@@ -353,7 +353,7 @@ pub fn close_pane_with_multiple_panes_to_the_right_away_from_screen_edges() {
// (ctrl-n + ctrl-b + ctrl-b + ctrl-p + ctrl-b + ctrl-b + ctrl-h + ctrl-p + ctrl-h + ctrl-p * 2
// + ctrl-b + ctrl-p * 5 + ctrl-x + ctrl-q)
fake_input_output.add_terminal_input(&[14, 2, 2, 16, 2, 2, 8, 16, 8, 16, 16, 2, 16, 16, 16, 16, 16, 24, 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);
diff --git a/src/tests/integration/compatibility.rs b/src/tests/integration/compatibility.rs
index cd04d354..74c58bac 100644
--- a/src/tests/integration/compatibility.rs
+++ b/src/tests/integration/compatibility.rs
@@ -2,7 +2,7 @@ use ::nix::pty::Winsize;
use ::insta::assert_snapshot;
use ::std::collections::HashMap;
-use crate::start;
+use crate::{start, Opt};
use crate::tests::possible_tty_inputs::Bytes;
use crate::tests::fakes::{FakeInputOutput};
use crate::tests::utils::get_output_frame_snapshots;
@@ -38,7 +38,7 @@ pub fn run_bandwhich_from_fish_shell() {
let fixture_name = "fish_and_bandwhich";
let mut fake_input_output = get_fake_os_input(&fake_win_size, fixture_name);
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 {
@@ -57,7 +57,7 @@ pub fn fish_tab_completion_options() {
let fixture_name = "fish_tab_completion_options";
let mut fake_input_output = get_fake_os_input(&fake_win_size, fixture_name);
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 {
@@ -81,7 +81,7 @@ pub fn fish_select_tab_completion_options() {
let fixture_name = "fish_select_tab_completion_options";
let mut fake_input_output = get_fake_os_input(&fake_win_size, fixture_name);
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 {
@@ -109,7 +109,7 @@ pub fn vim_scroll_region_down () {
let fixture_name = "vim_scroll_region_down";
let mut fake_input_output = get_fake_os_input(&fake_win_size, fixture_name);
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 {
@@ -134,7 +134,7 @@ pub fn vim_ctrl_d() {
let fixture_name = "vim_ctrl_d";
let mut fake_input_output = get_fake_os_input(&fake_win_size, fixture_name);
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 {
@@ -158,7 +158,7 @@ pub fn vim_ctrl_u() {
let fixture_name = "vim_ctrl_u";
let mut fake_input_output = get_fake_os_input(&fake_win_size, fixture_name);
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 {
diff --git a/src/tests/integration/resize_down.rs b/src/tests/integration/resize_down.rs
index e2c2ac5d..ae925e89 100644
--- a/src/tests/integration/resize_down.rs
+++ b/src/tests/integration/resize_down.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;
@@ -28,7 +28,7 @@ pub fn resize_down_with_pane_above() {
};
let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[2, 10, 17]); // split-horizontally, resize-down and quit (ctrl-b + ctrl-j + 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);
@@ -55,7 +55,7 @@ pub fn resize_down_with_pane_below() {
};
let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[2, 16, 10, 17]); // split-horizontally, change-focus, resize-down and quit (ctrl-b + ctrl-p + ctrl-j + 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);
@@ -86,7 +86,7 @@ pub fn resize_down_with_panes_above_and_below() {
let mut fake_input_output = get_fake_os_input(&fake_win_size);
// split-horizontally * 2, change-focus * 2, resize-down and quit (ctrl-n * 2 + ctrl-p * 2 + ctrl-j + ctrl-q)
fake_input_output.add_terminal_input(&[2, 2, 16, 16, 10, 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);
@@ -116,7 +116,7 @@ pub fn resize_down_with_multiple_panes_above() {
// (ctrl-b + ctrl-p + ctrl-n + ctrl-p * 2 + ctrl-j + ctrl-q)
fake_input_output.add_terminal_input(&[2, 16, 14, 16, 16, 10, 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);
@@ -146,7 +146,7 @@ pub fn resize_down_with_panes_above_aligned_left_with_current_pane() {
// (ctrl-n + ctrl-b + ctrl-p + ctrl-b + ctrl-p * 3, ctrl-j + ctrl-q)
fake_input_output.add_terminal_input(&[14, 2, 16, 2, 16, 16, 16, 10, 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);
@@ -176,7 +176,7 @@ pub fn resize_down_with_panes_below_aligned_left_with_current_pane() {
// (ctrl-n + ctrl-b + ctrl-p + ctrl-b + ctrl-p + ctrl-p + ctrl-j + ctrl-q)
fake_input_output.add_terminal_input(&[14, 2, 16, 2, 16, 16, 10, 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);
@@ -206,7 +206,7 @@ pub fn resize_down_with_panes_above_aligned_right_with_current_pane() {
// (ctrl-n + ctrl-b + ctrl-p + ctrl-b + ctrl-j + ctrl-q)
fake_input_output.add_terminal_input(&[14, 2, 16, 2, 10, 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);
@@ -237,7 +237,7 @@ pub fn resize_down_with_panes_below_aligned_right_with_current_pane() {
// (ctrl-n + ctrl-b + ctrl-p + ctrl-b + ctrl-p, ctrl-j + ctrl-q)
fake_input_output.add_terminal_input(&[14, 2, 16, 2, 16, 10, 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);
@@ -267,7 +267,7 @@ pub fn resize_down_with_panes_above_aligned_left_and_right_with_current_pane() {
// (ctrl-n * 2 + ctrl-b + ctrl-p + ctrl-b + ctrl-p * 2 + ctrl-b + ctrl-j + ctrl-q)
fake_input_output.add_terminal_input(&[14, 14, 2, 16, 2, 16, 16, 2, 10, 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);
@@ -297,7 +297,7 @@ pub fn resize_down_with_panes_below_aligned_left_and_right_with_current_pane() {
// (ctrl-n * 2 + ctrl-b + ctrl-p + ctrl-b + ctrl-p * 2 + ctrl-b + ctrl-p * 2 + ctrl-j + ctrl-q)
fake_input_output.add_terminal_input(&[14, 14, 2, 16, 2, 16, 16, 2, 16, 16, 10, 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);
@@ -328,7 +328,7 @@ pub fn resize_down_with_panes_above_aligned_left_and_right_with_panes_to_the_lef
// ctrl-n * 2 + ctrl-p * 6 + ctrl-h * 2 + ctrl-p + ctrl-j + ctrl-q)
fake_input_output.add_terminal_input(&[14, 14, 16, 8, 8, 8, 2, 16, 16, 16, 2, 16, 16, 2, 14, 14, 16, 16, 16, 16, 16, 16, 8, 8, 16, 10, 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);
@@ -360,7 +360,7 @@ pub fn resize_down_with_panes_below_aligned_left_and_right_with_to_the_left_and_
// ctrl-n * 2 + ctrl-p * 2 + ctrl-h * 2 + ctrl-p * 5 + ctrl-j + ctrl-q)
fake_input_output.add_terminal_input(&[14, 14, 16, 8, 8, 8, 2, 16, 16, 16, 2, 16, 16, 2, 16, 16, 14, 14, 16, 16, 8, 8, 16, 16, 16, 16, 16, 10, 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);
diff --git a/src/tests/integration/resize_left.rs b/src/tests/integration/resize_left.rs
index bff82e3e..2039c0a4 100644
--- a/src/tests/integration/resize_left.rs
+++ b/src/tests/integration/resize_left.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;
@@ -25,7 +25,7 @@ pub fn resize_left_with_pane_to_the_left() {
};
let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[14, 8, 17]); // split-vertically, resize-left and quit (ctrl-n + ctrl-h + 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);
@@ -50,7 +50,7 @@ pub fn resize_left_with_pane_to_the_right() {
};
let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[14, 16, 8, 17]); // split-vertically, change-focus resize-left and quit (ctrl-n + ctrl-p + ctrl-h + 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);
@@ -76,7 +76,7 @@ pub fn resize_left_with_panes_to_the_left_and_right() {
let mut fake_input_output = get_fake_os_input(&fake_win_size);
// split-vertically * 2, change-focus * 2, resize-right and quit (ctrl-n * 2 + ctrl-p * 2 + ctrl-h + ctrl-q)
fake_input_output.add_terminal_input(&[14, 14, 16, 16, 8, 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);
@@ -104,7 +104,7 @@ pub fn resize_left_with_multiple_panes_to_the_left() {
// (ctrl-n + ctrl-p + ctrl-b + ctrl-p * 2 + ctrl-h + ctrl-q)
fake_input_output.add_terminal_input(&[14, 16, 2, 16, 16, 8, 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);
@@ -132,7 +132,7 @@ pub fn resize_left_with_panes_to_the_left_aligned_top_with_current_pane() {
// (ctrl-n + ctrl-b + ctrl-p + ctrl-b + ctrl-p * 3, ctrl-h + ctrl-q)
fake_input_output.add_terminal_input(&[14, 2, 16, 2, 16, 16, 16, 8, 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);
@@ -160,7 +160,7 @@ pub fn resize_left_with_panes_to_the_right_aligned_top_with_current_pane() {
// (ctrl-n + ctrl-b + ctrl-p + ctrl-b + ctrl-h + ctrl-q)
fake_input_output.add_terminal_input(&[14, 2, 16, 2, 8, 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);
@@ -188,7 +188,7 @@ pub fn resize_left_with_panes_to_the_left_aligned_bottom_with_current_pane() {
// (ctrl-n + ctrl-b + ctrl-p + ctrl-b + ctrl-p * 2, ctrl-h + ctrl-q)
fake_input_output.add_terminal_input(&[14, 2, 16, 2, 16, 16, 8, 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);
@@ -217,7 +217,7 @@ pub fn resize_left_with_panes_to_the_right_aligned_bottom_with_current_pane() {
// (ctrl-n + ctrl-b + ctrl-p + ctrl-b + ctrl-p, ctrl-h + ctrl-q)
fake_input_output.add_terminal_input(&[14, 2, 16, 2, 16, 8, 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);
@@ -247,7 +247,7 @@ pub fn resize_left_with_panes_to_the_left_aligned_top_and_bottom_with_current_pa
// (ctrl-b * 2 + ctrl-n + ctrl-p + ctrl-n + ctrl-p * 2 + ctrl-n + ctrl-h + ctrl-q)
fake_input_output.add_terminal_input(&[2, 2, 14, 16, 14, 16, 16, 14, 8, 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);
@@ -277,7 +277,7 @@ pub fn resize_left_with_panes_to_the_right_aligned_top_and_bottom_with_current_p
// (ctrl-b * 2 + ctrl-n + ctrl-p + ctrl-n + ctrl-p * 2 + ctrl-n + ctrl-p * 2 + ctrl-h + ctrl-q)
fake_input_output.add_terminal_input(&[2, 2, 14, 16, 14, 16, 16, 14, 16, 16, 8, 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);
@@ -308,7 +308,7 @@ pub fn resize_left_with_panes_to_the_left_aligned_top_and_bottom_with_panes_abov
// ctrl-b * 2 + ctrl-p * 7 + ctrl-k * 2 + ctrl-h + ctrl-q)
fake_input_output.add_terminal_input(&[2, 2, 16, 11, 11, 11, 14, 16, 16, 16, 14, 16, 16, 14, 2, 2, 16, 16, 16, 16, 16, 16, 16, 11, 11, 8, 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);
@@ -340,7 +340,7 @@ pub fn resize_left_with_panes_to_the_right_aligned_top_and_bottom_with_panes_abo
// ctrl-b * 2 + ctrl-p * 7 + ctrl-k * 2 + ctrl-h + ctrl-q)
fake_input_output.add_terminal_input(&[2, 2, 16, 11, 11, 11, 14, 16, 16, 16, 14, 16, 16, 14, 16, 16, 2, 2, 16, 16, 16, 16, 16, 16, 16, 11, 11, 8, 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);
diff --git a/src/tests/integration/resize_right.rs b/src/tests/integration/resize_right.rs
index a8dbf5b3..6a11a0e8 100644
--- a/src/tests/integration/resize_right.rs
+++ b/src/tests/integration/resize_right.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;
@@ -25,7 +25,7 @@ pub fn resize_right_with_pane_to_the_left() {
};
let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[14, 12, 17]); // split-vertically, resize-right and quit (ctrl-n + ctrl-l + 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);
@@ -50,7 +50,7 @@ pub fn resize_right_with_pane_to_the_right() {
};
let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[14, 16, 12, 17]); // split-vertically, change-focus resize-right and quit (ctrl-n + ctrl-p + ctrl-l + 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);
@@ -76,7 +76,7 @@ pub fn resize_right_with_panes_to_the_left_and_right() {
let mut fake_input_output = get_fake_os_input(&fake_win_size);
// split-vertically * 2, change-focus * 2, resize-right and quit (ctrl-n * 2 + ctrl-p * 2 + ctrl-l + ctrl-q)
fake_input_output.add_terminal_input(&[14, 14, 16, 16, 12, 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);
@@ -104,7 +104,7 @@ pub fn resize_right_with_multiple_panes_to_the_left() {
// (ctrl-n + ctrl-p + ctrl-b + ctrl-p * 2 + ctrl-l + ctrl-q)
fake_input_output.add_terminal_input(&[14, 16, 2, 16, 16, 12, 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);
@@ -132,7 +132,7 @@ pub fn resize_right_with_panes_to_the_left_aligned_top_with_current_pane() {
// (ctrl-n + ctrl-b + ctrl-p + ctrl-b + ctrl-p * 3, ctrl-l + ctrl-q)
fake_input_output.add_terminal_input(&[14, 2, 16, 2, 16, 16, 16, 12, 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);
@@ -160,7 +160,7 @@ pub fn resize_right_with_panes_to_the_right_aligned_top_with_current_pane() {
// (ctrl-n + ctrl-b + ctrl-p + ctrl-b + ctrl-l + ctrl-q)
fake_input_output.add_terminal_input(&[14, 2, 16, 2, 12, 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);
@@ -188,7 +188,7 @@ pub fn resize_right_with_panes_to_the_left_aligned_bottom_with_current_pane() {
// (ctrl-n + ctrl-b + ctrl-p + ctrl-b + ctrl-p * 2, ctrl-l + ctrl-q)
fake_input_output.add_terminal_input(&[14, 2, 16, 2, 16, 16, 12, 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);
@@ -217,7 +217,7 @@ pub fn resize_right_with_panes_to_the_right_aligned_bottom_with_current_pane() {
// (ctrl-n + ctrl-b + ctrl-p + ctrl-b + ctrl-p, ctrl-l + ctrl-q)
fake_input_output.add_terminal_input(&[14, 2, 16, 2, 16, 12, 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);
@@ -247,7 +247,7 @@ pub fn resize_right_with_panes_to_the_left_aligned_top_and_bottom_with_current_p
// (ctrl-b * 2 + ctrl-n + ctrl-p + ctrl-n + ctrl-p * 2 + ctrl-n + ctrl-l + ctrl-q)
fake_input_output.add_terminal_input(&[2, 2, 14, 16, 14, 16, 16, 14, 12, 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);
@@ -277,7 +277,7 @@ pub fn resize_right_with_panes_to_the_right_aligned_top_and_bottom_with_current_
// (ctrl-b * 2 + ctrl-n + ctrl-p + ctrl-n + ctrl-p * 2 + ctrl-n + ctrl-p * 2 + ctrl-l + ctrl-q)
fake_input_output.add_terminal_input(&[2, 2, 14, 16, 14, 16, 16, 14, 16, 16, 12, 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);
@@ -308,7 +308,7 @@ pub fn resize_right_with_panes_to_the_left_aligned_top_and_bottom_with_panes_abo
// ctrl-b * 2 + ctrl-p * 7 + ctrl-k * 2 + ctrl-l + ctrl-q)
fake_input_output.add_terminal_input(&[2, 2, 16, 11, 11, 11, 14, 16, 16, 16, 14, 16, 16, 14, 2, 2, 16, 16, 16, 16, 16, 16, 16, 11, 11, 12, 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);
@@ -340,7 +340,7 @@ pub fn resize_right_with_panes_to_the_right_aligned_top_and_bottom_with_panes_ab
// ctrl-b * 2 + ctrl-p * 7 + ctrl-k * 2 + ctrl-l + ctrl-q)
fake_input_output.add_terminal_input(&[2, 2, 16, 11, 11, 11, 14, 16, 16, 16, 14, 16, 16, 14, 16, 16, 2, 2, 16, 16, 16, 16, 16, 16, 16, 11, 11, 12, 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);
diff --git a/src/tests/integration/resize_up.rs b/src/tests/integration/resize_up.rs
index 35bca0b5..e7a76727 100644
--- a/src/tests/integration/resize_up.rs
+++ b/src/tests/integration/resize_up.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;
@@ -27,7 +27,7 @@ pub fn resize_up_with_pane_above() {
};
let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[2, 11, 17]); // split-horizontally, resize-up and quit (ctrl-b + ctrl-k + 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);
@@ -54,7 +54,7 @@ pub fn resize_up_with_pane_below() {
};
let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[2, 16, 11, 17]); // split-horizontally, change-focus, resize-up and quit (ctrl-b + ctrl-p + ctrl-k + 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);
@@ -85,7 +85,7 @@ pub fn resize_up_with_panes_above_and_below() {
let mut fake_input_output = get_fake_os_input(&fake_win_size);
// split-horizontally * 2, change-focus * 2, resize-up and quit (ctrl-n * 2 + ctrl-p * 2 + ctrl-h + ctrl-q)
fake_input_output.add_terminal_input(&[2, 2, 16, 16, 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);
@@ -114,7 +114,7 @@ pub fn resize_up_with_multiple_panes_above() {
// (ctrl-b + ctrl-p + ctrl-n + ctrl-p * 2 + ctrl-k + ctrl-q)
fake_input_output.add_terminal_input(&[2, 16, 14, 16, 16, 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);
@@ -142,7 +142,7 @@ pub fn resize_up_with_panes_above_aligned_left_with_current_pane() {
// (ctrl-n + ctrl-b + ctrl-p + ctrl-b + ctrl-p * 3, ctrl-k + ctrl-q)
fake_input_output.add_terminal_input(&[14, 2, 16, 2, 16, 16, 16, 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);
@@ -172,7 +172,7 @@ pub fn resize_up_with_panes_below_aligned_left_with_current_pane() {
// (ctrl-n + ctrl-b + ctrl-p + ctrl-b + ctrl-p + ctrl-p + ctrl-k + ctrl-q)
fake_input_output.add_terminal_input(&[14, 2, 16, 2, 16, 16, 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);
@@ -202,7 +202,7 @@ pub fn resize_up_with_panes_above_aligned_right_with_current_pane() {
// (ctrl-n + ctrl-b + ctrl-p + ctrl-b + ctrl-k + ctrl-q)
fake_input_output.add_terminal_input(&[14, 2, 16, 2, 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);
@@ -233,7 +233,7 @@ pub fn resize_up_with_panes_below_aligned_right_with_current_pane() {
// (ctrl-n + ctrl-b + ctrl-p + ctrl-b + ctrl-p, ctrl-k + ctrl-q)
fake_input_output.add_terminal_input(&[14, 2, 16, 2, 16, 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);
@@ -263,7 +263,7 @@ pub fn resize_up_with_panes_above_aligned_left_and_right_with_current_pane() {
// (ctrl-n * 2 + ctrl-b + ctrl-p + ctrl-b + ctrl-p * 2 + ctrl-b + ctrl-k + ctrl-q)
fake_input_output.add_terminal_input(&[14, 14, 2, 16, 2, 16, 16, 2, 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);
@@ -293,7 +293,7 @@ pub fn resize_up_with_panes_below_aligned_left_and_right_with_current_pane() {
// (ctrl-n * 2 + ctrl-b + ctrl-p + ctrl-b + ctrl-p * 2 + ctrl-b + ctrl-p * 2 + ctrl-k + ctrl-q)
fake_input_output.add_terminal_input(&[14, 14, 2, 16, 2, 16, 16, 2, 16, 16, 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);
@@ -324,7 +324,7 @@ pub fn resize_up_with_panes_above_aligned_left_and_right_with_panes_to_the_left_
// ctrl-n * 2 + ctrl-p * 6 + ctrl-h * 2 + ctrl-p + ctrl-k + ctrl-q)
fake_input_output.add_terminal_input(&[14, 14, 16, 8, 8, 8, 2, 16, 16, 16, 2, 16, 16, 2, 14, 14, 16, 16, 16, 16, 16, 16, 8, 8, 16, 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);
@@ -356,7 +356,7 @@ pub fn resize_up_with_panes_below_aligned_left_and_right_with_to_the_left_and_ri
// ctrl-n * 2 + ctrl-p * 2 + ctrl-h * 2 + ctrl-p * 5 + ctrl-k + ctrl-q)
fake_input_output.add_terminal_input(&[14, 14, 16, 8, 8, 8, 2, 16, 16, 16, 2, 16, 16, 2, 16, 16, 14, 14, 16, 16, 8, 8, 16, 16, 16, 16, 16, 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);
diff --git a/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-10.snap b/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-10.snap
new file mode 100644
index 00000000..fa8c19b2
--- /dev/null
+++ b/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-10.snap
@@ -0,0 +1,24 @@
+---
+source: src/tests/integration/basic.rs
+expression: snapshot
+---
+line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+prompt $ │prompt $
+────────────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────
+line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+prompt $ │prompt $
+Bye from Mosaic!█
diff --git a/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-2.snap b/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-2.snap
new file mode 100644
index 00000000..3d527ead
--- /dev/null
+++ b/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-2.snap
@@ -0,0 +1,24 @@
+---
+source: src/tests/integration/basic.rs
+expression: snapshot
+---
+a │█
+line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│
+a │
+line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│
+a │
+line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│
+a │
+line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│
+a │
+line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│
+a │
+line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│
+a │
+prompt $ │
diff --git a/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-3.snap b/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-3.snap
new file mode 100644
index 00000000..4a2fb140
--- /dev/null
+++ b/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-3.snap
@@ -0,0 +1,24 @@
+---
+source: src/tests/integration/basic.rs
+expression: snapshot
+---
+a │line1-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line2-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line3-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+a │line4-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line5-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line6-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+a │line7-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line8-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line9-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+a │line10-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+a │line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+a │line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+a │line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+prompt $ │prompt $ █
diff --git a/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-4.snap b/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-4.snap
new file mode 100644
index 00000000..4cd99158
--- /dev/null
+++ b/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-4.snap
@@ -0,0 +1,24 @@
+---
+source: src/tests/integration/basic.rs
+expression: snapshot
+---
+line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line1-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line2-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+a │line3-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line4-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line5-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+a │line6-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line7-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line8-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+a │line9-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+prompt $ │line10-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+────────────────────────────────────────────────────────────┤line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+█ │line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+ │line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+ │line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+ │line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+ │line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+ │line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+ │line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+ │line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+ │prompt $
diff --git a/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-5.snap b/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-5.snap
new file mode 100644
index 00000000..cc0f4bc6
--- /dev/null
+++ b/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-5.snap
@@ -0,0 +1,24 @@
+---
+source: src/tests/integration/basic.rs
+expression: snapshot
+---
+line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line1-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line2-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+a │line3-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line4-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line5-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+a │line6-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line7-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line8-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+a │line9-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+prompt $ │line10-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+────────────────────────────────────────────────────────────┤line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+prompt $ █ │prompt $
diff --git a/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-6.snap b/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-6.snap
new file mode 100644
index 00000000..b0f22d41
--- /dev/null
+++ b/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-6.snap
@@ -0,0 +1,24 @@
+---
+source: src/tests/integration/basic.rs
+expression: snapshot
+---
+line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+a │line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+a │line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+a │line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+prompt $ │prompt $
+────────────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────
+line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│█
+line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│
+line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│
+line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│
+line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│
+line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│
+line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│
+line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│
+prompt $ │
diff --git a/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-7.snap b/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-7.snap
new file mode 100644
index 00000000..e7d9ee8c
--- /dev/null
+++ b/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-7.snap
@@ -0,0 +1,24 @@
+---
+source: src/tests/integration/basic.rs
+expression: snapshot
+---
+line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+a │line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+a │line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+a │line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+prompt $ │prompt $
+────────────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────
+line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+prompt $ │prompt $ █
diff --git a/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-8.snap b/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-8.snap
new file mode 100644
index 00000000..dc96752b
--- /dev/null
+++ b/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-8.snap
@@ -0,0 +1,24 @@
+---
+source: src/tests/integration/basic.rs
+expression: snapshot
+---
+line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│█
+line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│
+line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│
+line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│
+line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│
+line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│
+line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│
+line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│
+line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│
+prompt $ │
+────────────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────
+line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+prompt $ │prompt $
diff --git a/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-9.snap b/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-9.snap
new file mode 100644
index 00000000..9dc18e7c
--- /dev/null
+++ b/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-9.snap
@@ -0,0 +1,24 @@
+---
+source: src/tests/integration/basic.rs
+expression: snapshot
+---
+line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+prompt $ │prompt $ █
+────────────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────
+line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+prompt $ │prompt $
diff --git a/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes.snap b/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes.snap
new file mode 100644
index 00000000..3d8b7146
--- /dev/null
+++ b/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes.snap
@@ -0,0 +1,24 @@
+---
+source: src/tests/integration/basic.rs
+expression: snapshot
+---
+line1-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+line2-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+line3-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+line4-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+line5-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+line6-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+line7-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+line8-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+line9-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+line10-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+line11-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+line12-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+prompt $ █