diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index a81d4ae6..640244a1 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -39,6 +39,11 @@ jobs: run: cargo install --debug cargo-make - name: Build asset run: cargo make build-e2e + # we copy this manually into the target folder instead of mounting it because + # github actions creates the service first, and if it has a mount that is part + # of your yet unchecked out code, you cannot checkout the code after the mount + - name: Copy fixtures folder to target + run: cp -r ${{ github.workspace }}/src/tests/fixtures ${{ github.workspace }}/target - name: Restart ssh container # we need to do this because otherwise the volume will not be mounted # on the docker container, since it was created before the folder existed diff --git a/CHANGELOG.md b/CHANGELOG.md index 1dc99487..4c5367fd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,10 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) ## [Unreleased] +* Kill children properly (https://github.com/zellij-org/zellij/pull/601) +* Change name of `Run` binding for actions (https://github.com/zellij-org/zellij/pull/602) + +## [0.14.0] - 2021-07-05 * Add improved error handling for layouts (https://github.com/zellij-org/zellij/pull/576) * Change layout directory from data to config (https://github.com/zellij-org/zellij/pull/577) POSSIBLE BREAKING CHANGE: @@ -14,6 +18,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) `layout-dir` * Fix `Makefile.toml` because of missing directory (https://github.com/zellij-org/zellij/pull/580) * Autodetach on force close (https://github.com/zellij-org/zellij/pull/581) +* Add option to specify a default shell (https://github.com/zellij-org/zellij/pull/594) +* Add action to run bound commands in a pane (https://github.com/zellij-org/zellij/pull/596) +* Initial mouse support (https://github.com/zellij-org/zellij/pull/448) +* Add `layout-dir` to `setup --check` subcommand (https://github.com/zellij-org/zellij/pull/599) ## [0.13.0] - 2021-06-04 * Fix crash when padding before widechar (https://github.com/zellij-org/zellij/pull/540) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d34367f3..4b9455b8 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -44,6 +44,8 @@ cargo make manpage To run `install` or `publish`, you'll need the package `binaryen` in the version `wasm-opt --version` > 97, for it's command `wasm-opt`. +To run `test`, you will need the package `pkg-config` and a version of `openssl`. + ## Running the end-to-end tests Zellij includes some end to end tests which test the whole application as a black-box from the outside. These tests work by running a docker container which contains the Zellij binary, connecting to it via ssh, sending some commands and comparing the output received against predefined snapshots. diff --git a/Cargo.lock b/Cargo.lock index 6d23cea3..ead56047 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -211,12 +211,12 @@ checksum = "065374052e7df7ee4047b1160cca5e1467a12351a40b3da123c870ba0b8eda2a" [[package]] name = "atty" -version = "0.2.14" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +checksum = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652" dependencies = [ - "hermit-abi", "libc", + "termion", "winapi", ] @@ -241,6 +241,12 @@ dependencies = [ "rustc-demangle", ] +[[package]] +name = "base64" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" + [[package]] name = "bincode" version = "1.3.3" @@ -2616,7 +2622,7 @@ dependencies = [ [[package]] name = "zellij" -version = "0.14.0" +version = "0.15.0" dependencies = [ "insta", "log", @@ -2630,18 +2636,21 @@ dependencies = [ [[package]] name = "zellij-client" -version = "0.14.0" +version = "0.15.0" dependencies = [ + "insta", + "mio", "termbg", "zellij-utils", ] [[package]] name = "zellij-server" -version = "0.14.0" +version = "0.15.0" dependencies = [ "ansi_term 0.12.1", "async-trait", + "base64", "cassowary", "daemonize", "insta", @@ -2656,7 +2665,7 @@ dependencies = [ [[package]] name = "zellij-tile" -version = "0.14.0" +version = "0.15.0" dependencies = [ "serde", "serde_json", @@ -2666,14 +2675,14 @@ dependencies = [ [[package]] name = "zellij-tile-utils" -version = "0.14.0" +version = "0.15.0" dependencies = [ "ansi_term 0.12.1", ] [[package]] name = "zellij-utils" -version = "0.14.0" +version = "0.15.0" dependencies = [ "async-std", "backtrace", diff --git a/Cargo.toml b/Cargo.toml index b14e7095..b6ac222d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zellij" -version = "0.14.0" +version = "0.15.0" authors = ["Aram Drevekenin "] edition = "2018" description = "A terminal workspace with batteries included" @@ -14,18 +14,16 @@ resolver = "2" [dependencies] names = "0.11.0" -zellij-client = { path = "zellij-client/", version = "0.14.0" } -zellij-server = { path = "zellij-server/", version = "0.14.0" } -zellij-utils = { path = "zellij-utils/", version = "0.14.0" } + +zellij-client = { path = "zellij-client/", version = "0.15.0" } +zellij-server = { path = "zellij-server/", version = "0.15.0" } +zellij-utils = { path = "zellij-utils/", version = "0.15.0" } log = "0.4.14" [dev-dependencies] insta = { version = "1.6.0", features = ["backtrace"] } ssh2 = "0.9.1" rand = "0.8.0" -zellij-utils = { path = "zellij-utils/", version = "0.14.0", features = ["test"] } -zellij-client = { path = "zellij-client/", version = "0.14.0", features = ["test"] } -zellij-server = { path = "zellij-server/", version = "0.14.0", features = ["test"] } [workspace] members = [ diff --git a/Makefile.toml b/Makefile.toml index e0043ab7..c58ce3d0 100644 --- a/Makefile.toml +++ b/Makefile.toml @@ -151,7 +151,7 @@ run_task = "publish-zellij" [tasks.release-commit] dependencies = ["commit-all", "tag-release"] command = "git" -args = ["push", "--atomic", "origin", "main", "v${CARGO_MAKE_CRATE_VERSION}"] +args = ["push", "--atomic", "upstream", "main", "v${CARGO_MAKE_CRATE_VERSION}"] [tasks.commit-all] ignore_errors = true diff --git a/assets/plugins/status-bar.wasm b/assets/plugins/status-bar.wasm index d484fd2d..677e8727 100644 Binary files a/assets/plugins/status-bar.wasm and b/assets/plugins/status-bar.wasm differ diff --git a/assets/plugins/strider.wasm b/assets/plugins/strider.wasm index 797950c0..b4fe4a7c 100644 Binary files a/assets/plugins/strider.wasm and b/assets/plugins/strider.wasm differ diff --git a/assets/plugins/tab-bar.wasm b/assets/plugins/tab-bar.wasm index b7148fc7..221d1baa 100644 Binary files a/assets/plugins/tab-bar.wasm and b/assets/plugins/tab-bar.wasm differ diff --git a/docker-compose.yml b/docker-compose.yml index ec52486e..7130f460 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -16,6 +16,9 @@ services: - type: bind source: ./target target: /usr/src/zellij + - type: bind + source: ./src/tests/fixtures + target: /usr/src/zellij/fixtures ports: - 2222:2222 restart: unless-stopped diff --git a/src/main.rs b/src/main.rs index 67b9419b..7d6865fd 100644 --- a/src/main.rs +++ b/src/main.rs @@ -13,9 +13,7 @@ use zellij_server::{os_input_output::get_server_os_input, start_server}; use zellij_utils::{ cli::{CliArgs, Command, Sessions}, consts::{ZELLIJ_TMP_DIR, ZELLIJ_TMP_LOG_DIR}, - input::config::Config, - input::layout::Layout, - input::options::Options, + input::{config::Config, layout::Layout, options::Options}, logging::*, setup::{find_default_config_dir, get_default_data_dir, get_layout_dir, Setup}, structopt::StructOpt, @@ -28,8 +26,6 @@ pub fn main() { if let Some(Command::Sessions(Sessions::ListSessions)) = opts.command { list_sessions(); - } else if let Some(Command::Setup(ref setup)) = opts.command { - Setup::from_cli(setup, &opts).expect("Failed to print to stdout"); } let config = match Config::try_from(&opts) { @@ -41,6 +37,10 @@ pub fn main() { }; let config_options = Options::from_cli(&config.options, opts.command.clone()); + if let Some(Command::Setup(ref setup)) = opts.command { + Setup::from_cli(setup, &opts, &config_options).expect("Failed to print to stdout"); + } + atomic_create_dir(&*ZELLIJ_TMP_DIR).unwrap(); atomic_create_dir(&*ZELLIJ_TMP_LOG_DIR).unwrap(); if let Some(path) = opts.server { diff --git a/src/tests/e2e/cases.rs b/src/tests/e2e/cases.rs index 5af67074..8d41d44f 100644 --- a/src/tests/e2e/cases.rs +++ b/src/tests/e2e/cases.rs @@ -1,15 +1,69 @@ +#![allow(unused)] + use ::insta::assert_snapshot; -use zellij_utils::pane_size::PositionAndSize; +use zellij_utils::{pane_size::PositionAndSize, position::Position}; use rand::Rng; +use std::path::Path; + use super::remote_runner::{RemoteRunner, RemoteTerminal, Step}; -use crate::tests::utils::commands::{ - CLOSE_PANE_IN_PANE_MODE, DETACH_IN_SESSION_MODE, ENTER, LOCK_MODE, NEW_TAB_IN_TAB_MODE, - PANE_MODE, QUIT, RESIZE_LEFT_IN_RESIZE_MODE, RESIZE_MODE, SCROLL_MODE, - SCROLL_UP_IN_SCROLL_MODE, SESSION_MODE, SPLIT_RIGHT_IN_PANE_MODE, TAB_MODE, - TOGGLE_ACTIVE_TERMINAL_FULLSCREEN_IN_PANE_MODE, -}; + +pub const QUIT: [u8; 1] = [17]; // ctrl-q +pub const ESC: [u8; 1] = [27]; +pub const ENTER: [u8; 1] = [10]; // char '\n' +pub const LOCK_MODE: [u8; 1] = [7]; // ctrl-g + +pub const MOVE_FOCUS_LEFT_IN_NORMAL_MODE: [u8; 2] = [27, 104]; // alt-h +pub const MOVE_FOCUS_RIGHT_IN_NORMAL_MODE: [u8; 2] = [27, 108]; // alt-l + +pub const PANE_MODE: [u8; 1] = [16]; // ctrl-p +pub const SPAWN_TERMINAL_IN_PANE_MODE: [u8; 1] = [110]; // n +pub const MOVE_FOCUS_IN_PANE_MODE: [u8; 1] = [112]; // p +pub const SPLIT_DOWN_IN_PANE_MODE: [u8; 1] = [100]; // d +pub const SPLIT_RIGHT_IN_PANE_MODE: [u8; 1] = [114]; // r +pub const TOGGLE_ACTIVE_TERMINAL_FULLSCREEN_IN_PANE_MODE: [u8; 1] = [102]; // f +pub const CLOSE_PANE_IN_PANE_MODE: [u8; 1] = [120]; // x +pub const MOVE_FOCUS_DOWN_IN_PANE_MODE: [u8; 1] = [106]; // j +pub const MOVE_FOCUS_UP_IN_PANE_MODE: [u8; 1] = [107]; // k +pub const MOVE_FOCUS_LEFT_IN_PANE_MODE: [u8; 1] = [104]; // h +pub const MOVE_FOCUS_RIGHT_IN_PANE_MODE: [u8; 1] = [108]; // l + +pub const SCROLL_MODE: [u8; 1] = [19]; // ctrl-s +pub const SCROLL_UP_IN_SCROLL_MODE: [u8; 1] = [107]; // k +pub const SCROLL_DOWN_IN_SCROLL_MODE: [u8; 1] = [106]; // j +pub const SCROLL_PAGE_UP_IN_SCROLL_MODE: [u8; 1] = [2]; // ctrl-b +pub const SCROLL_PAGE_DOWN_IN_SCROLL_MODE: [u8; 1] = [6]; // ctrl-f + +pub const RESIZE_MODE: [u8; 1] = [18]; // ctrl-r +pub const RESIZE_DOWN_IN_RESIZE_MODE: [u8; 1] = [106]; // j +pub const RESIZE_UP_IN_RESIZE_MODE: [u8; 1] = [107]; // k +pub const RESIZE_LEFT_IN_RESIZE_MODE: [u8; 1] = [104]; // h +pub const RESIZE_RIGHT_IN_RESIZE_MODE: [u8; 1] = [108]; // l + +pub const TAB_MODE: [u8; 1] = [20]; // ctrl-t +pub const NEW_TAB_IN_TAB_MODE: [u8; 1] = [110]; // n +pub const SWITCH_NEXT_TAB_IN_TAB_MODE: [u8; 1] = [108]; // l +pub const SWITCH_PREV_TAB_IN_TAB_MODE: [u8; 1] = [104]; // h +pub const CLOSE_TAB_IN_TAB_MODE: [u8; 1] = [120]; // x + +pub const SESSION_MODE: [u8; 1] = [15]; // ctrl-o +pub const DETACH_IN_SESSION_MODE: [u8; 1] = [100]; // d + +pub const BRACKETED_PASTE_START: [u8; 6] = [27, 91, 50, 48, 48, 126]; // \u{1b}[200~ +pub const BRACKETED_PASTE_END: [u8; 6] = [27, 91, 50, 48, 49, 126]; // \u{1b}[201 +pub const SLEEP: [u8; 0] = []; + +// simplified, slighty adapted version of alacritty mouse reporting code +pub fn normal_mouse_report(position: Position, button: u8) -> Vec { + let Position { line, column } = position; + + let mut command = vec![b'\x1b', b'[', b'M', 32 + button]; + command.push(32 + 1 + column.0 as u8); + command.push(32 + 1 + line.0 as u8); + + command +} // All the E2E tests are marked as "ignored" so that they can be run separately from the normal // tests @@ -714,3 +768,172 @@ pub fn detach_and_attach_session() { .run_all_steps(); assert_snapshot!(last_snapshot); } + +#[test] +#[ignore] +pub fn accepts_basic_layout() { + let fake_win_size = PositionAndSize { + cols: 120, + rows: 24, + x: 0, + y: 0, + ..Default::default() + }; + let layout_file_name = "three-panes-with-nesting.yaml"; + let last_snapshot = RemoteRunner::new_with_layout("accepts_basic_layout", fake_win_size, layout_file_name, None) + .add_step(Step { + name: "Wait for app to load", + instruction: |remote_terminal: RemoteTerminal| -> bool { + let mut step_is_complete = false; + if remote_terminal.cursor_position_is(2, 0) + && remote_terminal.snapshot_contains("$ █ │$") + && remote_terminal.snapshot_contains("$ ") { + step_is_complete = true; + } + step_is_complete + }, + }) + .run_all_steps(); + assert_snapshot!(last_snapshot); +} + +#[test] +#[ignore] +fn focus_pane_with_mouse() { + let fake_win_size = PositionAndSize { + cols: 120, + rows: 24, + x: 0, + y: 0, + ..Default::default() + }; + + let last_snapshot = RemoteRunner::new("split_terminals_vertically", fake_win_size, None) + .add_step(Step { + name: "Split pane to the right", + instruction: |mut remote_terminal: RemoteTerminal| -> bool { + let mut step_is_complete = false; + if remote_terminal.status_bar_appears() && remote_terminal.cursor_position_is(2, 2) + { + remote_terminal.send_key(&PANE_MODE); + remote_terminal.send_key(&SPLIT_RIGHT_IN_PANE_MODE); + // back to normal mode after split + remote_terminal.send_key(&ENTER); + step_is_complete = true; + } + step_is_complete + }, + }) + .add_step(Step { + name: "Click left pane", + instruction: |mut remote_terminal: RemoteTerminal| -> bool { + let mut step_is_complete = false; + if remote_terminal.cursor_position_is(63, 2) && remote_terminal.tip_appears() { + remote_terminal.send_key(&normal_mouse_report(Position::new(5, 2), 0)); + step_is_complete = true; + } + step_is_complete + }, + }) + .add_step(Step { + name: "Wait for left pane to be focused", + instruction: |remote_terminal: RemoteTerminal| -> bool { + let mut step_is_complete = false; + if remote_terminal.cursor_position_is(2, 2) && remote_terminal.tip_appears() { + // cursor is in the newly opened second pane + step_is_complete = true; + } + step_is_complete + }, + }) + .run_all_steps(); + assert_snapshot!(last_snapshot); +} + +#[test] +#[ignore] +pub fn scrolling_inside_a_pane_with_mouse() { + let fake_win_size = PositionAndSize { + cols: 120, + rows: 24, + x: 0, + y: 0, + ..Default::default() + }; + let last_snapshot = + RemoteRunner::new("scrolling_inside_a_pane_with_mouse", fake_win_size, None) + .add_step(Step { + name: "Split pane to the right", + instruction: |mut remote_terminal: RemoteTerminal| -> bool { + let mut step_is_complete = false; + if remote_terminal.status_bar_appears() + && remote_terminal.cursor_position_is(2, 2) + { + remote_terminal.send_key(&PANE_MODE); + remote_terminal.send_key(&SPLIT_RIGHT_IN_PANE_MODE); + // back to normal mode after split + remote_terminal.send_key(&ENTER); + step_is_complete = true; + } + step_is_complete + }, + }) + .add_step(Step { + name: "Fill terminal with text", + instruction: |mut remote_terminal: RemoteTerminal| -> bool { + let mut step_is_complete = false; + if remote_terminal.cursor_position_is(63, 2) && remote_terminal.tip_appears() { + // cursor is in the newly opened second pane + remote_terminal.send_key(&format!("{:0<57}", "line1 ").as_bytes()); + remote_terminal.send_key(&format!("{:0<59}", "line2 ").as_bytes()); + remote_terminal.send_key(&format!("{:0<59}", "line3 ").as_bytes()); + remote_terminal.send_key(&format!("{:0<59}", "line4 ").as_bytes()); + remote_terminal.send_key(&format!("{:0<59}", "line5 ").as_bytes()); + remote_terminal.send_key(&format!("{:0<59}", "line6 ").as_bytes()); + remote_terminal.send_key(&format!("{:0<59}", "line7 ").as_bytes()); + remote_terminal.send_key(&format!("{:0<59}", "line8 ").as_bytes()); + remote_terminal.send_key(&format!("{:0<59}", "line9 ").as_bytes()); + remote_terminal.send_key(&format!("{:0<59}", "line10 ").as_bytes()); + remote_terminal.send_key(&format!("{:0<59}", "line11 ").as_bytes()); + remote_terminal.send_key(&format!("{:0<59}", "line12 ").as_bytes()); + remote_terminal.send_key(&format!("{:0<59}", "line13 ").as_bytes()); + remote_terminal.send_key(&format!("{:0<59}", "line14 ").as_bytes()); + remote_terminal.send_key(&format!("{:0<59}", "line15 ").as_bytes()); + remote_terminal.send_key(&format!("{:0<59}", "line16 ").as_bytes()); + remote_terminal.send_key(&format!("{:0<59}", "line17 ").as_bytes()); + remote_terminal.send_key(&format!("{:0<59}", "line18 ").as_bytes()); + remote_terminal.send_key(&format!("{:0<59}", "line19 ").as_bytes()); + remote_terminal.send_key(&format!("{:0<58}", "line20 ").as_bytes()); + step_is_complete = true; + } + step_is_complete + }, + }) + .add_step(Step { + name: "Scroll up inside pane", + instruction: |mut remote_terminal: RemoteTerminal| -> bool { + let mut step_is_complete = false; + if remote_terminal.cursor_position_is(119, 20) { + // all lines have been written to the pane + remote_terminal.send_key(&normal_mouse_report(Position::new(2, 64), 64)); + step_is_complete = true; + } + step_is_complete + }, + }) + .add_step(Step { + name: "Wait for scroll to finish", + instruction: |remote_terminal: RemoteTerminal| -> bool { + let mut step_is_complete = false; + if remote_terminal.cursor_position_is(119, 20) + && remote_terminal.snapshot_contains("line1 ") + { + // scrolled up one line + step_is_complete = true; + } + step_is_complete + }, + }) + .run_all_steps(); + assert_snapshot!(last_snapshot); +} diff --git a/src/tests/e2e/remote_runner.rs b/src/tests/e2e/remote_runner.rs index b53c3129..053df477 100644 --- a/src/tests/e2e/remote_runner.rs +++ b/src/tests/e2e/remote_runner.rs @@ -8,7 +8,10 @@ use ssh2::Session; use std::io::prelude::*; use std::net::TcpStream; +use std::path::Path; + const ZELLIJ_EXECUTABLE_LOCATION: &str = "/usr/src/zellij/x86_64-unknown-linux-musl/debug/zellij"; +const ZELLIJ_LAYOUT_PATH: &str = "/usr/src/zellij/fixtures/layouts"; const CONNECTION_STRING: &str = "127.0.0.1:2222"; const CONNECTION_USERNAME: &str = "test"; const CONNECTION_PASSWORD: &str = "test"; @@ -54,6 +57,38 @@ fn start_zellij(channel: &mut ssh2::Channel, session_name: Option<&String>) { channel.flush().unwrap(); } +fn start_zellij_with_layout( + channel: &mut ssh2::Channel, + layout_path: &str, + session_name: Option<&String>, +) { + match session_name.as_ref() { + Some(name) => { + channel + .write_all( + format!( + "{} --layout-path {} --session {}\n", + ZELLIJ_EXECUTABLE_LOCATION, layout_path, name + ) + .as_bytes(), + ) + .unwrap(); + } + None => { + channel + .write_all( + format!( + "{} --layout-path {}\n", + ZELLIJ_EXECUTABLE_LOCATION, layout_path + ) + .as_bytes(), + ) + .unwrap(); + } + }; + channel.flush().unwrap(); +} + pub fn take_snapshot(terminal_output: &mut TerminalPane) -> String { let output_lines = terminal_output.read_buffer_as_lines(); let cursor_coordinates = terminal_output.cursor_coordinates(); @@ -107,6 +142,20 @@ impl<'a> RemoteTerminal<'a> { pub fn snapshot_contains(&self, text: &str) -> bool { self.current_snapshot.contains(text) } + #[allow(unused)] + pub fn current_snapshot(&self) -> String { + // convenience method for writing tests, + // this should only be used when developing, + // please prefer "snapsht_contains" instead + self.current_snapshot.clone() + } + #[allow(unused)] + pub fn current_cursor_position(&self) -> String { + // convenience method for writing tests, + // this should only be used when developing, + // please prefer "cursor_position_is" instead + format!("x: {}, y: {}", self.cursor_x, self.cursor_y) + } pub fn send_key(&mut self, key: &[u8]) { self.channel.write(key).unwrap(); self.channel.flush().unwrap(); @@ -148,6 +197,7 @@ pub struct RemoteRunner { currently_running_step: Option, retries_left: usize, win_size: PositionAndSize, + layout_file_name: Option<&'static str>, } impl RemoteRunner { @@ -173,6 +223,39 @@ impl RemoteRunner { current_step_index: 0, retries_left: 3, win_size, + layout_file_name: None, + } + } + pub fn new_with_layout( + test_name: &'static str, + win_size: PositionAndSize, + layout_file_name: &'static str, + session_name: Option, + ) -> Self { + // let layout_file_name = local_layout_path.file_name().unwrap(); + let remote_path = Path::new(ZELLIJ_LAYOUT_PATH).join(layout_file_name); // TODO: not hardcoded + let sess = ssh_connect(); + let mut channel = sess.channel_session().unwrap(); + let vte_parser = vte::Parser::new(); + let terminal_output = TerminalPane::new(0, win_size, Palette::default()); + setup_remote_environment(&mut channel, win_size); + start_zellij_with_layout( + &mut channel, + &remote_path.to_string_lossy(), + session_name.as_ref(), + ); + RemoteRunner { + steps: vec![], + channel, + terminal_output, + vte_parser, + session_name, + test_name, + currently_running_step: None, + current_step_index: 0, + retries_left: 3, + win_size, + layout_file_name: Some(layout_file_name), } } pub fn add_step(mut self, step: Step) -> Self { @@ -220,11 +303,25 @@ impl RemoteRunner { // inside the container format!("{}_{}", name, self.retries_left) }); - let mut new_runner = RemoteRunner::new(self.test_name, self.win_size, session_name); - new_runner.retries_left = self.retries_left - 1; - new_runner.replace_steps(self.steps.clone()); - drop(std::mem::replace(self, new_runner)); - self.run_all_steps() + if let Some(layout_file_name) = self.layout_file_name.as_ref() { + // let mut new_runner = RemoteRunner::new_with_layout(self.test_name, self.win_size, Path::new(&local_layout_path), session_name); + let mut new_runner = RemoteRunner::new_with_layout( + self.test_name, + self.win_size, + layout_file_name, + session_name, + ); + new_runner.retries_left = self.retries_left - 1; + new_runner.replace_steps(self.steps.clone()); + drop(std::mem::replace(self, new_runner)); + self.run_all_steps() + } else { + let mut new_runner = RemoteRunner::new(self.test_name, self.win_size, session_name); + new_runner.retries_left = self.retries_left - 1; + new_runner.replace_steps(self.steps.clone()); + drop(std::mem::replace(self, new_runner)); + self.run_all_steps() + } } fn display_informative_error(&mut self) { let test_name = self.test_name; diff --git a/src/tests/e2e/snapshots/zellij__tests__e2e__cases__accepts_basic_layout.snap b/src/tests/e2e/snapshots/zellij__tests__e2e__cases__accepts_basic_layout.snap new file mode 100644 index 00000000..5556153a --- /dev/null +++ b/src/tests/e2e/snapshots/zellij__tests__e2e__cases__accepts_basic_layout.snap @@ -0,0 +1,29 @@ +--- +source: src/tests/e2e/cases.rs +expression: last_snapshot + +--- +$ █ │$ + │ + │ + │ + │ + │ + │ + │ + │ + │ + │ + │ + │ + │ + │ + │ + │ + │ +───────────────────────┴──────────────────────────────────────────────────────────────────────────────────────────────── +$ + + + + diff --git a/src/tests/e2e/snapshots/zellij__tests__e2e__cases__focus_pane_with_mouse.snap b/src/tests/e2e/snapshots/zellij__tests__e2e__cases__focus_pane_with_mouse.snap new file mode 100644 index 00000000..79e84810 --- /dev/null +++ b/src/tests/e2e/snapshots/zellij__tests__e2e__cases__focus_pane_with_mouse.snap @@ -0,0 +1,29 @@ +--- +source: src/tests/e2e/cases.rs +expression: last_snapshot + +--- + Zellij  Tab #1  + +$ █ │$ + │ + │ + │ + │ + │ + │ + │ + │ + │ + │ + │ + │ + │ + │ + │ + │ + │ + │ + + Ctrl + LOCK 

PANE  TAB  RESIZE  SCROLL  SESSION  QUIT  + Tip: Alt + n => open new pane. Alt + [] or hjkl => navigate between panes. diff --git a/src/tests/e2e/snapshots/zellij__tests__e2e__cases__scrolling_inside_a_pane_with_mouse.snap b/src/tests/e2e/snapshots/zellij__tests__e2e__cases__scrolling_inside_a_pane_with_mouse.snap new file mode 100644 index 00000000..bff40376 --- /dev/null +++ b/src/tests/e2e/snapshots/zellij__tests__e2e__cases__scrolling_inside_a_pane_with_mouse.snap @@ -0,0 +1,29 @@ +--- +source: src/tests/e2e/cases.rs +expression: last_snapshot + +--- + Zellij  Tab #1  + +$ │$ line1 000000000000000000000000000000000000000000000000000 + │line2 00000000000000000000000000000000000000000000000000000 + │line3 00000000000000000000000000000000000000000000000000000 + │line4 00000000000000000000000000000000000000000000000000000 + │line5 00000000000000000000000000000000000000000000000000000 + │line6 00000000000000000000000000000000000000000000000000000 + │line7 00000000000000000000000000000000000000000000000000000 + │line8 00000000000000000000000000000000000000000000000000000 + │line9 00000000000000000000000000000000000000000000000000000 + │line10 0000000000000000000000000000000000000000000000000000 + │line11 0000000000000000000000000000000000000000000000000000 + │line12 0000000000000000000000000000000000000000000000000000 + │line13 0000000000000000000000000000000000000000000000000000 + │line14 0000000000000000000000000000000000000000000000000000 + │line15 0000000000000000000000000000000000000000000000000000 + │line16 0000000000000000000000000000000000000000000000000000 + │line17 0000000000000000000000000000000000000000000000000000 + │line18 0000000000000000000000000000000000000000000000000000 + │line19 000000000000000000000000000000000000000000000000000█ + + Ctrl + LOCK 

PANE  TAB  RESIZE  SCROLL  SESSION  QUIT  + Tip: Alt + n => open new pane. Alt + [] or hjkl => navigate between panes. diff --git a/src/tests/fakes.rs b/src/tests/fakes.rs deleted file mode 100644 index 8d11458b..00000000 --- a/src/tests/fakes.rs +++ /dev/null @@ -1,329 +0,0 @@ -use std::collections::{HashMap, VecDeque}; -use std::io::Write; -use std::os::unix::io::RawFd; -use std::path::PathBuf; -use std::sync::{Arc, Condvar, Mutex}; -use std::time::{Duration, Instant}; - -use zellij_utils::{nix, zellij_tile}; - -use crate::tests::possible_tty_inputs::{get_possible_tty_inputs, Bytes}; -use crate::tests::utils::commands::{QUIT, SLEEP}; -use zellij_client::os_input_output::ClientOsApi; -use zellij_server::os_input_output::{async_trait, AsyncReader, Pid, ServerOsApi}; -use zellij_tile::data::Palette; -use zellij_utils::{ - async_std, - channels::{self, ChannelWithContext, SenderWithContext}, - errors::ErrorContext, - interprocess::local_socket::LocalSocketStream, - ipc::{ClientToServerMsg, ServerToClientMsg}, - pane_size::PositionAndSize, - shared::default_palette, -}; - -const MIN_TIME_BETWEEN_SNAPSHOTS: Duration = Duration::from_millis(150); - -#[derive(Clone)] -pub enum IoEvent { - Kill(Pid), - SetTerminalSizeUsingFd(RawFd, u16, u16), - IntoRawMode(RawFd), - UnsetRawMode(RawFd), - TcDrain(RawFd), -} - -#[derive(Clone)] -pub struct FakeStdoutWriter { - output_buffer: Arc>>, - pub output_frames: Arc>>>, - last_snapshot_time: Arc>, -} - -impl FakeStdoutWriter { - pub fn new(last_snapshot_time: Arc>) -> Self { - FakeStdoutWriter { - output_buffer: Arc::new(Mutex::new(Vec::new())), - output_frames: Arc::new(Mutex::new(Vec::new())), - last_snapshot_time, - } - } -} - -impl Write for FakeStdoutWriter { - fn write(&mut self, buf: &[u8]) -> Result { - let mut output_buffer = self.output_buffer.lock().unwrap(); - output_buffer.extend_from_slice(buf); - Ok(buf.len()) - } - fn flush(&mut self) -> Result<(), std::io::Error> { - let mut output_buffer = self.output_buffer.lock().unwrap(); - let mut output_frames = self.output_frames.lock().unwrap(); - let new_frame = output_buffer.drain(..).collect(); - output_frames.push(new_frame); - let mut last_snapshot_time = self.last_snapshot_time.lock().unwrap(); - *last_snapshot_time = Instant::now(); - Ok(()) - } -} - -#[derive(Clone)] -pub struct FakeInputOutput { - read_buffers: Arc>>, - input_to_add: Arc>>>, - stdin_commands: Arc>>>, - stdin_writes: Arc>>>, - pub stdout_writer: FakeStdoutWriter, // stdout_writer.output is already an arc/mutex - io_events: Arc>>, - win_sizes: Arc>>, - possible_tty_inputs: HashMap, - last_snapshot_time: Arc>, - send_instructions_to_client: SenderWithContext, - receive_instructions_from_server: - Arc>>, - send_instructions_to_server: SenderWithContext, - receive_instructions_from_client: - Arc>>, - should_trigger_sigwinch: Arc<(Mutex, Condvar)>, - sigwinch_event: Option, -} - -impl FakeInputOutput { - pub fn new(winsize: PositionAndSize) -> Self { - let mut win_sizes = HashMap::new(); - let last_snapshot_time = Arc::new(Mutex::new(Instant::now())); - let stdout_writer = FakeStdoutWriter::new(last_snapshot_time.clone()); - let (client_sender, client_receiver): ChannelWithContext = - channels::unbounded(); - let send_instructions_to_client = SenderWithContext::new(client_sender); - let (server_sender, server_receiver): ChannelWithContext = - channels::unbounded(); - let send_instructions_to_server = SenderWithContext::new(server_sender); - win_sizes.insert(0, winsize); // 0 is the current terminal - FakeInputOutput { - read_buffers: Arc::new(Mutex::new(HashMap::new())), - stdin_writes: Arc::new(Mutex::new(HashMap::new())), - input_to_add: Arc::new(Mutex::new(None)), - stdin_commands: Arc::new(Mutex::new(VecDeque::new())), - stdout_writer, - last_snapshot_time, - io_events: Arc::new(Mutex::new(vec![])), - win_sizes: Arc::new(Mutex::new(win_sizes)), - possible_tty_inputs: get_possible_tty_inputs(), - receive_instructions_from_client: Arc::new(Mutex::new(server_receiver)), - send_instructions_to_server, - receive_instructions_from_server: Arc::new(Mutex::new(client_receiver)), - send_instructions_to_client, - should_trigger_sigwinch: Arc::new((Mutex::new(false), Condvar::new())), - sigwinch_event: None, - } - } - pub fn with_tty_inputs(mut self, tty_inputs: HashMap) -> Self { - self.possible_tty_inputs = tty_inputs; - self - } - pub fn add_terminal_input(&mut self, input: &[&[u8]]) { - let stdin_commands = input.iter().map(|i| i.to_vec()).collect(); - self.stdin_commands = Arc::new(Mutex::new(stdin_commands)); - } - pub fn add_terminal(&self, fd: RawFd) { - self.stdin_writes.lock().unwrap().insert(fd, vec![]); - } - pub fn add_sigwinch_event(&mut self, new_position_and_size: PositionAndSize) { - self.sigwinch_event = Some(new_position_and_size); - } -} - -impl ClientOsApi for FakeInputOutput { - fn get_terminal_size_using_fd(&self, pid: RawFd) -> PositionAndSize { - if let Some(new_position_and_size) = self.sigwinch_event { - let (lock, _cvar) = &*self.should_trigger_sigwinch; - let should_trigger_sigwinch = lock.lock().unwrap(); - if *should_trigger_sigwinch && pid == 0 { - return new_position_and_size; - } - } - let win_sizes = self.win_sizes.lock().unwrap(); - let winsize = win_sizes.get(&pid).unwrap(); - *winsize - } - fn set_raw_mode(&mut self, pid: RawFd) { - self.io_events - .lock() - .unwrap() - .push(IoEvent::IntoRawMode(pid)); - } - fn unset_raw_mode(&self, pid: RawFd) { - self.io_events - .lock() - .unwrap() - .push(IoEvent::UnsetRawMode(pid)); - } - fn box_clone(&self) -> Box { - Box::new((*self).clone()) - } - fn read_from_stdin(&self) -> Vec { - loop { - let last_snapshot_time = { *self.last_snapshot_time.lock().unwrap() }; - if last_snapshot_time.elapsed() > MIN_TIME_BETWEEN_SNAPSHOTS { - break; - } else { - ::std::thread::sleep(MIN_TIME_BETWEEN_SNAPSHOTS - last_snapshot_time.elapsed()); - } - } - let command = self - .stdin_commands - .lock() - .unwrap() - .pop_front() - .unwrap_or(vec![]); - if command == SLEEP { - std::thread::sleep(std::time::Duration::from_millis(200)); - } else if command == QUIT && self.sigwinch_event.is_some() { - let (lock, cvar) = &*self.should_trigger_sigwinch; - { - let mut should_trigger_sigwinch = lock.lock().unwrap(); - *should_trigger_sigwinch = true; - } - cvar.notify_one(); - ::std::thread::sleep(MIN_TIME_BETWEEN_SNAPSHOTS); // give some time for the app to resize before quitting - } else if command == QUIT { - ::std::thread::sleep(MIN_TIME_BETWEEN_SNAPSHOTS); - } - command - } - fn get_stdout_writer(&self) -> Box { - Box::new(self.stdout_writer.clone()) - } - fn send_to_server(&self, msg: ClientToServerMsg) { - self.send_instructions_to_server.send(msg).unwrap(); - } - fn recv_from_server(&self) -> (ServerToClientMsg, ErrorContext) { - self.receive_instructions_from_server - .lock() - .unwrap() - .recv() - .unwrap() - } - fn handle_signals(&self, sigwinch_cb: Box, _quit_cb: Box) { - if self.sigwinch_event.is_some() { - let (lock, cvar) = &*self.should_trigger_sigwinch; - { - let mut should_trigger_sigwinch = lock.lock().unwrap(); - while !*should_trigger_sigwinch { - should_trigger_sigwinch = cvar.wait(should_trigger_sigwinch).unwrap(); - } - } - sigwinch_cb(); - } - } - fn connect_to_server(&self, _path: &std::path::Path) {} - fn load_palette(&self) -> Palette { - default_palette() - } -} - -struct FakeAsyncReader { - fd: RawFd, - os_api: Box, -} - -#[async_trait] -impl AsyncReader for FakeAsyncReader { - async fn read(&mut self, buf: &mut [u8]) -> Result { - // simulates async semantics: EAGAIN is not propagated to caller - loop { - let res = self.os_api.read_from_tty_stdout(self.fd, buf); - match res { - Err(nix::Error::Sys(nix::errno::Errno::EAGAIN)) => { - async_std::task::sleep(Duration::from_millis(10)).await; - continue; - } - Err(e) => { - break Err(std::io::Error::from_raw_os_error( - e.as_errno().unwrap() as i32 - )) - } - Ok(n_bytes) => break Ok(n_bytes), - } - } - } -} - -impl ServerOsApi for FakeInputOutput { - fn set_terminal_size_using_fd(&self, pid: RawFd, cols: u16, rows: u16) { - let terminal_input = self - .possible_tty_inputs - .get(&cols) - .expect(&format!("could not find input for size {:?}", cols)); - self.read_buffers - .lock() - .unwrap() - .insert(pid, terminal_input.clone()); - self.io_events - .lock() - .unwrap() - .push(IoEvent::SetTerminalSizeUsingFd(pid, cols, rows)); - } - fn spawn_terminal(&self, _file_to_open: Option) -> (RawFd, Pid) { - let next_terminal_id = self.stdin_writes.lock().unwrap().keys().len() as RawFd + 1; - self.add_terminal(next_terminal_id); - ( - next_terminal_id as i32, - Pid::from_raw(next_terminal_id + 1000), - ) // secondary number is arbitrary here - } - fn write_to_tty_stdin(&self, pid: RawFd, buf: &[u8]) -> Result { - let mut stdin_writes = self.stdin_writes.lock().unwrap(); - let write_buffer = stdin_writes.get_mut(&pid).unwrap(); - Ok(write_buffer.write(buf).unwrap()) - } - fn read_from_tty_stdout(&self, pid: RawFd, mut buf: &mut [u8]) -> Result { - let mut read_buffers = self.read_buffers.lock().unwrap(); - match read_buffers.get_mut(&pid) { - Some(bytes) => { - let available_range = bytes.read_position..bytes.content.len(); - let len = buf.write(&bytes.content[available_range]).unwrap(); - if len > bytes.read_position { - bytes.set_read_position(len); - } - return Ok(len); - } - None => Err(nix::Error::Sys(nix::errno::Errno::EAGAIN)), - } - } - fn async_file_reader(&self, fd: RawFd) -> Box { - Box::new(FakeAsyncReader { - fd, - os_api: ServerOsApi::box_clone(self), - }) - } - fn tcdrain(&self, pid: RawFd) -> Result<(), nix::Error> { - self.io_events.lock().unwrap().push(IoEvent::TcDrain(pid)); - Ok(()) - } - fn box_clone(&self) -> Box { - Box::new((*self).clone()) - } - fn kill(&self, pid: Pid) -> Result<(), nix::Error> { - self.io_events.lock().unwrap().push(IoEvent::Kill(pid)); - Ok(()) - } - fn recv_from_client(&self) -> (ClientToServerMsg, ErrorContext) { - self.receive_instructions_from_client - .lock() - .unwrap() - .recv() - .unwrap() - } - fn send_to_client(&self, msg: ServerToClientMsg) { - self.send_instructions_to_client.send(msg).unwrap(); - } - fn add_client_sender(&self) {} - fn remove_client_sender(&self) {} - fn send_to_temp_client(&self, _msg: ServerToClientMsg) {} - fn update_receiver(&mut self, _stream: LocalSocketStream) {} - fn load_palette(&self) -> Palette { - default_palette() - } -} diff --git a/src/tests/fixtures/grid_copy b/src/tests/fixtures/grid_copy new file mode 100755 index 00000000..6d093741 --- /dev/null +++ b/src/tests/fixtures/grid_copy @@ -0,0 +1,59 @@ +⏎(B ⏎ Welcome to fish, the friendly interactive shell +Type `help` for instructions on how to use fish +[?2004h]0;fish /home/thomas/Projects/zellij(B +zellij on  mouse-support [?] is 📦 v0.14.0 via 🦀 v1.53.0-beta.3  +❯  cc(Bat test-input.txt(Bat test-input.txt(Bt test-input.txt(Bcat test-input.txt(B test-input.txt(B test-input.txt(B +(B[?2004l]0;cat test-input.txt /home/thomas/Projects/zellij(B Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. +Velit ut tortor pretium viverra suspendisse potenti nullam ac tortor. Adipiscing elit ut aliquam purus sit amet luctus venenatis. +Duis ut diam quam nulla porttitor massa id neque aliquam. Suspendisse potenti nullam ac tortor vitae purus faucibus ornare suspendisse. +Vitae nunc sed velit dignissim sodales ut eu sem integer. +Tortor id aliquet lectus proin nibh nisl. +Commodo odio aenean sed adipiscing diam donec adipiscing tristique risus. +Velit dignissim sodales ut eu sem. Lacus suspendisse faucibus interdum posuere lorem. Ac placerat vestibulum lectus mauris ultrices eros. Elementum integer enim neque volutpat ac. Augue interdum velit euismod in. + +Egestas sed sed risus pretium quam vulputate dignissim. +Gravida rutrum quisque non tellus orci ac auctor augue. +Risus nec feugiat in fermentum posuere urna nec tincidunt praesent. +Elementum eu facilisis sed odio morbi quis. +Mattis ullamcorper velit sed ullamcorper morbi. +Dui vivamus arcu felis bibendum. Sit amet aliquam id diam. +Suscipit tellus mauris a diam maecenas sed enim. +Odio ut sem nulla pharetra. +Cras ornare arcu dui vivamus arcu felis bibendum. +Egestas fringilla phasellus faucibus scelerisque eleifend. +Purus semper eget duis at tellus at urna condimentum. +Aliquam etiam erat velit scelerisque in dictum non. +Porta non pulvinar neque laoreet suspendisse interdum consectetur. +Tempor nec feugiat nisl pretium. Sit amet consectetur adipiscing elit. +Cras semper auctor neque vitae tempus quam pellentesque. +Laoreet non curabitur gravida arcu ac tortor dignissim. +Sed nisi lacus sed viverra tellus in. +Rutrum tellus pellentesque eu tincidunt tortor aliquam nulla. + +Nascetur ridiculus mus mauris vitae ultricies leo integer malesuada. +Interdum posuere lorem ipsum dolor sit amet consectetur. +Porta non pulvinar neque laoreet suspendisse interdum. +Fames ac turpis egestas integer eget aliquet nibh praesent. +Congue nisi vitae suscipit tellus mauris a diam maecenas sed. +Nec ultrices dui sapien eget mi proin sed libero enim. +Tellus rutrum tellus pellentesque eu tincidunt. +Ultrices eros in cursus turpis massa tincidunt dui ut ornare. +Arcu cursus vitae congue mauris rhoncus aenean vel elit scelerisque. +Viverra mauris in aliquam sem fringilla ut. +Vulputate eu scelerisque felis imperdiet proin fermentum leo. +Cursus risus at ultrices mi tempus. +Laoreet id donec ultrices tincidunt arcu non sodales. +Amet dictum sit amet justo donec enim. +Hac habitasse platea dictumst vestibulum rhoncus est pellentesque. +Facilisi cras fermentum odio eu feugiat. +Elit ut aliquam purus sit amet luctus venenatis lectus. +Dignissim enim sit amet venenatis urna cursus. +Amet consectetur adipiscing elit ut aliquam purus. +Elementum pulvinar etiam non quam lacus suspendisse. + +Quisque id diam vel quam. Id porta nibh venenatis cras sed felis eget velit aliquet. Sagittis aliquam malesuada bibendum arcu. Libero id faucibus nisl tincidunt eget nullam non. Sed elementum tempus egestas sed sed risus pretium quam vulputate. Turpis egestas maecenas pharetra convallis. Arcu cursus vitae congue mauris rhoncus aenean vel. Augue ut lectus arcu bibendum. Scelerisque varius morbi enim nunc faucibus a pellentesque. Mattis pellentesque id nibh tortor id aliquet lectus proin nibh. In aliquam sem fringilla ut. Urna et pharetra pharetra massa massa ultricies mi. Enim nulla aliquet porttitor lacus luctus accumsan tortor posuere. Malesuada fames ac turpis egestas integer. Venenatis tellus in metus vulputate eu scelerisque felis. Suspendisse faucibus interdum posuere lorem ipsum dolor sit amet. + +Quam elementum pulvinar etiam non quam lacus suspendisse faucibus. Egestas sed sed risus pretium quam vulputate dignissim suspendisse. Risus nec feugiat in fermentum posuere urna. Vestibulum lorem sed risus ultricies. Egestas maecenas pharetra convallis posuere morbi. Egestas tellus rutrum tellus pellentesque. Pulvinar etiam non quam lacus suspendisse faucibus. Lectus proin nibh nisl condimentum id venenatis a condimentum. Adipiscing elit pellentesque habitant morbi tristique senectus et netus. Nunc id cursus metus aliquam eleifend. Urna nec tincidunt praesent semper feugiat nibh sed pulvinar. Donec ultrices tincidunt arcu non sodales neque sodales ut etiam. Suspendisse sed nisi lacus sed viverra tellus in hac habitasse. Nunc scelerisque viverra mauris in aliquam sem fringilla. +⏎(B ⏎ [?2004h]0;fish /home/thomas/Projects/zellij(B +zellij on  mouse-support [?] is 📦 v0.14.0 via 🦀 v1.53.0-beta.3  +❯  \ No newline at end of file diff --git a/src/tests/integration/basic.rs b/src/tests/integration/basic.rs deleted file mode 100644 index 98f77988..00000000 --- a/src/tests/integration/basic.rs +++ /dev/null @@ -1,498 +0,0 @@ -use ::insta::assert_snapshot; -use zellij_utils::pane_size::PositionAndSize; - -use crate::tests::fakes::FakeInputOutput; -use crate::tests::start; -use crate::tests::utils::commands::{ - BRACKETED_PASTE_END, BRACKETED_PASTE_START, PANE_MODE, QUIT, SCROLL_DOWN_IN_SCROLL_MODE, - SCROLL_MODE, SCROLL_PAGE_DOWN_IN_SCROLL_MODE, SCROLL_PAGE_UP_IN_SCROLL_MODE, - SCROLL_UP_IN_SCROLL_MODE, SPAWN_TERMINAL_IN_PANE_MODE, SPLIT_DOWN_IN_PANE_MODE, - SPLIT_RIGHT_IN_PANE_MODE, TOGGLE_ACTIVE_TERMINAL_FULLSCREEN_IN_PANE_MODE, -}; -use crate::tests::utils::{get_next_to_last_snapshot, get_output_frame_snapshots}; -use crate::CliArgs; -use zellij_utils::input::config::Config; - -fn get_fake_os_input(fake_win_size: &PositionAndSize) -> FakeInputOutput { - FakeInputOutput::new(fake_win_size.clone()) -} - -#[test] -pub fn starts_with_one_terminal() { - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[&QUIT]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn split_terminals_vertically() { - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[&PANE_MODE, &SPLIT_RIGHT_IN_PANE_MODE, &QUIT]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn split_terminals_horizontally() { - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[&PANE_MODE, &SPLIT_DOWN_IN_PANE_MODE, &QUIT]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn split_largest_terminal() { - // this finds the largest pane and splits along its longest edge (vertically or horizontally) - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPAWN_TERMINAL_IN_PANE_MODE, - &SPAWN_TERMINAL_IN_PANE_MODE, - &SPAWN_TERMINAL_IN_PANE_MODE, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn cannot_split_terminals_vertically_when_active_terminal_is_too_small() { - let fake_win_size = PositionAndSize { - cols: 8, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[&PANE_MODE, &SPLIT_RIGHT_IN_PANE_MODE, &QUIT]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn cannot_split_terminals_horizontally_when_active_terminal_is_too_small() { - let fake_win_size = PositionAndSize { - cols: 121, - rows: 4, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[&PANE_MODE, &SPLIT_DOWN_IN_PANE_MODE, &QUIT]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn cannot_split_largest_terminal_when_there_is_no_room() { - let fake_win_size = PositionAndSize { - cols: 8, - rows: 4, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[&PANE_MODE, &SPAWN_TERMINAL_IN_PANE_MODE, &QUIT]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn scrolling_up_inside_a_pane() { - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SCROLL_MODE, - &SCROLL_UP_IN_SCROLL_MODE, - &SCROLL_UP_IN_SCROLL_MODE, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn scrolling_down_inside_a_pane() { - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SCROLL_MODE, - &SCROLL_UP_IN_SCROLL_MODE, - &SCROLL_UP_IN_SCROLL_MODE, - &SCROLL_DOWN_IN_SCROLL_MODE, - &SCROLL_DOWN_IN_SCROLL_MODE, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn scrolling_page_up_inside_a_pane() { - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SCROLL_MODE, - &SCROLL_PAGE_UP_IN_SCROLL_MODE, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn scrolling_page_down_inside_a_pane() { - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SCROLL_MODE, - &SCROLL_PAGE_UP_IN_SCROLL_MODE, - &SCROLL_PAGE_UP_IN_SCROLL_MODE, - &SCROLL_PAGE_DOWN_IN_SCROLL_MODE, - &SCROLL_PAGE_DOWN_IN_SCROLL_MODE, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[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 = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPAWN_TERMINAL_IN_PANE_MODE, - &SPAWN_TERMINAL_IN_PANE_MODE, - &SPAWN_TERMINAL_IN_PANE_MODE, - &SPAWN_TERMINAL_IN_PANE_MODE, - &QUIT, - ]); - let mut opts = CliArgs::default(); - opts.max_panes = Some(4); - start( - Box::new(fake_input_output.clone()), - opts, - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn toggle_focused_pane_fullscreen() { - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPAWN_TERMINAL_IN_PANE_MODE, - &SPAWN_TERMINAL_IN_PANE_MODE, - &SPAWN_TERMINAL_IN_PANE_MODE, - &TOGGLE_ACTIVE_TERMINAL_FULLSCREEN_IN_PANE_MODE, - &QUIT, - ]); - let mut opts = CliArgs::default(); - opts.max_panes = Some(4); - start( - Box::new(fake_input_output.clone()), - opts, - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn bracketed_paste() { - // bracketed paste (https://xfree86.org/current/ctlseqs.html#Bracketed%20Paste%20Mode) - // makes sure that text the user pastes is not interpreted as commands by the running program - // (zellij in this case) - // this tests makes sure the "SPLIT_RIGHT_IN_PANE_MODE" command is not interpreted as Zellij, - // since it's inside a bracketed paste block, while the "QUIT" command is, since it is already - // past the block - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &BRACKETED_PASTE_START, - &SPLIT_RIGHT_IN_PANE_MODE, - &BRACKETED_PASTE_END, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} diff --git a/src/tests/integration/close_pane.rs b/src/tests/integration/close_pane.rs deleted file mode 100644 index 4618d3e6..00000000 --- a/src/tests/integration/close_pane.rs +++ /dev/null @@ -1,674 +0,0 @@ -use ::insta::assert_snapshot; -use zellij_utils::pane_size::PositionAndSize; - -use crate::tests::fakes::FakeInputOutput; -use crate::tests::start; -use crate::tests::utils::{get_next_to_last_snapshot, get_output_frame_snapshots}; -use crate::CliArgs; - -use crate::tests::utils::commands::{ - CLOSE_PANE_IN_PANE_MODE, ESC, MOVE_FOCUS_IN_PANE_MODE, PANE_MODE, QUIT, - RESIZE_DOWN_IN_RESIZE_MODE, RESIZE_LEFT_IN_RESIZE_MODE, RESIZE_MODE, RESIZE_UP_IN_RESIZE_MODE, - SLEEP, SPLIT_DOWN_IN_PANE_MODE, SPLIT_RIGHT_IN_PANE_MODE, -}; -use zellij_utils::input::config::Config; - -fn get_fake_os_input(fake_win_size: &PositionAndSize) -> FakeInputOutput { - FakeInputOutput::new(fake_win_size.clone()) -} - -#[test] -pub fn close_pane_with_another_pane_above_it() { - // ┌───────────┐ ┌───────────┐ - // │xxxxxxxxxxx│ │xxxxxxxxxxx│ - // │xxxxxxxxxxx│ │xxxxxxxxxxx│ - // ├───────────┤ ==close==> │xxxxxxxxxxx│ - // │███████████│ │xxxxxxxxxxx│ - // │███████████│ │xxxxxxxxxxx│ - // └───────────┘ └───────────┘ - // █ == pane being closed - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &CLOSE_PANE_IN_PANE_MODE, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn close_pane_with_another_pane_below_it() { - // ┌───────────┐ ┌───────────┐ - // │███████████│ │xxxxxxxxxxx│ - // │███████████│ │xxxxxxxxxxx│ - // ├───────────┤ ==close==> │xxxxxxxxxxx│ - // │xxxxxxxxxxx│ │xxxxxxxxxxx│ - // │xxxxxxxxxxx│ │xxxxxxxxxxx│ - // └───────────┘ └───────────┘ - // █ == pane being closed - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &CLOSE_PANE_IN_PANE_MODE, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn close_pane_with_another_pane_to_the_left() { - // ┌─────┬─────┐ ┌──────────┐ - // │xxxxx│█████│ │xxxxxxxxxx│ - // │xxxxx│█████│ ==close==> │xxxxxxxxxx│ - // │xxxxx│█████│ │xxxxxxxxxx│ - // └─────┴─────┘ └──────────┘ - // █ == pane being closed - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &CLOSE_PANE_IN_PANE_MODE, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn close_pane_with_another_pane_to_the_right() { - // ┌─────┬─────┐ ┌──────────┐ - // │█████│xxxxx│ │xxxxxxxxxx│ - // │█████│xxxxx│ ==close==> │xxxxxxxxxx│ - // │█████│xxxxx│ │xxxxxxxxxx│ - // └─────┴─────┘ └──────────┘ - // █ == pane being closed - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &CLOSE_PANE_IN_PANE_MODE, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn close_pane_with_multiple_panes_above_it() { - // ┌─────┬─────┐ ┌─────┬─────┐ - // │xxxxx│xxxxx│ │xxxxx│xxxxx│ - // │xxxxx│xxxxx│ │xxxxx│xxxxx│ - // ├─────┴─────┤ ==close==> │xxxxx│xxxxx│ - // │███████████│ │xxxxx│xxxxx│ - // │███████████│ │xxxxx│xxxxx│ - // └───────────┘ └─────┴─────┘ - // █ == pane being closed - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &CLOSE_PANE_IN_PANE_MODE, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn close_pane_with_multiple_panes_below_it() { - // ┌───────────┐ ┌─────┬─────┐ - // │███████████│ │xxxxx│xxxxx│ - // │███████████│ │xxxxx│xxxxx│ - // ├─────┬─────┤ ==close==> │xxxxx│xxxxx│ - // │xxxxx│xxxxx│ │xxxxx│xxxxx│ - // │xxxxx│xxxxx│ │xxxxx│xxxxx│ - // └─────┴─────┘ └─────┴─────┘ - // █ == pane being closed - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &CLOSE_PANE_IN_PANE_MODE, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn close_pane_with_multiple_panes_to_the_left() { - // ┌─────┬─────┐ ┌──────────┐ - // │xxxxx│█████│ │xxxxxxxxxx│ - // │xxxxx│█████│ │xxxxxxxxxx│ - // ├─────┤█████│ ==close==> ├──────────┤ - // │xxxxx│█████│ │xxxxxxxxxx│ - // │xxxxx│█████│ │xxxxxxxxxx│ - // └─────┴─────┘ └──────────┘ - // █ == pane being closed - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &CLOSE_PANE_IN_PANE_MODE, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn close_pane_with_multiple_panes_to_the_right() { - // ┌─────┬─────┐ ┌──────────┐ - // │█████│xxxxx│ │xxxxxxxxxx│ - // │█████│xxxxx│ │xxxxxxxxxx│ - // │█████├─────┤ ==close==> ├──────────┤ - // │█████│xxxxx│ │xxxxxxxxxx│ - // │█████│xxxxx│ │xxxxxxxxxx│ - // └─────┴─────┘ └──────────┘ - // █ == pane being closed - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &CLOSE_PANE_IN_PANE_MODE, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn close_pane_with_multiple_panes_above_it_away_from_screen_edges() { - // ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ - // │xxx│xxx│xxx│xxx│ │xxx│xxx│xxx│xxx│ - // ├───┤xxx│xxx├───┤ ├───┤xxx│xxx├───┤ - // │xxx├───┴───┤xxx│ ==close==> │xxx│xxx│xxx│xxx│ - // │xxx│███████│xxx│ │xxx│xxx│xxx│xxx│ - // │xxx│███████│xxx│ │xxx│xxx│xxx│xxx│ - // └───┴───────┴───┘ └───┴───┴───┴───┘ - // █ == pane being closed - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &ESC, - &RESIZE_MODE, - &RESIZE_UP_IN_RESIZE_MODE, - &ESC, - &PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &ESC, - &RESIZE_MODE, - &RESIZE_UP_IN_RESIZE_MODE, - &ESC, - &PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SLEEP, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &CLOSE_PANE_IN_PANE_MODE, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn close_pane_with_multiple_panes_below_it_away_from_screen_edges() { - // ┌───┬───────┬───┐ ┌───┬───┬───┬───┐ - // │xxx│███████│xxx│ │xxx│xxx│xxx│xxx│ - // │xxx│███████│xxx│ │xxx│xxx│xxx│xxx│ - // │xxx├───┬───┤xxx│ ==close==> │xxx│xxx│xxx│xxx│ - // ├───┤xxx│xxx├───┤ ├───┤xxx│xxx├───┤ - // │xxx│xxx│xxx│xxx│ │xxx│xxx│xxx│xxx│ - // └───┴───┴───┴───┘ └───┴───┴───┴───┘ - // █ == pane being closed - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_DOWN_IN_RESIZE_MODE, - &PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_DOWN_IN_RESIZE_MODE, - &PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SLEEP, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &CLOSE_PANE_IN_PANE_MODE, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn close_pane_with_multiple_panes_to_the_left_away_from_screen_edges() { - // ┌────┬──────┐ ┌────┬──────┐ - // │xxxx│xxxxxx│ │xxxx│xxxxxx│ - // ├────┴┬─────┤ ├────┴──────┤ - // │xxxxx│█████│ │xxxxxxxxxxx│ - // ├─────┤█████│ ==close==> ├───────────┤ - // │xxxxx│█████│ │xxxxxxxxxxx│ - // ├────┬┴─────┤ ├────┬──────┤ - // │xxxx│xxxxxx│ │xxxx│xxxxxx│ - // └────┴──────┘ └────┴──────┘ - // █ == pane being closed - let fake_win_size = PositionAndSize { - cols: 121, - rows: 30, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_LEFT_IN_RESIZE_MODE, - &PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_LEFT_IN_RESIZE_MODE, - &PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SLEEP, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &CLOSE_PANE_IN_PANE_MODE, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn close_pane_with_multiple_panes_to_the_right_away_from_screen_edges() { - // ┌────┬──────┐ ┌────┬──────┐ - // │xxxx│xxxxxx│ │xxxx│xxxxxx│ - // ├────┴┬─────┤ ├────┴──────┤ - // │█████│xxxxx│ │xxxxxxxxxxx│ - // │█████├─────┤ ==close==> ├───────────┤ - // │█████│xxxxx│ │xxxxxxxxxxx│ - // ├────┬┴─────┤ ├────┬──────┤ - // │xxxx│xxxxxx│ │xxxx│xxxxxx│ - // └────┴──────┘ └────┴──────┘ - // █ == pane being closed - let fake_win_size = PositionAndSize { - cols: 121, - rows: 30, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_LEFT_IN_RESIZE_MODE, - &PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_LEFT_IN_RESIZE_MODE, - &PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SLEEP, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &CLOSE_PANE_IN_PANE_MODE, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn closing_last_pane_exits_app() { - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &CLOSE_PANE_IN_PANE_MODE, - &CLOSE_PANE_IN_PANE_MODE, - &CLOSE_PANE_IN_PANE_MODE, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} diff --git a/src/tests/integration/compatibility.rs b/src/tests/integration/compatibility.rs deleted file mode 100644 index 0930271f..00000000 --- a/src/tests/integration/compatibility.rs +++ /dev/null @@ -1,681 +0,0 @@ -use ::insta::assert_snapshot; -use ::std::collections::HashMap; - -use crate::tests::fakes::FakeInputOutput; -use crate::tests::possible_tty_inputs::Bytes; -use crate::tests::start; -use crate::tests::utils::{get_next_to_last_snapshot, get_output_frame_snapshots}; -use crate::CliArgs; -use zellij_utils::pane_size::PositionAndSize; - -use crate::tests::utils::commands::{QUIT, SLEEP}; -use zellij_utils::input::config::Config; - -/* - * These tests are general compatibility tests for non-trivial scenarios running in the terminal. - * They use fake TTY input replicated from these scenarios (and so don't actually interact with the - * OS). - * - * They work like this: - * - receive fake TTY input containing various VTE instructions. - * - run that output through zellij so it interprets it and creates its state based on it - * - read that state into a Human-readable snapshot and compare it to the expected snapshot for - * this scenario. - * - */ - -fn get_fake_os_input(fake_win_size: &PositionAndSize, fixture_name: &str) -> FakeInputOutput { - let mut tty_inputs = HashMap::new(); - let fixture_bytes = Bytes::from_file_in_fixtures(&fixture_name); - tty_inputs.insert(fake_win_size.cols as u16, fixture_bytes); - FakeInputOutput::new(fake_win_size.clone()).with_tty_inputs(tty_inputs) -} - -#[test] -pub fn run_bandwhich_from_fish_shell() { - let fake_win_size = PositionAndSize { - cols: 116, - rows: 28, - x: 0, - y: 0, - ..Default::default() - }; - 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(&[&QUIT]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn fish_tab_completion_options() { - let fake_win_size = PositionAndSize { - cols: 116, - rows: 28, - x: 0, - y: 0, - ..Default::default() - }; - 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(&[&QUIT]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn fish_select_tab_completion_options() { - // the difference between this and the previous test is that here we press - // twice, meaning the selection moves between the options and the command line - // changes. - // this is not clearly seen in the snapshot because it does not include styles, - // but we can see the command line change and the cursor staying in place - let fake_win_size = PositionAndSize { - cols: 116, - rows: 28, - x: 0, - y: 0, - ..Default::default() - }; - 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(&[&QUIT]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn vim_scroll_region_down() { - // here we test a case where vim defines the scroll region as lesser than the screen row count - // and then scrolls down - // the region is defined here by vim as 1-26 (there are 28 rows) - // then the cursor is moved to line 26 and a new line is added - // what should happen is that the first line in the scroll region (1) is deleted - // and an empty line is inserted in the last scroll region line (26) - // this tests also has other steps afterwards that fills the line with the next line in the - // file - // experience appear to the user - let fake_win_size = PositionAndSize { - cols: 116, - rows: 28, - x: 0, - y: 0, - ..Default::default() - }; - 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(&[&QUIT]); // quit (ctrl-q) - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn vim_ctrl_d() { - // in vim ctrl-d moves down half a page - // in this case, it sends the terminal the csi 'M' directive, which tells it to delete X (13 in - // this case) lines inside the scroll region and push the other lines up - // what happens here is that 13 lines are deleted and instead 13 empty lines are added at the - // end of the scroll region - // vim makes sure to fill these empty lines with the rest of the file - let fake_win_size = PositionAndSize { - cols: 116, - rows: 28, - x: 0, - y: 0, - ..Default::default() - }; - 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(&[&QUIT]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn vim_ctrl_u() { - // in vim ctrl-u moves up half a page - // in this case, it sends the terminal the csi 'L' directive, which tells it to insert X (13 in - // this case) lines at the cursor, pushing away (deleting) the last line in the scroll region - // this causes the effect of scrolling up X lines (vim replaces the lines with the ones in the - // file above the current content) - let fake_win_size = PositionAndSize { - cols: 116, - rows: 28, - x: 0, - y: 0, - ..Default::default() - }; - 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(&[&QUIT]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn htop() { - let fake_win_size = PositionAndSize { - cols: 116, - rows: 28, - x: 0, - y: 0, - ..Default::default() - }; - let fixture_name = "htop"; - let mut fake_input_output = get_fake_os_input(&fake_win_size, fixture_name); - fake_input_output.add_terminal_input(&[&QUIT]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn htop_scrolling() { - let fake_win_size = PositionAndSize { - cols: 116, - rows: 28, - x: 0, - y: 0, - ..Default::default() - }; - let fixture_name = "htop_scrolling"; - let mut fake_input_output = get_fake_os_input(&fake_win_size, fixture_name); - fake_input_output.add_terminal_input(&[&QUIT]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn htop_right_scrolling() { - let fake_win_size = PositionAndSize { - cols: 116, - rows: 28, - x: 0, - y: 0, - ..Default::default() - }; - let fixture_name = "htop_right_scrolling"; - let mut fake_input_output = get_fake_os_input(&fake_win_size, fixture_name); - fake_input_output.add_terminal_input(&[&QUIT]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn vim_overwrite() { - // this tests the vim overwrite message - // to recreate: - // * open a file in vim - // * open the same file in another window - // * change the file in the other window and save - // * change the file in the original vim window and save - // * confirm you would like to change the file by pressing 'y' and then ENTER - // * if everything looks fine, this test passed :) - let fake_win_size = PositionAndSize { - cols: 116, - rows: 28, - x: 0, - y: 0, - ..Default::default() - }; - let fixture_name = "vim_overwrite"; - let mut fake_input_output = get_fake_os_input(&fake_win_size, fixture_name); - fake_input_output.add_terminal_input(&[&QUIT]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn clear_scroll_region() { - // this tests the scroll region used by eg. vim is cleared properly - // this means that when vim exits, we get back the previous scroll - // buffer - let fake_win_size = PositionAndSize { - cols: 116, - rows: 28, - x: 0, - y: 0, - ..Default::default() - }; - let fixture_name = "clear_scroll_region"; - let mut fake_input_output = get_fake_os_input(&fake_win_size, fixture_name); - fake_input_output.add_terminal_input(&[&QUIT]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn display_tab_characters_properly() { - let fake_win_size = PositionAndSize { - cols: 116, - rows: 28, - x: 0, - y: 0, - ..Default::default() - }; - let fixture_name = "tab_characters"; - let mut fake_input_output = get_fake_os_input(&fake_win_size, fixture_name); - fake_input_output.add_terminal_input(&[&QUIT]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn neovim_insert_mode() { - let fake_win_size = PositionAndSize { - cols: 116, - rows: 28, - x: 0, - y: 0, - ..Default::default() - }; - let fixture_name = "nvim_insert"; - let mut fake_input_output = get_fake_os_input(&fake_win_size, fixture_name); - fake_input_output.add_terminal_input(&[&QUIT]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn bash_cursor_linewrap() { - // this test makes sure that when we enter a command that is beyond the screen border, that it - // immediately goes down one line - let fake_win_size = PositionAndSize { - cols: 116, - rows: 28, - x: 0, - y: 0, - ..Default::default() - }; - let fixture_name = "bash_cursor_linewrap"; - let mut fake_input_output = get_fake_os_input(&fake_win_size, fixture_name); - fake_input_output.add_terminal_input(&[&QUIT]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn fish_paste_multiline() { - // here we paste a multiline command in fish shell, making sure we support it - // going up and changing the colors of our line-wrapped pasted text - let fake_win_size = PositionAndSize { - cols: 149, - rows: 28, - x: 0, - y: 0, - ..Default::default() - }; - let fixture_name = "fish_paste_multiline"; - let mut fake_input_output = get_fake_os_input(&fake_win_size, fixture_name); - fake_input_output.add_terminal_input(&[&QUIT]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn git_log() { - let fake_win_size = PositionAndSize { - cols: 149, - rows: 28, - x: 0, - y: 0, - ..Default::default() - }; - let fixture_name = "git_log"; - let mut fake_input_output = get_fake_os_input(&fake_win_size, fixture_name); - fake_input_output.add_terminal_input(&[&QUIT]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn git_diff_scrollup() { - // this tests makes sure that when we have a git diff that exceeds the screen size - // we are able to scroll up - let fake_win_size = PositionAndSize { - cols: 149, - rows: 28, - x: 0, - y: 0, - ..Default::default() - }; - let fixture_name = "git_diff_scrollup"; - let mut fake_input_output = get_fake_os_input(&fake_win_size, fixture_name); - fake_input_output.add_terminal_input(&[&QUIT]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn emacs_longbuf() { - let fake_win_size = PositionAndSize { - cols: 284, - rows: 60, - x: 0, - y: 0, - ..Default::default() - }; - let fixture_name = "emacs_longbuf_tutorial"; - let mut fake_input_output = get_fake_os_input(&fake_win_size, fixture_name); - fake_input_output.add_terminal_input(&[&QUIT]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn top_and_quit() { - let fake_win_size = PositionAndSize { - cols: 235, - rows: 56, - x: 0, - y: 0, - ..Default::default() - }; - let fixture_name = "top_and_quit"; - let mut fake_input_output = get_fake_os_input(&fake_win_size, fixture_name); - fake_input_output.add_terminal_input(&[&SLEEP, &QUIT]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn exa_plus_omf_theme() { - // this tests that we handle a tab delimited table properly - // without overriding the previous content - // this is a potential bug because the \t character is a goto - // if we forwarded it as is to the terminal, we would be skipping - // over existing on-screen content without deleting it, so we must - // convert it to spaces - let fake_win_size = PositionAndSize { - cols: 235, - rows: 56, - x: 0, - y: 0, - ..Default::default() - }; - let fixture_name = "exa_plus_omf_theme"; - let mut fake_input_output = get_fake_os_input(&fake_win_size, fixture_name); - fake_input_output.add_terminal_input(&[&QUIT]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} diff --git a/src/tests/integration/layouts.rs b/src/tests/integration/layouts.rs deleted file mode 100644 index 6b91ba04..00000000 --- a/src/tests/integration/layouts.rs +++ /dev/null @@ -1,67 +0,0 @@ -use insta::assert_snapshot; -use std::path::PathBuf; - -use crate::tests::fakes::FakeInputOutput; -use crate::tests::start; -use crate::tests::utils::commands::QUIT; -use crate::tests::utils::get_output_frame_snapshots; -use crate::CliArgs; -use zellij_utils::input::config::Config; -use zellij_utils::pane_size::PositionAndSize; - -fn get_fake_os_input(fake_win_size: &PositionAndSize) -> FakeInputOutput { - FakeInputOutput::new(fake_win_size.clone()) -} - -#[test] -pub fn accepts_basic_layout() { - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[&QUIT]); - let mut opts = CliArgs::default(); - opts.layout_path = Some(PathBuf::from( - "src/tests/fixtures/layouts/three-panes-with-nesting.yaml", - )); - - let layout = zellij_utils::input::layout::Layout::from_path_or_default( - None, - opts.layout_path.as_ref(), - Some(std::path::Path::new("unused").into()), - ); - - start( - Box::new(fake_input_output.clone()), - opts, - Box::new(fake_input_output.clone()), - Config::default(), - layout, - ); - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - - let snapshot_count = snapshots.len(); - let first_snapshot = snapshots.get(0).unwrap(); - let next_to_last_snapshot = snapshots.get(snapshot_count - 2).unwrap(); - let last_snapshot = snapshots.last().unwrap(); - // here we only test the first, next to last and last snapshot because there's a race condition - // with the other snapshots. Namely all the terminals are created asynchronously and read in an - // async task, so we have no way to guarantee the order in which their bytes will be read, and - // it doesn't really matter in this context. We just want to see that the layout is initially - // created properly and that in the end it's populated properly with its content - // - // we read the next to last as well as the last, because the last includes the "Bye from - // Zellij" message, and we also want to make sure things are fine before that - assert_snapshot!(first_snapshot); - assert_snapshot!(next_to_last_snapshot); - assert_snapshot!(last_snapshot); -} diff --git a/src/tests/integration/mod.rs b/src/tests/integration/mod.rs deleted file mode 100644 index 0511fc9c..00000000 --- a/src/tests/integration/mod.rs +++ /dev/null @@ -1,15 +0,0 @@ -pub mod basic; -pub mod close_pane; -pub mod compatibility; -pub mod layouts; -pub mod move_focus_down; -pub mod move_focus_left; -pub mod move_focus_right; -pub mod move_focus_up; -pub mod resize_down; -pub mod resize_left; -pub mod resize_right; -pub mod resize_up; -pub mod tabs; -pub mod terminal_window_resize; -pub mod toggle_fullscreen; diff --git a/src/tests/integration/move_focus_down.rs b/src/tests/integration/move_focus_down.rs deleted file mode 100644 index 4b8410f8..00000000 --- a/src/tests/integration/move_focus_down.rs +++ /dev/null @@ -1,91 +0,0 @@ -use ::insta::assert_snapshot; - -use crate::tests::fakes::FakeInputOutput; -use crate::tests::start; -use crate::tests::utils::{get_next_to_last_snapshot, get_output_frame_snapshots}; -use crate::CliArgs; -use zellij_utils::pane_size::PositionAndSize; - -use crate::tests::utils::commands::{ - MOVE_FOCUS_DOWN_IN_PANE_MODE, MOVE_FOCUS_UP_IN_PANE_MODE, PANE_MODE, QUIT, - SPLIT_DOWN_IN_PANE_MODE, SPLIT_RIGHT_IN_PANE_MODE, -}; -use zellij_utils::input::config::Config; - -fn get_fake_os_input(fake_win_size: &PositionAndSize) -> FakeInputOutput { - FakeInputOutput::new(*fake_win_size) -} - -#[test] -pub fn move_focus_down() { - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_UP_IN_PANE_MODE, - &MOVE_FOCUS_DOWN_IN_PANE_MODE, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn move_focus_down_to_the_most_recently_used_pane() { - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_UP_IN_PANE_MODE, - &MOVE_FOCUS_DOWN_IN_PANE_MODE, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} diff --git a/src/tests/integration/move_focus_left.rs b/src/tests/integration/move_focus_left.rs deleted file mode 100644 index aac3ea07..00000000 --- a/src/tests/integration/move_focus_left.rs +++ /dev/null @@ -1,131 +0,0 @@ -use ::insta::assert_snapshot; - -use crate::tests::fakes::FakeInputOutput; -use crate::tests::start; -use crate::tests::utils::{get_next_to_last_snapshot, get_output_frame_snapshots}; -use crate::CliArgs; -use zellij_utils::pane_size::PositionAndSize; - -use crate::tests::utils::commands::{ - ENTER, MOVE_FOCUS_LEFT_IN_NORMAL_MODE, MOVE_FOCUS_LEFT_IN_PANE_MODE, - MOVE_FOCUS_RIGHT_IN_PANE_MODE, NEW_TAB_IN_TAB_MODE, PANE_MODE, QUIT, SPLIT_DOWN_IN_PANE_MODE, - SPLIT_RIGHT_IN_PANE_MODE, TAB_MODE, -}; -use zellij_utils::input::config::Config; - -fn get_fake_os_input(fake_win_size: &PositionAndSize) -> FakeInputOutput { - FakeInputOutput::new(*fake_win_size) -} - -#[test] -pub fn move_focus_left() { - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_LEFT_IN_PANE_MODE, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn move_focus_left_to_the_most_recently_used_pane() { - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_LEFT_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_LEFT_IN_PANE_MODE, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn move_focus_left_changes_tab() { - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &ENTER, - &TAB_MODE, - &NEW_TAB_IN_TAB_MODE, - &ENTER, - &MOVE_FOCUS_LEFT_IN_NORMAL_MODE, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} diff --git a/src/tests/integration/move_focus_right.rs b/src/tests/integration/move_focus_right.rs deleted file mode 100644 index 05421998..00000000 --- a/src/tests/integration/move_focus_right.rs +++ /dev/null @@ -1,131 +0,0 @@ -use ::insta::assert_snapshot; - -use crate::tests::fakes::FakeInputOutput; -use crate::tests::start; -use crate::tests::utils::{get_next_to_last_snapshot, get_output_frame_snapshots}; -use crate::CliArgs; -use zellij_utils::pane_size::PositionAndSize; - -use crate::tests::utils::commands::{ - ENTER, MOVE_FOCUS_LEFT_IN_PANE_MODE, MOVE_FOCUS_RIGHT_IN_NORMAL_MODE, - MOVE_FOCUS_RIGHT_IN_PANE_MODE, NEW_TAB_IN_TAB_MODE, PANE_MODE, QUIT, SPLIT_DOWN_IN_PANE_MODE, - SPLIT_RIGHT_IN_PANE_MODE, TAB_MODE, -}; -use zellij_utils::input::config::Config; - -fn get_fake_os_input(fake_win_size: &PositionAndSize) -> FakeInputOutput { - FakeInputOutput::new(*fake_win_size) -} - -#[test] -pub fn move_focus_right() { - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_LEFT_IN_PANE_MODE, - &MOVE_FOCUS_RIGHT_IN_PANE_MODE, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn move_focus_right_to_the_most_recently_used_pane() { - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_LEFT_IN_PANE_MODE, - &MOVE_FOCUS_RIGHT_IN_PANE_MODE, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn move_focus_right_changes_tab() { - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &ENTER, - &TAB_MODE, - &NEW_TAB_IN_TAB_MODE, - &ENTER, - &MOVE_FOCUS_RIGHT_IN_NORMAL_MODE, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} diff --git a/src/tests/integration/move_focus_up.rs b/src/tests/integration/move_focus_up.rs deleted file mode 100644 index cd9bd48c..00000000 --- a/src/tests/integration/move_focus_up.rs +++ /dev/null @@ -1,91 +0,0 @@ -use ::insta::assert_snapshot; - -use crate::tests::fakes::FakeInputOutput; -use crate::tests::start; -use crate::tests::utils::{get_next_to_last_snapshot, get_output_frame_snapshots}; -use crate::CliArgs; -use zellij_utils::pane_size::PositionAndSize; - -use crate::tests::utils::commands::{ - MOVE_FOCUS_DOWN_IN_PANE_MODE, MOVE_FOCUS_UP_IN_PANE_MODE, PANE_MODE, QUIT, - SPLIT_DOWN_IN_PANE_MODE, SPLIT_RIGHT_IN_PANE_MODE, -}; -use zellij_utils::input::config::Config; - -fn get_fake_os_input(fake_win_size: &PositionAndSize) -> FakeInputOutput { - FakeInputOutput::new(*fake_win_size) -} - -#[test] -pub fn move_focus_up() { - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_UP_IN_PANE_MODE, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn move_focus_up_to_the_most_recently_used_pane() { - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_UP_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_UP_IN_PANE_MODE, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} diff --git a/src/tests/integration/resize_down.rs b/src/tests/integration/resize_down.rs deleted file mode 100644 index 110f0e49..00000000 --- a/src/tests/integration/resize_down.rs +++ /dev/null @@ -1,725 +0,0 @@ -use insta::assert_snapshot; - -use crate::tests::fakes::FakeInputOutput; -use crate::tests::start; -use crate::tests::utils::{get_next_to_last_snapshot, get_output_frame_snapshots}; -use crate::CliArgs; -use zellij_utils::pane_size::PositionAndSize; - -use crate::tests::utils::commands::{ - MOVE_FOCUS_IN_PANE_MODE, PANE_MODE, QUIT, RESIZE_DOWN_IN_RESIZE_MODE, - RESIZE_LEFT_IN_RESIZE_MODE, RESIZE_MODE, SLEEP, SPLIT_DOWN_IN_PANE_MODE, - SPLIT_RIGHT_IN_PANE_MODE, -}; -use zellij_utils::input::config::Config; - -fn get_fake_os_input(fake_win_size: &PositionAndSize) -> FakeInputOutput { - FakeInputOutput::new(*fake_win_size) -} - -#[test] -pub fn resize_down_with_pane_above() { - // ┌───────────┐ ┌───────────┐ - // │ │ │ │ - // │ │ │ │ - // ├───────────┤ ==resize=down==> │ │ - // │███████████│ ├───────────┤ - // │███████████│ │███████████│ - // │███████████│ │███████████│ - // └───────────┘ └───────────┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_DOWN_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn resize_down_with_pane_below() { - // ┌───────────┐ ┌───────────┐ - // │███████████│ │███████████│ - // │███████████│ │███████████│ - // ├───────────┤ ==resize=down==> │███████████│ - // │ │ ├───────────┤ - // │ │ │ │ - // └───────────┘ └───────────┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_DOWN_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn resize_down_with_panes_above_and_below() { - // ┌───────────┐ ┌───────────┐ - // │ │ │ │ - // │ │ │ │ - // ├───────────┤ ├───────────┤ - // │███████████│ ==resize=down==> │███████████│ - // │███████████│ │███████████│ - // │███████████│ │███████████│ - // ├───────────┤ │███████████│ - // │ │ ├───────────┤ - // │ │ │ │ - // └───────────┘ └───────────┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 25, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_DOWN_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn resize_down_with_multiple_panes_above() { - // - // ┌─────┬─────┐ ┌─────┬─────┐ - // │ │ │ │ │ │ - // ├─────┴─────┤ ==resize=down==> │ │ │ - // │███████████│ ├─────┴─────┤ - // │███████████│ │███████████│ - // └───────────┘ └───────────┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_DOWN_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn resize_down_with_panes_above_aligned_left_with_current_pane() { - // ┌─────┬─────┐ ┌─────┬─────┐ - // │ │ │ │ │ │ - // │ │ │ │ │ │ - // ├─────┼─────┤ ==resize=down==> ├─────┤ │ - // │ │█████│ │ ├─────┤ - // │ │█████│ │ │█████│ - // └─────┴─────┘ └─────┴─────┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_DOWN_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn resize_down_with_panes_below_aligned_left_with_current_pane() { - // ┌─────┬─────┐ ┌─────┬─────┐ - // │ │█████│ │ │█████│ - // │ │█████│ │ │█████│ - // ├─────┼─────┤ ==resize=down==> ├─────┤█████│ - // │ │ │ │ ├─────┤ - // │ │ │ │ │ │ - // └─────┴─────┘ └─────┴─────┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_DOWN_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn resize_down_with_panes_above_aligned_right_with_current_pane() { - // ┌─────┬─────┐ ┌─────┬─────┐ - // │ │ │ │ │ │ - // │ │ │ │ │ │ - // ├─────┼─────┤ ==resize=down==> │ ├─────┤ - // │█████│ │ ├─────┤ │ - // │█████│ │ │█████│ │ - // └─────┴─────┘ └─────┴─────┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_DOWN_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn resize_down_with_panes_below_aligned_right_with_current_pane() { - // ┌─────┬─────┐ ┌─────┬─────┐ - // │█████│ │ │█████│ │ - // │█████│ │ │█████│ │ - // ├─────┼─────┤ ==resize=down==> │█████├─────┤ - // │ │ │ ├─────┤ │ - // │ │ │ │ │ │ - // └─────┴─────┘ └─────┴─────┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_DOWN_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn resize_down_with_panes_above_aligned_left_and_right_with_current_pane() { - // ┌───┬───┬───┐ ┌───┬───┬───┐ - // │ │ │ │ │ │ │ │ - // │ │ │ │ │ │ │ │ - // ├───┼───┼───┤ ==resize=down==> ├───┤ ├───┤ - // │ │███│ │ │ ├───┤ │ - // │ │███│ │ │ │███│ │ - // └───┴───┴───┘ └───┴───┴───┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SLEEP, - &SPLIT_DOWN_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_DOWN_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn resize_down_with_panes_below_aligned_left_and_right_with_current_pane() { - // ┌───┬───┬───┐ ┌───┬───┬───┐ - // │ │███│ │ │ │███│ │ - // │ │███│ │ │ │███│ │ - // ├───┼───┼───┤ ==resize=down==> ├───┤███├───┤ - // │ │ │ │ │ ├───┤ │ - // │ │ │ │ │ │ │ │ - // └───┴───┴───┘ └───┴───┴───┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SLEEP, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_DOWN_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn resize_down_with_panes_above_aligned_left_and_right_with_panes_to_the_left_and_right() { - // ┌─┬───────┬─┐ ┌─┬───────┬─┐ - // │ │ │ │ │ │ │ │ - // │ │ │ │ │ │ │ │ - // ├─┼─┬───┬─┼─┤ ==resize=down==> ├─┤ ├─┤ - // │ │ │███│ │ │ │ ├─┬───┬─┤ │ - // │ │ │███│ │ │ │ │ │███│ │ │ - // └─┴─┴───┴─┴─┘ └─┴─┴───┴─┴─┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 40, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_LEFT_IN_RESIZE_MODE, - &RESIZE_LEFT_IN_RESIZE_MODE, - &RESIZE_LEFT_IN_RESIZE_MODE, - &PANE_MODE, - &SLEEP, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SLEEP, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_LEFT_IN_RESIZE_MODE, - &RESIZE_LEFT_IN_RESIZE_MODE, - &RESIZE_DOWN_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn resize_down_with_panes_below_aligned_left_and_right_with_to_the_left_and_right() { - // ┌─┬─┬───┬─┬─┐ ┌─┬─┬───┬─┬─┐ - // │ │ │███│ │ │ │ │ │███│ │ │ - // │ │ │███│ │ │ │ │ │███│ │ │ - // ├─┼─┴───┴─┼─┤ ==resize=down==> ├─┤ │███│ ├─┤ - // │ │ │ │ │ ├─┴───┴─┤ │ - // │ │ │ │ │ │ │ │ - // └─┴───────┴─┘ └─┴───────┴─┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 40, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_LEFT_IN_RESIZE_MODE, - &RESIZE_LEFT_IN_RESIZE_MODE, - &RESIZE_LEFT_IN_RESIZE_MODE, - &PANE_MODE, - &SLEEP, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_LEFT_IN_RESIZE_MODE, - &RESIZE_LEFT_IN_RESIZE_MODE, - &RESIZE_DOWN_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn cannot_resize_down_when_pane_below_is_at_minimum_height() { - // ┌───────────┐ ┌───────────┐ - // │███████████│ │███████████│ - // ├───────────┤ ==resize=down==> ├───────────┤ - // │ │ │ │ - // └───────────┘ └───────────┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 7, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_DOWN_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} diff --git a/src/tests/integration/resize_left.rs b/src/tests/integration/resize_left.rs deleted file mode 100644 index 9b378e81..00000000 --- a/src/tests/integration/resize_left.rs +++ /dev/null @@ -1,702 +0,0 @@ -use ::insta::assert_snapshot; - -use crate::tests::fakes::FakeInputOutput; -use crate::tests::start; -use crate::tests::utils::{get_next_to_last_snapshot, get_output_frame_snapshots}; -use crate::CliArgs; -use zellij_utils::pane_size::PositionAndSize; - -use crate::tests::utils::commands::{ - MOVE_FOCUS_IN_PANE_MODE, PANE_MODE, QUIT, RESIZE_LEFT_IN_RESIZE_MODE, RESIZE_MODE, - RESIZE_UP_IN_RESIZE_MODE, SLEEP, SPLIT_DOWN_IN_PANE_MODE, SPLIT_RIGHT_IN_PANE_MODE, -}; -use zellij_utils::input::config::Config; - -fn get_fake_os_input(fake_win_size: &PositionAndSize) -> FakeInputOutput { - FakeInputOutput::new(*fake_win_size) -} - -#[test] -pub fn resize_left_with_pane_to_the_left() { - // ┌─────┬─────┐ ┌───┬───────┐ - // │ │█████│ │ │███████│ - // │ │█████│ ==resize=left==> │ │███████│ - // │ │█████│ │ │███████│ - // └─────┴─────┘ └───┴───────┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_LEFT_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn resize_left_with_pane_to_the_right() { - // ┌─────┬─────┐ ┌───┬───────┐ - // │█████│ │ │███│ │ - // │█████│ │ ==resize=left==> │███│ │ - // │█████│ │ │███│ │ - // └─────┴─────┘ └───┴───────┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_LEFT_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn resize_left_with_panes_to_the_left_and_right() { - // ┌─────┬─────┬─────┐ ┌─────┬───┬───────┐ - // │ │█████│ │ │ │███│ │ - // │ │█████│ │ ==resize=left==> │ │███│ │ - // │ │█████│ │ │ │███│ │ - // └─────┴─────┴─────┘ └─────┴───┴───────┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_LEFT_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn resize_left_with_multiple_panes_to_the_left() { - // ┌─────┬─────┐ ┌───┬───────┐ - // │ │█████│ │ │███████│ - // ├─────┤█████│ ==resize=left==> ├───┤███████│ - // │ │█████│ │ │███████│ - // └─────┴─────┘ └───┴───────┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_LEFT_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn resize_left_with_panes_to_the_left_aligned_top_with_current_pane() { - // ┌─────┬─────┐ ┌─────┬─────┐ - // │ │ │ │ │ │ - // ├─────┼─────┤ ==resize=left==> ├───┬─┴─────┤ - // │ │█████│ │ │███████│ - // └─────┴─────┘ └───┴───────┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_LEFT_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn resize_left_with_panes_to_the_right_aligned_top_with_current_pane() { - // ┌─────┬─────┐ ┌─────┬─────┐ - // │ │ │ │ │ │ - // ├─────┼─────┤ ==resize=left==> ├───┬─┴─────┤ - // │█████│ │ │███│ │ - // └─────┴─────┘ └───┴───────┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_LEFT_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn resize_left_with_panes_to_the_left_aligned_bottom_with_current_pane() { - // ┌─────┬─────┐ ┌───┬───────┐ - // │ │█████│ │ │███████│ - // ├─────┼─────┤ ==resize=left==> ├───┴─┬─────┤ - // │ │ │ │ │ │ - // └─────┴─────┘ └─────┴─────┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_LEFT_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn resize_left_with_panes_to_the_right_aligned_bottom_with_current_pane() { - // ┌─────┬─────┐ ┌───┬───────┐ - // │█████│ │ │███│ │ - // ├─────┼─────┤ ==resize=left==> ├───┴─┬─────┤ - // │ │ │ │ │ │ - // └─────┴─────┘ └─────┴─────┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_LEFT_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn resize_left_with_panes_to_the_left_aligned_top_and_bottom_with_current_pane() { - // ┌─────┬─────┐ ┌─────┬─────┐ - // │ │ │ │ │ │ - // ├─────┼─────┤ ├───┬─┴─────┤ - // │ │█████│ ==resize=left==> │ │███████│ - // ├─────┼─────┤ ├───┴─┬─────┤ - // │ │ │ │ │ │ - // └─────┴─────┘ └─────┴─────┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SLEEP, - &SPLIT_RIGHT_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_LEFT_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn resize_left_with_panes_to_the_right_aligned_top_and_bottom_with_current_pane() { - // ┌─────┬─────┐ ┌─────┬─────┐ - // │ │ │ │ │ │ - // ├─────┼─────┤ ├───┬─┴─────┤ - // │█████│ │ ==resize=left==> │███│ │ - // ├─────┼─────┤ ├───┴─┬─────┤ - // │ │ │ │ │ │ - // └─────┴─────┘ └─────┴─────┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SLEEP, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_LEFT_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn resize_left_with_panes_to_the_left_aligned_top_and_bottom_with_panes_above_and_below() { - // ┌─────┬─────┐ ┌─────┬─────┐ - // ├─────┼─────┤ ├───┬─┴─────┤ - // │ ├─────┤ │ ├───────┤ - // │ │█████│ ==resize=left==> │ │███████│ - // │ ├─────┤ │ ├───────┤ - // ├─────┼─────┤ ├───┴─┬─────┤ - // └─────┴─────┘ └─────┴─────┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 40, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_UP_IN_RESIZE_MODE, - &RESIZE_UP_IN_RESIZE_MODE, - &RESIZE_UP_IN_RESIZE_MODE, - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SLEEP, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_UP_IN_RESIZE_MODE, - &RESIZE_UP_IN_RESIZE_MODE, - &RESIZE_LEFT_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn resize_left_with_panes_to_the_right_aligned_top_and_bottom_with_panes_above_and_below() { - // ┌─────┬─────┐ ┌─────┬─────┐ - // ├─────┼─────┤ ├───┬─┴─────┤ - // ├─────┤ │ ├───┤ │ - // │█████│ │ ==resize=left==> │███│ │ - // ├─────┤ │ ├───┤ │ - // ├─────┼─────┤ ├───┴─┬─────┤ - // └─────┴─────┘ └─────┴─────┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - // TODO: combine with above - cols: 121, - rows: 40, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_UP_IN_RESIZE_MODE, - &RESIZE_UP_IN_RESIZE_MODE, - &RESIZE_UP_IN_RESIZE_MODE, - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_UP_IN_RESIZE_MODE, - &RESIZE_UP_IN_RESIZE_MODE, - &RESIZE_LEFT_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn cannot_resize_left_when_pane_to_the_left_is_at_minimum_width() { - // ┌─┬─┐ ┌─┬─┐ - // │ │█│ │ │█│ - // │ │█│ ==resize=left==> │ │█│ - // │ │█│ │ │█│ - // └─┴─┘ └─┴─┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 9, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_LEFT_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} diff --git a/src/tests/integration/resize_right.rs b/src/tests/integration/resize_right.rs deleted file mode 100644 index 48689470..00000000 --- a/src/tests/integration/resize_right.rs +++ /dev/null @@ -1,701 +0,0 @@ -use ::insta::assert_snapshot; - -use crate::tests::fakes::FakeInputOutput; -use crate::tests::start; -use crate::tests::utils::{get_next_to_last_snapshot, get_output_frame_snapshots}; -use crate::CliArgs; -use zellij_utils::pane_size::PositionAndSize; - -use crate::tests::utils::commands::{ - MOVE_FOCUS_IN_PANE_MODE, PANE_MODE, QUIT, RESIZE_MODE, RESIZE_RIGHT_IN_RESIZE_MODE, - RESIZE_UP_IN_RESIZE_MODE, SLEEP, SPLIT_DOWN_IN_PANE_MODE, SPLIT_RIGHT_IN_PANE_MODE, -}; -use zellij_utils::input::config::Config; - -fn get_fake_os_input(fake_win_size: &PositionAndSize) -> FakeInputOutput { - FakeInputOutput::new(*fake_win_size) -} - -#[test] -pub fn resize_right_with_pane_to_the_left() { - // ┌─────┬─────┐ ┌───────┬───┐ - // │ │█████│ │ │███│ - // │ │█████│ ==resize=right==> │ │███│ - // │ │█████│ │ │███│ - // └─────┴─────┘ └───────┴───┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_RIGHT_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn resize_right_with_pane_to_the_right() { - // ┌─────┬─────┐ ┌───────┬───┐ - // │█████│ │ │███████│ │ - // │█████│ │ ==resize=right==> │███████│ │ - // │█████│ │ │███████│ │ - // └─────┴─────┘ └───────┴───┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_RIGHT_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn resize_right_with_panes_to_the_left_and_right() { - // ┌─────┬─────┬─────┐ ┌─────┬───────┬───┐ - // │ │█████│ │ │ │███████│ │ - // │ │█████│ │ ==resize=right==> │ │███████│ │ - // │ │█████│ │ │ │███████│ │ - // └─────┴─────┴─────┘ └─────┴───────┴───┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_RIGHT_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn resize_right_with_multiple_panes_to_the_left() { - // ┌─────┬─────┐ ┌───────┬───┐ - // │ │█████│ │ │███│ - // ├─────┤█████│ ==resize=right==> ├───────┤███│ - // │ │█████│ │ │███│ - // └─────┴─────┘ └───────┴───┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_RIGHT_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn resize_right_with_panes_to_the_left_aligned_top_with_current_pane() { - // ┌─────┬─────┐ ┌─────┬─────┐ - // │ │ │ │ │ │ - // ├─────┼─────┤ ==resize=right==> ├─────┴─┬───┤ - // │ │█████│ │ │███│ - // └─────┴─────┘ └───────┴───┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_RIGHT_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn resize_right_with_panes_to_the_right_aligned_top_with_current_pane() { - // ┌─────┬─────┐ ┌─────┬─────┐ - // │ │ │ │ │ │ - // ├─────┼─────┤ ==resize=right==> ├─────┴─┬───┤ - // │█████│ │ │███████│ │ - // └─────┴─────┘ └───────┴───┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_RIGHT_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn resize_right_with_panes_to_the_left_aligned_bottom_with_current_pane() { - // ┌─────┬─────┐ ┌───────┬───┐ - // │ │█████│ │ │███│ - // ├─────┼─────┤ ==resize=right==> ├─────┬─┴───┤ - // │ │ │ │ │ │ - // └─────┴─────┘ └─────┴─────┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_RIGHT_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn resize_right_with_panes_to_the_right_aligned_bottom_with_current_pane() { - // ┌─────┬─────┐ ┌───────┬───┐ - // │█████│ │ │███████│ │ - // ├─────┼─────┤ ==resize=right==> ├─────┬─┴───┤ - // │ │ │ │ │ │ - // └─────┴─────┘ └─────┴─────┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_RIGHT_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn resize_right_with_panes_to_the_left_aligned_top_and_bottom_with_current_pane() { - // ┌─────┬─────┐ ┌─────┬─────┐ - // │ │ │ │ │ │ - // ├─────┼─────┤ ├─────┴─┬───┤ - // │ │█████│ ==resize=right==> │ │███│ - // ├─────┼─────┤ ├─────┬─┴───┤ - // │ │ │ │ │ │ - // └─────┴─────┘ └─────┴─────┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SLEEP, - &SPLIT_RIGHT_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_RIGHT_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn resize_right_with_panes_to_the_right_aligned_top_and_bottom_with_current_pane() { - // ┌─────┬─────┐ ┌─────┬─────┐ - // │ │ │ │ │ │ - // ├─────┼─────┤ ├─────┴─┬───┤ - // │█████│ │ ==resize=right==> │███████│ │ - // ├─────┼─────┤ ├─────┬─┴───┤ - // │ │ │ │ │ │ - // └─────┴─────┘ └─────┴─────┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SLEEP, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_RIGHT_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn resize_right_with_panes_to_the_left_aligned_top_and_bottom_with_panes_above_and_below() { - // ┌─────┬─────┐ ┌─────┬─────┐ - // ├─────┼─────┤ ├─────┴─┬───┤ - // │ ├─────┤ │ ├───┤ - // │ │█████│ ==resize=right==> │ │███│ - // │ ├─────┤ │ ├───┤ - // ├─────┼─────┤ ├─────┬─┴───┤ - // └─────┴─────┘ └─────┴─────┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 40, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_UP_IN_RESIZE_MODE, - &RESIZE_UP_IN_RESIZE_MODE, - &RESIZE_UP_IN_RESIZE_MODE, - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SLEEP, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_UP_IN_RESIZE_MODE, - &RESIZE_UP_IN_RESIZE_MODE, - &RESIZE_RIGHT_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn resize_right_with_panes_to_the_right_aligned_top_and_bottom_with_panes_above_and_below() { - // ┌─────┬─────┐ ┌─────┬─────┐ - // ├─────┼─────┤ ├─────┴─┬───┤ - // ├─────┤ │ ├───────┤ │ - // │█████│ │ ==resize=right==> │███████│ │ - // ├─────┤ │ ├───────┤ │ - // ├─────┼─────┤ ├─────┬─┴───┤ - // └─────┴─────┘ └─────┴─────┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 40, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_UP_IN_RESIZE_MODE, - &RESIZE_UP_IN_RESIZE_MODE, - &RESIZE_UP_IN_RESIZE_MODE, - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_UP_IN_RESIZE_MODE, - &RESIZE_UP_IN_RESIZE_MODE, - &RESIZE_RIGHT_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn cannot_resize_right_when_pane_to_the_left_is_at_minimum_width() { - // ┌─┬─┐ ┌─┬─┐ - // │ │█│ │ │█│ - // │ │█│ ==resize=right==> │ │█│ - // │ │█│ │ │█│ - // └─┴─┘ └─┴─┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 9, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_RIGHT_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} diff --git a/src/tests/integration/resize_up.rs b/src/tests/integration/resize_up.rs deleted file mode 100644 index 650dca6c..00000000 --- a/src/tests/integration/resize_up.rs +++ /dev/null @@ -1,719 +0,0 @@ -use ::insta::assert_snapshot; - -use crate::tests::fakes::FakeInputOutput; -use crate::tests::start; -use crate::tests::utils::{get_next_to_last_snapshot, get_output_frame_snapshots}; -use crate::CliArgs; -use zellij_utils::pane_size::PositionAndSize; - -use crate::tests::utils::commands::{ - MOVE_FOCUS_IN_PANE_MODE, PANE_MODE, QUIT, RESIZE_LEFT_IN_RESIZE_MODE, RESIZE_MODE, - RESIZE_UP_IN_RESIZE_MODE, SLEEP, SPLIT_DOWN_IN_PANE_MODE, SPLIT_RIGHT_IN_PANE_MODE, -}; -use zellij_utils::input::config::Config; - -fn get_fake_os_input(fake_win_size: &PositionAndSize) -> FakeInputOutput { - FakeInputOutput::new(*fake_win_size) -} - -#[test] -pub fn resize_up_with_pane_above() { - // ┌───────────┐ ┌───────────┐ - // │ │ │ │ - // │ │ ├───────────┤ - // ├───────────┤ ==resize=up==> │███████████│ - // │███████████│ │███████████│ - // │███████████│ │███████████│ - // └───────────┘ └───────────┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_UP_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn resize_up_with_pane_below() { - // ┌───────────┐ ┌───────────┐ - // │███████████│ │███████████│ - // │███████████│ ├───────────┤ - // ├───────────┤ ==resize=up==> │ │ - // │ │ │ │ - // │ │ │ │ - // └───────────┘ └───────────┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_UP_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn resize_up_with_panes_above_and_below() { - // ┌───────────┐ ┌───────────┐ - // │ │ │ │ - // │ │ ├───────────┤ - // ├───────────┤ │███████████│ - // │███████████│ ==resize=up==> │███████████│ - // │███████████│ │███████████│ - // ├───────────┤ ├───────────┤ - // │ │ │ │ - // │ │ │ │ - // └───────────┘ └───────────┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_UP_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn resize_up_with_multiple_panes_above() { - // - // ┌─────┬─────┐ ┌─────┬─────┐ - // │ │ │ ├─────┴─────┤ - // ├─────┴─────┤ ==resize=up==> │███████████│ - // │███████████│ │███████████│ - // └───────────┘ └───────────┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_UP_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn resize_up_with_panes_above_aligned_left_with_current_pane() { - // ┌─────┬─────┐ ┌─────┬─────┐ - // │ │ │ │ ├─────┤ - // ├─────┼─────┤ ==resize=up==> ├─────┤█████│ - // │ │█████│ │ │█████│ - // └─────┴─────┘ └─────┴─────┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_UP_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn resize_up_with_panes_below_aligned_left_with_current_pane() { - // ┌─────┬─────┐ ┌─────┬─────┐ - // │ │█████│ │ │█████│ - // │ │█████│ │ ├─────┤ - // ├─────┼─────┤ ==resize=up==> ├─────┤ │ - // │ │ │ │ │ │ - // │ │ │ │ │ │ - // └─────┴─────┘ └─────┴─────┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_UP_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn resize_up_with_panes_above_aligned_right_with_current_pane() { - // ┌─────┬─────┐ ┌─────┬─────┐ - // │ │ │ │ │ │ - // │ │ │ ├─────┤ │ - // ├─────┼─────┤ ==resize=up==> │█████├─────┤ - // │█████│ │ │█████│ │ - // │█████│ │ │█████│ │ - // └─────┴─────┘ └─────┴─────┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_UP_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn resize_up_with_panes_below_aligned_right_with_current_pane() { - // ┌─────┬─────┐ ┌─────┬─────┐ - // │█████│ │ │█████│ │ - // │█████│ │ ├─────┤ │ - // ├─────┼─────┤ ==resize=up==> │ ├─────┤ - // │ │ │ │ │ │ - // │ │ │ │ │ │ - // └─────┴─────┘ └─────┴─────┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_UP_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn resize_up_with_panes_above_aligned_left_and_right_with_current_pane() { - // ┌───┬───┬───┐ ┌───┬───┬───┐ - // │ │ │ │ │ │ │ │ - // │ │ │ │ │ ├───┤ │ - // ├───┼───┼───┤ ==resize=up==> ├───┤███├───┤ - // │ │███│ │ │ │███│ │ - // │ │███│ │ │ │███│ │ - // └───┴───┴───┘ └───┴───┴───┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SLEEP, - &SPLIT_DOWN_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_UP_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn resize_up_with_panes_below_aligned_left_and_right_with_current_pane() { - // ┌───┬───┬───┐ ┌───┬───┬───┐ - // │ │███│ │ │ │███│ │ - // │ │███│ │ │ ├───┤ │ - // ├───┼───┼───┤ ==resize=up==> ├───┤ ├───┤ - // │ │ │ │ │ │ │ │ - // │ │ │ │ │ │ │ │ - // └───┴───┴───┘ └───┴───┴───┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SLEEP, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_UP_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn resize_up_with_panes_above_aligned_left_and_right_with_panes_to_the_left_and_right() { - // ┌─┬───────┬─┐ ┌─┬───────┬─┐ - // │ │ │ │ │ │ │ │ - // │ │ │ │ │ ├─┬───┬─┤ │ - // ├─┼─┬───┬─┼─┤ ==resize=up==> ├─┤ │███│ ├─┤ - // │ │ │███│ │ │ │ │ │███│ │ │ - // │ │ │███│ │ │ │ │ │███│ │ │ - // └─┴─┴───┴─┴─┘ └─┴─┴───┴─┴─┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 40, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_LEFT_IN_RESIZE_MODE, - &RESIZE_LEFT_IN_RESIZE_MODE, - &RESIZE_LEFT_IN_RESIZE_MODE, - &PANE_MODE, - &SLEEP, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SLEEP, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_LEFT_IN_RESIZE_MODE, - &RESIZE_LEFT_IN_RESIZE_MODE, - &RESIZE_UP_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn resize_up_with_panes_below_aligned_left_and_right_with_to_the_left_and_right() { - // ┌─┬─┬───┬─┬─┐ ┌─┬─┬───┬─┬─┐ - // │ │ │███│ │ │ │ │ │███│ │ │ - // │ │ │███│ │ │ │ ├─┴───┴─┤ │ - // ├─┼─┴───┴─┼─┤ ==resize=up==> ├─┤ ├─┤ - // │ │ │ │ │ │ │ │ - // │ │ │ │ │ │ │ │ - // └─┴───────┴─┘ └─┴───────┴─┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 40, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_LEFT_IN_RESIZE_MODE, - &RESIZE_LEFT_IN_RESIZE_MODE, - &RESIZE_LEFT_IN_RESIZE_MODE, - &PANE_MODE, - &SLEEP, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_LEFT_IN_RESIZE_MODE, - &RESIZE_LEFT_IN_RESIZE_MODE, - &RESIZE_UP_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn cannot_resize_up_when_pane_above_is_at_minimum_height() { - // ┌───────────┐ ┌───────────┐ - // │ │ │ │ - // ├───────────┤ ==resize=up==> ├───────────┤ - // │███████████│ │███████████│ - // └───────────┘ └───────────┘ - // █ == focused pane - let fake_win_size = PositionAndSize { - cols: 121, - rows: 7, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &RESIZE_MODE, - &RESIZE_UP_IN_RESIZE_MODE, - &SLEEP, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} diff --git a/src/tests/integration/snapshots/zellij__tests__integration__basic__bracketed_paste.snap b/src/tests/integration/snapshots/zellij__tests__integration__basic__bracketed_paste.snap deleted file mode 100644 index 1eec02f4..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__basic__bracketed_paste.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/basic.rs -expression: snapshot_before_quit - ---- -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 $ █ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__basic__cannot_split_largest_terminal_when_there_is_no_room.snap b/src/tests/integration/snapshots/zellij__tests__integration__basic__cannot_split_largest_terminal_when_there_is_no_room.snap deleted file mode 100644 index d6b74e46..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__basic__cannot_split_largest_terminal_when_there_is_no_room.snap +++ /dev/null @@ -1,9 +0,0 @@ ---- -source: src/tests/integration/basic.rs -expression: snapshot_before_quit - ---- -line18-b -line19-b -prompt $ - █ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__basic__cannot_split_terminals_horizontally_when_active_terminal_is_too_small.snap b/src/tests/integration/snapshots/zellij__tests__integration__basic__cannot_split_terminals_horizontally_when_active_terminal_is_too_small.snap deleted file mode 100644 index 7eaac7a0..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__basic__cannot_split_terminals_horizontally_when_active_terminal_is_too_small.snap +++ /dev/null @@ -1,9 +0,0 @@ ---- -source: src/tests/integration/basic.rs -expression: snapshot_before_quit - ---- -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ █ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__basic__cannot_split_terminals_vertically_when_active_terminal_is_too_small.snap b/src/tests/integration/snapshots/zellij__tests__integration__basic__cannot_split_terminals_vertically_when_active_terminal_is_too_small.snap deleted file mode 100644 index c9f9eb10..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__basic__cannot_split_terminals_vertically_when_active_terminal_is_too_small.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/basic.rs -expression: snapshot_before_quit - ---- -line2-bb -line3-bb -line4-bb -line5-bb -line6-bb -line7-bb -line8-bb -line9-bb -line10-b -line11-b -line12-b -line13-b -line14-b -line15-b -line16-b -line17-b -line18-b -line19-b -prompt $ - █ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__basic__max_panes.snap b/src/tests/integration/snapshots/zellij__tests__integration__basic__max_panes.snap deleted file mode 100644 index 2f2d2faf..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__basic__max_panes.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/basic.rs -expression: snapshot_before_quit - ---- -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/zellij__tests__integration__basic__scrolling_down_inside_a_pane.snap b/src/tests/integration/snapshots/zellij__tests__integration__basic__scrolling_down_inside_a_pane.snap deleted file mode 100644 index 8f4ec6e2..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__basic__scrolling_down_inside_a_pane.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/basic.rs -expression: snapshot_before_quit - ---- -line11-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line12-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ -────────────────────────────────────────────────────────────┬──────────────────────────────────────────────────────────── -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/zellij__tests__integration__basic__scrolling_page_down_inside_a_pane.snap b/src/tests/integration/snapshots/zellij__tests__integration__basic__scrolling_page_down_inside_a_pane.snap deleted file mode 100644 index 8f4ec6e2..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__basic__scrolling_page_down_inside_a_pane.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/basic.rs -expression: snapshot_before_quit - ---- -line11-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line12-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ -────────────────────────────────────────────────────────────┬──────────────────────────────────────────────────────────── -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/zellij__tests__integration__basic__scrolling_page_up_inside_a_pane.snap b/src/tests/integration/snapshots/zellij__tests__integration__basic__scrolling_page_up_inside_a_pane.snap deleted file mode 100644 index d37580c6..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__basic__scrolling_page_up_inside_a_pane.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/basic.rs -expression: snapshot_before_quit - ---- -line11-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line12-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ -────────────────────────────────────────────────────────────┬──────────────────────────────────────────────────────────── -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line4-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -a │line5-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line6-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line7-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -a │line8-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line9-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line10-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -a │line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -prompt $ │line12-bb█bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb diff --git a/src/tests/integration/snapshots/zellij__tests__integration__basic__scrolling_up_inside_a_pane.snap b/src/tests/integration/snapshots/zellij__tests__integration__basic__scrolling_up_inside_a_pane.snap deleted file mode 100644 index 485bde1e..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__basic__scrolling_up_inside_a_pane.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/basic.rs -expression: snapshot_before_quit - ---- -line11-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line12-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ -────────────────────────────────────────────────────────────┬──────────────────────────────────────────────────────────── -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line10-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -a │line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -a │line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -a │line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -prompt $ │line18-bb█bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb diff --git a/src/tests/integration/snapshots/zellij__tests__integration__basic__split_largest_terminal.snap b/src/tests/integration/snapshots/zellij__tests__integration__basic__split_largest_terminal.snap deleted file mode 100644 index 2f2d2faf..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__basic__split_largest_terminal.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/basic.rs -expression: snapshot_before_quit - ---- -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/zellij__tests__integration__basic__split_terminals_horizontally.snap b/src/tests/integration/snapshots/zellij__tests__integration__basic__split_terminals_horizontally.snap deleted file mode 100644 index fab0ca8f..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__basic__split_terminals_horizontally.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/basic.rs -expression: snapshot_before_quit - ---- -line11-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line12-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ -───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── -line12-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ █ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__basic__split_terminals_vertically.snap b/src/tests/integration/snapshots/zellij__tests__integration__basic__split_terminals_vertically.snap deleted file mode 100644 index aaae6b5a..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__basic__split_terminals_vertically.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/basic.rs -expression: snapshot_before_quit - ---- -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/zellij__tests__integration__basic__starts_with_one_terminal.snap b/src/tests/integration/snapshots/zellij__tests__integration__basic__starts_with_one_terminal.snap deleted file mode 100644 index 1eec02f4..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__basic__starts_with_one_terminal.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/basic.rs -expression: snapshot_before_quit - ---- -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 $ █ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__basic__toggle_focused_pane_fullscreen.snap b/src/tests/integration/snapshots/zellij__tests__integration__basic__toggle_focused_pane_fullscreen.snap deleted file mode 100644 index 868e5a95..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__basic__toggle_focused_pane_fullscreen.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/basic.rs -expression: snapshot_before_quit - ---- -line1-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line2-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line3-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line4-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line5-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line6-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line7-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line8-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line9-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -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/zellij__tests__integration__close_pane__close_pane_with_another_pane_above_it.snap b/src/tests/integration/snapshots/zellij__tests__integration__close_pane__close_pane_with_another_pane_above_it.snap deleted file mode 100644 index 8ba40bc7..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__close_pane__close_pane_with_another_pane_above_it.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/close_pane.rs -expression: snapshot_before_quit - ---- -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 $ █ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__close_pane__close_pane_with_another_pane_below_it.snap b/src/tests/integration/snapshots/zellij__tests__integration__close_pane__close_pane_with_another_pane_below_it.snap deleted file mode 100644 index 8ba40bc7..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__close_pane__close_pane_with_another_pane_below_it.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/close_pane.rs -expression: snapshot_before_quit - ---- -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 $ █ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__close_pane__close_pane_with_another_pane_to_the_left.snap b/src/tests/integration/snapshots/zellij__tests__integration__close_pane__close_pane_with_another_pane_to_the_left.snap deleted file mode 100644 index 8ba40bc7..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__close_pane__close_pane_with_another_pane_to_the_left.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/close_pane.rs -expression: snapshot_before_quit - ---- -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 $ █ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__close_pane__close_pane_with_another_pane_to_the_right.snap b/src/tests/integration/snapshots/zellij__tests__integration__close_pane__close_pane_with_another_pane_to_the_right.snap deleted file mode 100644 index cf7bacf6..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__close_pane__close_pane_with_another_pane_to_the_right.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/close_pane.rs -expression: snapshot_before_quit - ---- -line1-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line2-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line3-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line4-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line5-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line6-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line7-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line8-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line9-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -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/zellij__tests__integration__close_pane__close_pane_with_multiple_panes_above_it.snap b/src/tests/integration/snapshots/zellij__tests__integration__close_pane__close_pane_with_multiple_panes_above_it.snap deleted file mode 100644 index 05bbb477..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__close_pane__close_pane_with_multiple_panes_above_it.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/close_pane.rs -expression: snapshot_before_quit - ---- -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/zellij__tests__integration__close_pane__close_pane_with_multiple_panes_above_it_away_from_screen_edges.snap b/src/tests/integration/snapshots/zellij__tests__integration__close_pane__close_pane_with_multiple_panes_above_it_away_from_screen_edges.snap deleted file mode 100644 index ffc59eb5..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__close_pane__close_pane_with_multiple_panes_above_it_away_from_screen_edges.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/close_pane.rs -expression: snapshot_before_quit - ---- -a │bbbbbbbbbbbbbbb│line1-bbbbbbbb│line13-bbbbbbbbbbbbbbbbbbbbbb -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbb│line2-bbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbb│line3-bbbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbb -a │line16-bbbbbbbb│line4-bbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbb -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbb│line5-bbbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbb│line6-bbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbb -a │bbbbbbbbbbbbbbb│line7-bbbbbbbb│line19-bbbbbbbbbbbbbbbbbbbbbb -prompt $ │line17-bbbbbbbb│line8-bbbbbbbb│prompt $ -────────────────────────────────────────────────────────────┤bbbbbbbbbbbbbbb│line9-bbbbbbbb├───────────────────────────── -a │bbbbbbbbbbbbbbb│line10-bbbbbbb│line10-bbbbbbbbbbbbbbbbbbbbbb -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbb│line11-bbbbbbb│line11-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line18-bbbbbbbb│line12-bbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbb -a │bbbbbbbbbbbbbbb│line13-bbbbbbb│line13-bbbbbbbbbbbbbbbbbbbbbb -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbb│line14-bbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbb│line15-bbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbb -a │line19-bbbbbbbb│line16-bbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbb -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbb│line17-bbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbb│line18-bbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbb -a │bbbbbbbbbbbbbbb│line19-bbbbbbb│line19-bbbbbbbbbbbbbbbbbbbbbb -prompt $ │prompt $ │prompt $ █ │prompt $ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__close_pane__close_pane_with_multiple_panes_below_it.snap b/src/tests/integration/snapshots/zellij__tests__integration__close_pane__close_pane_with_multiple_panes_below_it.snap deleted file mode 100644 index 05bbb477..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__close_pane__close_pane_with_multiple_panes_below_it.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/close_pane.rs -expression: snapshot_before_quit - ---- -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/zellij__tests__integration__close_pane__close_pane_with_multiple_panes_below_it_away_from_screen_edges.snap b/src/tests/integration/snapshots/zellij__tests__integration__close_pane__close_pane_with_multiple_panes_below_it_away_from_screen_edges.snap deleted file mode 100644 index 6f546abf..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__close_pane__close_pane_with_multiple_panes_below_it_away_from_screen_edges.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/close_pane.rs -expression: snapshot_before_quit - ---- -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbb│line1-bbbbbbbb│line9-bbbbbbbbbbbbbbbbbbbbbbb -a │bbbbbbbbbbbbbbb│line2-bbbbbbbb│line10-bbbbbbbbbbbbbbbbbbbbbb -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbb│line3-bbbbbbbb│line11-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line16-bbbbbbbb│line4-bbbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbb -a │bbbbbbbbbbbbbbb│line5-bbbbbbbb│line13-bbbbbbbbbbbbbbbbbbbbbb -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbb│line6-bbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbb│line7-bbbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbb -a │line17-bbbbbbbb│line8-bbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbb -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbb│line9-bbbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbb│line10-bbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbb -a │bbbbbbbbbbbbbbb│line11-bbbbbbb│line19-bbbbbbbbbbbbbbbbbbbbbb -prompt $ │line18-bbbbbbbb│line12-bbbbbbb│prompt $ -────────────────────────────────────────────────────────────┤bbbbbbbbbbbbbbb│line13-bbbbbbb├───────────────────────────── -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbb│line14-bbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbb│line15-bbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbb -a │line19-bbbbbbbb│line16-bbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbb -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbb│line17-bbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbb│line18-bbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbb -a │bbbbbbbbbbbbbbb│line19-bbbbbbb│line19-bbbbbbbbbbbbbbbbbbbbbb -prompt $ │prompt $ │prompt $ █ │prompt $ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__close_pane__close_pane_with_multiple_panes_to_the_left.snap b/src/tests/integration/snapshots/zellij__tests__integration__close_pane__close_pane_with_multiple_panes_to_the_left.snap deleted file mode 100644 index abd742bc..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__close_pane__close_pane_with_multiple_panes_to_the_left.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/close_pane.rs -expression: snapshot_before_quit - ---- -line11-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line12-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -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/zellij__tests__integration__close_pane__close_pane_with_multiple_panes_to_the_left_away_from_screen_edges.snap b/src/tests/integration/snapshots/zellij__tests__integration__close_pane__close_pane_with_multiple_panes_to_the_left_away_from_screen_edges.snap deleted file mode 100644 index eb3d6039..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__close_pane__close_pane_with_multiple_panes_to_the_left_away_from_screen_edges.snap +++ /dev/null @@ -1,35 +0,0 @@ ---- -source: src/tests/integration/close_pane.rs -expression: snapshot_before_quit - ---- -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line6-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaa │line7-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line8-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line9-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaa │line10-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaa │line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaa │line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaa │line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -prompt $ │prompt $ -──────────────────────────────────────────────────┴────────────────────────────────────────────────────────────────────── -line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -prompt $ -───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── -line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -prompt $ █ -──────────────────────────────────────────────────┬────────────────────────────────────────────────────────────────────── -bbbbbbbbbb │line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -bbbbbbbbbb │line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -bbbbbbbbbb │line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -prompt $ │prompt $ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__close_pane__close_pane_with_multiple_panes_to_the_right.snap b/src/tests/integration/snapshots/zellij__tests__integration__close_pane__close_pane_with_multiple_panes_to_the_right.snap deleted file mode 100644 index 448a074c..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__close_pane__close_pane_with_multiple_panes_to_the_right.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/close_pane.rs -expression: snapshot_before_quit - ---- -line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -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/zellij__tests__integration__close_pane__close_pane_with_multiple_panes_to_the_right_away_from_screen_edges.snap b/src/tests/integration/snapshots/zellij__tests__integration__close_pane__close_pane_with_multiple_panes_to_the_right_away_from_screen_edges.snap deleted file mode 100644 index eb3d6039..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__close_pane__close_pane_with_multiple_panes_to_the_right_away_from_screen_edges.snap +++ /dev/null @@ -1,35 +0,0 @@ ---- -source: src/tests/integration/close_pane.rs -expression: snapshot_before_quit - ---- -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line6-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaa │line7-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line8-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line9-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaa │line10-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaa │line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaa │line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaa │line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -prompt $ │prompt $ -──────────────────────────────────────────────────┴────────────────────────────────────────────────────────────────────── -line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -prompt $ -───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── -line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -prompt $ █ -──────────────────────────────────────────────────┬────────────────────────────────────────────────────────────────────── -bbbbbbbbbb │line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -bbbbbbbbbb │line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -bbbbbbbbbb │line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -prompt $ │prompt $ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__close_pane__closing_last_pane_exits_app.snap b/src/tests/integration/snapshots/zellij__tests__integration__close_pane__closing_last_pane_exits_app.snap deleted file mode 100644 index cf7bacf6..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__close_pane__closing_last_pane_exits_app.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/close_pane.rs -expression: snapshot_before_quit - ---- -line1-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line2-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line3-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line4-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line5-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line6-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line7-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line8-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line9-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -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/zellij__tests__integration__compatibility__bash_cursor_linewrap.snap b/src/tests/integration/snapshots/zellij__tests__integration__compatibility__bash_cursor_linewrap.snap deleted file mode 100644 index d657b3e3..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__compatibility__bash_cursor_linewrap.snap +++ /dev/null @@ -1,33 +0,0 @@ ---- -source: src/tests/integration/compatibility.rs -expression: snapshot_before_quit - ---- -Welcome to fish, the friendly interactive shell -⋊> ~/c/mosaic on main ⨯ bash 16:00:06 -[aram@green mosaic]$ 12345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345 -█ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/tests/integration/snapshots/zellij__tests__integration__compatibility__clear_scroll_region.snap b/src/tests/integration/snapshots/zellij__tests__integration__compatibility__clear_scroll_region.snap deleted file mode 100644 index 2932c549..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__compatibility__clear_scroll_region.snap +++ /dev/null @@ -1,33 +0,0 @@ ---- -source: src/tests/integration/compatibility.rs -expression: snapshot_before_quit - ---- -Welcome to fish, the friendly interactive shell -⋊> ~/c/mosaic on main ⨯ vim some-file 15:07:22 -⋊> ~/c/mosaic on main ⨯ █ 15:07:29 - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/tests/integration/snapshots/zellij__tests__integration__compatibility__display_tab_characters_properly.snap b/src/tests/integration/snapshots/zellij__tests__integration__compatibility__display_tab_characters_properly.snap deleted file mode 100644 index 8af4cae0..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__compatibility__display_tab_characters_properly.snap +++ /dev/null @@ -1,33 +0,0 @@ ---- -source: src/tests/integration/compatibility.rs -expression: snapshot_before_quit - ---- - - OS: 5.9.13-arch1-1 GNU/Linux - Uptime: 10 hours, 42 minutes - Hostname: kingdom - Disk usage: - -df: /run/user/1000/doc: Operation not permitted - / 321G / 514G 66% - /efi 27M / 96M 28% - - Network: - - wlp2s0 192.168.0.3 - -[I] [20:07] kingdom:mosaic (main) | █ - - - - - - - - - - - - - diff --git a/src/tests/integration/snapshots/zellij__tests__integration__compatibility__emacs_longbuf.snap b/src/tests/integration/snapshots/zellij__tests__integration__compatibility__emacs_longbuf.snap deleted file mode 100644 index 4f7e5515..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__compatibility__emacs_longbuf.snap +++ /dev/null @@ -1,65 +0,0 @@ ---- -source: src/tests/integration/compatibility.rs -expression: snapshot_before_quit - ---- -➜ mosaic git:(mosaic#130) emacs -➜ mosaic git:(mosaic#130) emacs -nw -➜ mosaic git:(mosaic#130) exit -█ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/tests/integration/snapshots/zellij__tests__integration__compatibility__exa_plus_omf_theme.snap b/src/tests/integration/snapshots/zellij__tests__integration__compatibility__exa_plus_omf_theme.snap deleted file mode 100644 index b09189f4..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__compatibility__exa_plus_omf_theme.snap +++ /dev/null @@ -1,61 +0,0 @@ ---- -source: src/tests/integration/compatibility.rs -expression: snapshot_before_quit - ---- -.rw-r--r-- 3.3k aram 11 Jan 16:09 CODE_OF_CONDUCT.md -.rw-r--r-- 3.5k aram 17 Feb 16:06 CONTRIBUTING.md -drwxr-xr-x - aram 10 Feb 11:53 default-tiles -drwxr-xr-x - aram 10 Feb 11:53 docs -.rw-r--r-- 2.1k aram 10 Feb 11:53 GOVERNANCE.md -.rw-r--r-- 1.1k aram 10 Feb 11:53 LICENSE.md -.rw-r--r-- 4.7k aram 17 Feb 16:06 README.md -drwxr-xr-x - aram 17 Feb 16:06 src -drwxr-xr-x - aram 17 Feb 16:08 target -drwxr-xr-x - aram 17 Feb 16:06 zellij-tile -⋊> ~/c/zellij on main ⨯ ll 10:27:45 -Permissions Size User Date Modified Name -drwxr-xr-x - aram 11 Feb 14:04 assets -.rwxr-xr-x 596 aram 17 Feb 16:06 build-all.sh -.rw-r--r-- 1.4k aram 17 Feb 16:06 build.rs -.rw-r--r-- 56k aram 17 Feb 16:07 Cargo.lock -.rw-r--r-- 2.1k aram 17 Feb 16:06 Cargo.toml -.rw-r--r-- 3.3k aram 11 Jan 16:09 CODE_OF_CONDUCT.md -.rw-r--r-- 3.5k aram 17 Feb 16:06 CONTRIBUTING.md -drwxr-xr-x - aram 10 Feb 11:53 default-tiles -drwxr-xr-x - aram 10 Feb 11:53 docs -.rw-r--r-- 2.1k aram 10 Feb 11:53 GOVERNANCE.md -.rw-r--r-- 1.1k aram 10 Feb 11:53 LICENSE.md -.rw-r--r-- 4.7k aram 17 Feb 16:06 README.md -drwxr-xr-x - aram 17 Feb 16:06 src -drwxr-xr-x - aram 17 Feb 16:08 target -drwxr-xr-x - aram 17 Feb 16:06 zellij-tile -⋊> ~/c/zellij on main ⨯ omf theme 10:27:45 -Installed: -agnoster chain default plain - -Available: -agnoster eden lavender scorphish -aight emoji-powerline lolfish separation -ays es mars shellder -batman fishbone mish simple-ass-prompt -beloglazov fishface mokou simplevi -bira fishy-drupal mtahmed slavic-cat -bobthefish fisk nai spacefish -bongnoster fox nelsonjchen sushi -boxfish gentoo neolambda syl20bnr -budspencer gianu numist taktoa -cbjohnson gitstatus ocean technopagan -chain gnuykeaj one toaster -clearance godfather pastfish tomita -cmorrell graystatus perryh trout -coffeeandcode harleen plain tweetjay -cor idan pure uggedal -cyan integral pygmalion will -dangerous jacaetevha random wolf-theme -default johanson randomrussel yimmy -dmorrell kawasaki redfish zeit -doughsay krisleech red-snapper zephyr -eclm l robbyrussell zish -edan lambda sashimi -⋊> ~/c/zellij on main ⨯ █ 10:27:46 diff --git a/src/tests/integration/snapshots/zellij__tests__integration__compatibility__fish_paste_multiline.snap b/src/tests/integration/snapshots/zellij__tests__integration__compatibility__fish_paste_multiline.snap deleted file mode 100644 index 3a983165..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__compatibility__fish_paste_multiline.snap +++ /dev/null @@ -1,33 +0,0 @@ ---- -source: src/tests/integration/compatibility.rs -expression: snapshot_before_quit - ---- - - OS: 5.9.14-arch1-1 GNU/Linux - Uptime: 12 hours, 21 minutes - Hostname: kingdom - Disk usage: - -df: /run/user/1000/doc: Operation not permitted - / 295G / 514G 61% - /efi 27M / 96M 28% - - Network: - - wlp2s0 192.168.0.3 - -[I] [21:58] kingdom:mosaic (main) | echo -ne (\ - df -l -h | grep -E 'dev/(xvda|sd|mapper)' | \ - awk '{printf "\\\\t%s\\\\t%4s / %4s %s\\\\n\n", $6, $3, $2, $5}' | \ - sed -e 's/^\(.*\([8][5-9]\|[9][0-9]\)%.*\)$/\\\\e[0;31m\1\\\\e[0m/' -e 's/^\(.*\([7][5-9]\|[8][0-4]\)%.*\ -)$/\\\\e[0;33m\1\\\\e[0m/' | \ - paste -sd ''\ - )█ - - - - - - - diff --git a/src/tests/integration/snapshots/zellij__tests__integration__compatibility__fish_select_tab_completion_options.snap b/src/tests/integration/snapshots/zellij__tests__integration__compatibility__fish_select_tab_completion_options.snap deleted file mode 100644 index 9a29d950..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__compatibility__fish_select_tab_completion_options.snap +++ /dev/null @@ -1,33 +0,0 @@ ---- -source: src/tests/integration/compatibility.rs -expression: snapshot_before_quit - ---- -Welcome to fish, the friendly interactive shell -⋊> ~/c/mosaic on main ⨯ sudo badblocks █ 11:32:23 -badblocks (Executable, 33kB) base64 (Executable, 42kB) bash (Executable, 906kB) -bandwhich (Executable, 3.0MB) basename (Executable, 38kB) bashbug (Executable, 6.8kB) -base32 (Executable, 42kB) basenc (Executable, 50kB) bass - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/tests/integration/snapshots/zellij__tests__integration__compatibility__fish_tab_completion_options.snap b/src/tests/integration/snapshots/zellij__tests__integration__compatibility__fish_tab_completion_options.snap deleted file mode 100644 index 006cd485..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__compatibility__fish_tab_completion_options.snap +++ /dev/null @@ -1,33 +0,0 @@ ---- -source: src/tests/integration/compatibility.rs -expression: snapshot_before_quit - ---- -Welcome to fish, the friendly interactive shell -⋊> ~/c/mosaic on main ⨯ sudo ba█dwhich 11:18:26 -badblocks (Executable, 33kB) base64 (Executable, 42kB) bash (Executable, 906kB) -bandwhich (Executable, 3.0MB) basename (Executable, 38kB) bashbug (Executable, 6.8kB) -base32 (Executable, 42kB) basenc (Executable, 50kB) bass - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/tests/integration/snapshots/zellij__tests__integration__compatibility__git_diff_scrollup.snap b/src/tests/integration/snapshots/zellij__tests__integration__compatibility__git_diff_scrollup.snap deleted file mode 100644 index 63123585..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__compatibility__git_diff_scrollup.snap +++ /dev/null @@ -1,33 +0,0 @@ ---- -source: src/tests/integration/compatibility.rs -expression: snapshot_before_quit - ---- - -src/terminal_pane/scroll.rs -─────────────────────────────────────────────────────────────────────────────────────────────────────────────────── - -────────────────────────────────────────────────┐ -use crate::terminal_pane::terminal_character::{ │ -────────────────────────────────────────────────┘ -5 - CharacterStyles, TerminalCharacter, EMPTY_TERMINAL_CHARACTER, -}; - -use crate::utils::logging::debug_log_to_file; - -/* - * Scroll - * - -──────────────┐ -impl Scroll { │ -──────────────┘ -663 - pub fn move_current_buffer_to_alternative_buffer(&mut self) { - self.alternative_buffer = Some(self.canonical_lines.drain(..).collect()); - self.alternative_cursor_position = Some(self.cursor_position); - self.cursor_position.reset(); - self.clear_all(); - } -:█ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__compatibility__git_log.snap b/src/tests/integration/snapshots/zellij__tests__integration__compatibility__git_log.snap deleted file mode 100644 index 74978bda..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__compatibility__git_log.snap +++ /dev/null @@ -1,33 +0,0 @@ ---- -source: src/tests/integration/compatibility.rs -expression: snapshot_before_quit - ---- - - * wip: doesn't render when new tab is created? - - * wip: doesnt re-render when a new tab is spawned for now - - * wip: tabs now are a BTreeMap and we can switch between them in both directions - - * wip: I think that should also be here - - * wip: cleanup - - * Spawn a new terminal simultaneously with a new tab - - * Ensure proper Opening and Closing of tabs - - * cleanup - - * more cleanup - - * tests(snapshots): add 'loading' snapshot to each scenario - - * fix(tests): update snapshots - - * Add tests for tabs implementation - - * wip: added tests, moved tab related stuff to a separate file - -:█ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__compatibility__htop.snap b/src/tests/integration/snapshots/zellij__tests__integration__compatibility__htop.snap deleted file mode 100644 index 5f37e9ae..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__compatibility__htop.snap +++ /dev/null @@ -1,33 +0,0 @@ ---- -source: src/tests/integration/compatibility.rs -expression: snapshot_before_quit - ---- - - 1 [||||| 10.1%] Tasks: 73, 413 thr; 1 running - 2 [||||||| 13.5%] Load average: 1.03 1.07 1.30 - 3 [|||||| 10.8%] Uptime: 22:41:15 - 4 [|||||| 10.6%] - Mem[|||||||||||||||||||||||||||||||||||||3.28G/15.3G] - Swp[ 0K/16.0G] - - PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command - 1352 aram 20 0 3776M 581M 238M S 8.7 3.7 2h01:10 /usr/lib/firefox/firefox - 98777 aram 20 0 537M 6184 4240 S 8.1 0.0 0:00.80 target/debug/mosaic --debug - 1669 aram 20 0 2944M 318M 130M S 8.1 2.0 1h01:33 /usr/lib/firefox/firefox -contentproc -childID 6 -i - 826 aram 9 -11 1581M 15092 11244 S 6.1 0.1 42:21.83 /usr/bin/pulseaudio --daemonize=no - 9419 aram 20 0 533M 7392 3344 S 4.7 0.0 22:01.92 /usr/local/bin/mosaic --max-panes 4 - 98913 aram 20 0 537M 6184 4240 S 3.4 0.0 0:00.31 target/debug/mosaic --debug - 1505 aram 20 0 3187M 329M 206M S 3.4 2.1 23:35.90 /usr/lib/firefox/firefox -contentproc -childID 2 -i - 98912 aram 20 0 537M 6184 4240 S 2.7 0.0 0:00.22 target/debug/mosaic --debug - 1164 aram -6 0 1581M 15092 11244 S 2.7 0.1 21:39.80 /usr/bin/pulseaudio --daemonize=no - 1247 aram 20 0 1184M 292M 84828 S 2.7 1.9 38:01.54 /usr/lib/Xorg -nolisten tcp :0 vt1 -keeptty -auth / - 1475 aram -11 0 3776M 581M 238M S 2.0 3.7 14:27.94 /usr/lib/firefox/firefox - 8574 aram 20 0 2944M 318M 130M S 2.0 2.0 14:36.50 /usr/lib/firefox/firefox -contentproc -childID 6 -i - 1364 aram 20 0 3776M 581M 238M S 2.0 3.7 18:01.89 /usr/lib/firefox/firefox - 1870 aram 20 0 3776M 581M 238M S 2.0 3.7 13:27.06 /usr/lib/firefox/firefox - 9427 aram 20 0 533M 7392 3344 S 2.0 0.0 6:53.47 /usr/local/bin/mosaic --max-panes 4 - 98905 aram 20 0 537M 6184 4240 S 2.0 0.0 0:00.17 target/debug/mosaic --debug - 99272 aram 20 0 8456 4348 3320 R 1.3 0.0 0:00.13 htop - 8611 aram 20 0 2944M 318M 130M S 1.3 2.0 8:17.90 /usr/lib/firefox/firefox -contentproc -childID 6 -i -F1Help F2Setup F3SearchF4FilterF5Tree F6SortByF7Nice -F8Nice +F9Kill F10Quit diff --git a/src/tests/integration/snapshots/zellij__tests__integration__compatibility__htop_right_scrolling.snap b/src/tests/integration/snapshots/zellij__tests__integration__compatibility__htop_right_scrolling.snap deleted file mode 100644 index d14a411a..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__compatibility__htop_right_scrolling.snap +++ /dev/null @@ -1,33 +0,0 @@ ---- -source: src/tests/integration/compatibility.rs -expression: snapshot_before_quit - ---- - - 1 [|||||||||| 16.9%] Tasks: 110, 512 thr; 1 running - 2 [|||||||||| 17.1%] Load average: 1.04 1.30 1.29 - 3 [||||||| 13.9%] Uptime: 6 days, 07:01:39 - 4 [||||||||| 14.9%] - Mem[|||||||||||||||||||||||||||||||||||||8.80G/15.3G] - Swp[| 2.82M/16.0G] - - PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command - 20 0 8576 4508 3356 R 1.3 0.0 0:00.11 htop - 20 0 171M 10868 7804 S 0.0 0.1 2:08.38 /sbin/init - 20 0 107M 29364 28092 S 0.0 0.2 0:03.42 /usr/lib/systemd/systemd-journald - 20 0 32648 9568 6616 S 0.0 0.1 0:01.87 /usr/lib/systemd/systemd-udevd - 20 0 78060 992 856 S 0.0 0.0 0:00.00 /usr/bin/lvmetad -f - 20 0 6952 4356 3492 S 0.0 0.0 0:57.67 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidf - 20 0 14824 7552 5984 S 0.0 0.0 0:12.93 /usr/bin/connmand -n --nodnsproxy - 20 0 17696 7940 6696 S 0.0 0.0 0:01.25 /usr/lib/systemd/systemd-logind - 20 0 1635M 56148 20460 S 0.0 0.3 1:27.24 /usr/bin/dockerd -H fd:// - 20 0 1635M 56148 20460 S 0.0 0.3 0:38.37 /usr/bin/dockerd -H fd:// - 20 0 1635M 56148 20460 S 0.0 0.3 0:00.01 /usr/bin/dockerd -H fd:// - 20 0 1635M 56148 20460 S 0.0 0.3 0:00.00 /usr/bin/dockerd -H fd:// - 20 0 1635M 56148 20460 S 0.0 0.3 0:00.00 /usr/bin/dockerd -H fd:// - 20 0 1635M 56148 20460 S 0.0 0.3 0:00.00 /usr/bin/dockerd -H fd:// - 20 0 1635M 56148 20460 S 0.0 0.3 1:47.55 /usr/bin/dockerd -H fd:// - 20 0 1635M 56148 20460 S 0.0 0.3 1:26.19 /usr/bin/dockerd -H fd:// - 20 0 1635M 56148 20460 S 0.0 0.3 1:40.77 /usr/bin/dockerd -H fd:// - 20 0 1635M 56148 20460 S 0.0 0.3 1:47.26 /usr/bin/dockerd -H fd:// -F1Help F2Setup F3SearchF4FilterF5Tree F6SortByF7Nice -F8Nice +F9Kill F10Quit diff --git a/src/tests/integration/snapshots/zellij__tests__integration__compatibility__htop_scrolling.snap b/src/tests/integration/snapshots/zellij__tests__integration__compatibility__htop_scrolling.snap deleted file mode 100644 index beffef7c..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__compatibility__htop_scrolling.snap +++ /dev/null @@ -1,33 +0,0 @@ ---- -source: src/tests/integration/compatibility.rs -expression: snapshot_before_quit - ---- - - 1 [||||||||||||||||||||||||||||||||||||||||||100.0%] Tasks: 79, 382 thr; 1 running - 2 [ 0.0%] Load average: 1.40 1.43 1.38 - 3 [ 0.0%] Uptime: 2 days, 07:33:50 - 4 [ 0.0%] - Mem[|||||||||||||||||||||||||||||||||||||3.64G/15.3G] - Swp[ 0K/16.0G] - - PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command - 123934 aram 20 0 8444 4384 3364 R 66.7 0.0 0:00.05 htop --delay=100000000000 - 1 root 20 0 171M 11616 8608 S 0.0 0.1 0:56.91 /sbin/init - 268 root 20 0 93324 34340 33072 S 0.0 0.2 0:01.05 /usr/lib/systemd/systemd-journald - 276 root 20 0 32648 10192 7240 S 0.0 0.1 0:01.13 /usr/lib/systemd/systemd-udevd - 286 root 20 0 78060 1132 996 S 0.0 0.0 0:00.00 /usr/bin/lvmetad -f - 343 dbus 20 0 6952 4384 3520 S 0.0 0.0 0:13.85 /usr/bin/dbus-daemon --system --address=systemd: -- - 344 root 20 0 14588 7512 6176 S 0.0 0.0 0:03.21 /usr/bin/connmand -n --nodnsproxy - 345 root 20 0 17696 8372 7128 S 0.0 0.1 0:00.67 /usr/lib/systemd/systemd-logind - 395 root 20 0 1635M 83324 44976 S 0.0 0.5 0:32.43 /usr/bin/dockerd -H fd:// - 396 root 20 0 1635M 83324 44976 S 0.0 0.5 0:00.01 /usr/bin/dockerd -H fd:// - 397 root 20 0 1635M 83324 44976 S 0.0 0.5 0:00.01 /usr/bin/dockerd -H fd:// - 398 root 20 0 1635M 83324 44976 S 0.0 0.5 0:00.00 /usr/bin/dockerd -H fd:// - 399 root 20 0 1635M 83324 44976 S 0.0 0.5 0:00.00 /usr/bin/dockerd -H fd:// - 412 root 20 0 1635M 83324 44976 S 0.0 0.5 0:00.00 /usr/bin/dockerd -H fd:// - 441 root 20 0 1635M 83324 44976 S 0.0 0.5 0:41.35 /usr/bin/dockerd -H fd:// - 442 root 20 0 1635M 83324 44976 S 0.0 0.5 0:33.61 /usr/bin/dockerd -H fd:// - 444 root 20 0 1635M 83324 44976 S 0.0 0.5 0:33.13 /usr/bin/dockerd -H fd:// - 449 root 20 0 1635M 83324 44976 S 0.0 0.5 0:41.39 /usr/bin/dockerd -H fd:// -F1Help F2Setup F3SearchF4FilterF5Tree F6SortByF7Nice -F8Nice +F9Kill F10Quit diff --git a/src/tests/integration/snapshots/zellij__tests__integration__compatibility__neovim_insert_mode.snap b/src/tests/integration/snapshots/zellij__tests__integration__compatibility__neovim_insert_mode.snap deleted file mode 100644 index 159bfcac..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__compatibility__neovim_insert_mode.snap +++ /dev/null @@ -1,33 +0,0 @@ ---- -source: src/tests/integration/compatibility.rs -expression: snapshot_before_quit - ---- -line 1 -line 2 -line 3 -line 4 -line 5 -line 6 -line 7 -line 8 -line 9 -█ine 10 -line 11 -line 12 -line 13 -line 14 -line 15 -line 16 -line 17 -line 18 -line 19 -line 20 -line 21 -line 22 -line 23 -line 24 -line 25 -line 26 -some-file 10,1 Top --- INSERT -- diff --git a/src/tests/integration/snapshots/zellij__tests__integration__compatibility__run_bandwhich_from_fish_shell.snap b/src/tests/integration/snapshots/zellij__tests__integration__compatibility__run_bandwhich_from_fish_shell.snap deleted file mode 100644 index e250ba86..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__compatibility__run_bandwhich_from_fish_shell.snap +++ /dev/null @@ -1,33 +0,0 @@ ---- -source: src/tests/integration/compatibility.rs -expression: snapshot_before_quit - ---- - Total Up / Down: 46Bps / 57Bps -┌Utilization by process name───────────────────────────────────────────────────────────────────────────────────────┐ -│Process Connections Up / Down │ -│ │ -│firefox 3 46Bps / 57Bps │ -│ │ -│ │ -│ │ -│ │ -│ │ -│ │ -│ │ -│ │ -│ │ -│ │ -│ │ -│ │ -│ │ -│ │ -│ │ -│ │ -│ │ -│ │ -│ │ -│ │ -│ │ -└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ - Press to pause. Use to rearrange tables. (DNS queries hidden). diff --git a/src/tests/integration/snapshots/zellij__tests__integration__compatibility__top_and_quit.snap b/src/tests/integration/snapshots/zellij__tests__integration__compatibility__top_and_quit.snap deleted file mode 100644 index 1c4e16df..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__compatibility__top_and_quit.snap +++ /dev/null @@ -1,61 +0,0 @@ ---- -source: src/tests/integration/compatibility.rs -expression: snapshot_before_quit - ---- -Tasks: 158 total, 1 running, 157 sleeping, 0 stopped, 0 zombie -%Cpu(s): 24.2 us, 1.6 sy, 0.0 ni, 74.2 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st -MiB Mem : 15715.1 total, 7001.4 free, 2163.7 used, 6549.9 buff/cache -MiB Swap: 16384.0 total, 16384.0 free, 0.0 used. 12809.8 avail Mem - - PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND - 15838 aram 20 0 7275240 56912 18964 S 73.3 0.4 0:17.79 zellij - 12653 aram 20 0 39032 22164 14372 S 20.0 0.1 0:00.63 urxvt - 1477 aram 20 0 3178660 301992 203236 S 6.7 1.9 3:49.82 Web Content - 1 root 20 0 175360 11532 8596 S 0.0 0.1 0:05.90 systemd - 2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd - 3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp - 4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_par_gp - 6 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/0:0H-kblockd - 8 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 mm_percpu_wq - 9 root 20 0 0 0 0 S 0.0 0.0 0:01.24 ksoftirqd/0 - 10 root -2 0 0 0 0 S 0.0 0.0 0:00.00 rcuc/0 - 11 root -2 0 0 0 0 I 0.0 0.0 0:06.12 rcu_preempt - 12 root -2 0 0 0 0 S 0.0 0.0 0:00.00 rcub/0 - 13 root rt 0 0 0 0 S 0.0 0.0 0:00.01 migration/0 - 14 root -51 0 0 0 0 S 0.0 0.0 0:00.00 idle_inject/0 - 16 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/0 - 17 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/1 - 18 root -51 0 0 0 0 S 0.0 0.0 0:00.00 idle_inject/1 - 19 root rt 0 0 0 0 S 0.0 0.0 0:00.35 migration/1 - 20 root -2 0 0 0 0 S 0.0 0.0 0:00.00 rcuc/1 - 21 root 20 0 0 0 0 S 0.0 0.0 0:00.49 ksoftirqd/1 - 23 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/1:0H-kblockd - 24 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/2 - 25 root -51 0 0 0 0 S 0.0 0.0 0:00.00 idle_inject/2 - 26 root rt 0 0 0 0 S 0.0 0.0 0:00.39 migration/2 - 27 root -2 0 0 0 0 S 0.0 0.0 0:00.00 rcuc/2 - 28 root 20 0 0 0 0 S 0.0 0.0 0:00.99 ksoftirqd/2 - 30 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/2:0H-kblockd - 31 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/3 - 32 root -51 0 0 0 0 S 0.0 0.0 0:00.00 idle_inject/3 - 33 root rt 0 0 0 0 S 0.0 0.0 0:00.43 migration/3 - 34 root -2 0 0 0 0 S 0.0 0.0 0:00.00 rcuc/3 - 35 root 20 0 0 0 0 S 0.0 0.0 0:00.90 ksoftirqd/3 - 37 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/3:0H-kblockd - 38 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmpfs - 39 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 netns - 40 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_tasks_kthre - 41 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kauditd - 44 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khungtaskd - 45 root 20 0 0 0 0 S 0.0 0.0 0:00.00 oom_reaper - 46 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 writeback - 47 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kcompactd0 - 48 root 25 5 0 0 0 S 0.0 0.0 0:00.00 ksmd - 49 root 39 19 0 0 0 S 0.0 0.0 0:00.00 khugepaged - 137 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kintegrityd - 138 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kblockd - 139 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 blkcg_punt_bio - 140 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 ata_sff - 141 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 edac-poller -⋊> ~/c/zellij on fix-top ⨯ █ 13:00:53 diff --git a/src/tests/integration/snapshots/zellij__tests__integration__compatibility__vim_ctrl_d.snap b/src/tests/integration/snapshots/zellij__tests__integration__compatibility__vim_ctrl_d.snap deleted file mode 100644 index 5f922afd..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__compatibility__vim_ctrl_d.snap +++ /dev/null @@ -1,33 +0,0 @@ ---- -source: src/tests/integration/compatibility.rs -expression: snapshot_before_quit - ---- - 3 line14 - 2 line15 - 1 line16 -17 █ine17 - 1 line18 - 2 line19 - 3 line20 - 4 line21 - 5 line22 - 6 line23 - 7 line24 - 8 line25 - 9 line26 - 10 line27 - 11 line28 - 12 line29 - 13 line30 - 14 line31 - 15 line32 - 16 line33 - 17 line34 - 18 line35 - 19 line36 - 20 line37 - 21 line38 - 22 line39 - NORMAL testfile.rs unix | utf-8 | rust 40% 17:1 - diff --git a/src/tests/integration/snapshots/zellij__tests__integration__compatibility__vim_ctrl_u.snap b/src/tests/integration/snapshots/zellij__tests__integration__compatibility__vim_ctrl_u.snap deleted file mode 100644 index f0b76512..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__compatibility__vim_ctrl_u.snap +++ /dev/null @@ -1,33 +0,0 @@ ---- -source: src/tests/integration/compatibility.rs -expression: snapshot_before_quit - ---- - 22 line4 - 21 line5 - 20 line6 - 19 line7 - 18 line8 - 17 line9 - 16 line10 - 15 line11 - 14 line12 - 13 line13 - 12 line14 - 11 line15 - 10 line16 - 9 line17 - 8 line18 - 7 line19 - 6 line20 - 5 line21 - 4 line22 - 3 line23 - 2 line24 - 1 line25 -26 █ine26 - 1 line27 - 2 line28 - 3 line29 - NORMAL testfile.rs unix | utf-8 | rust 61% 26:1 - diff --git a/src/tests/integration/snapshots/zellij__tests__integration__compatibility__vim_overwrite.snap b/src/tests/integration/snapshots/zellij__tests__integration__compatibility__vim_overwrite.snap deleted file mode 100644 index 8dee61ab..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__compatibility__vim_overwrite.snap +++ /dev/null @@ -1,33 +0,0 @@ ---- -source: src/tests/integration/compatibility.rs -expression: snapshot_before_quit - ---- -1 █ - 1 line 1 - 2 line 2 - 3 line 3 - 4 line 4 - 5 line 5 - 6 line 6 - 7 line 7 - 8 line 8 - 9 line 9 - 10 line 10 - 11 line 11 - 12 line 12 - 13 line 13 - 14 line 14 - 15 line 15 - 16 line 16 - 17 line 17 - 18 line 18 - 19 line 19 - 20 line 20 - 21 line 21 - 22 line 22 - 23 line 23 - 24 line 24 - 25 line 25 - NORMAL some-file unix | utf-8 | no ft 1% 1:1 - diff --git a/src/tests/integration/snapshots/zellij__tests__integration__compatibility__vim_scroll_region_down.snap b/src/tests/integration/snapshots/zellij__tests__integration__compatibility__vim_scroll_region_down.snap deleted file mode 100644 index b4a455e3..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__compatibility__vim_scroll_region_down.snap +++ /dev/null @@ -1,33 +0,0 @@ ---- -source: src/tests/integration/compatibility.rs -expression: snapshot_before_quit - ---- - 22 line2 - 21 line3 - 20 line4 - 19 line5 - 18 line6 - 17 line7 - 16 line8 - 15 line9 - 14 line10 - 13 line11 - 12 line12 - 11 line13 - 10 line14 - 9 line15 - 8 line16 - 7 line17 - 6 line18 - 5 line19 - 4 line20 - 3 line21 - 2 line22 - 1 line23 -24 █ine24 - 1 line25 - 2 line26 - 3 line27 - NORMAL testfile.rs unix | utf-8 | rust 57% 24:1 - diff --git a/src/tests/integration/snapshots/zellij__tests__integration__layouts__accepts_basic_layout-2.snap b/src/tests/integration/snapshots/zellij__tests__integration__layouts__accepts_basic_layout-2.snap deleted file mode 100644 index 24c85bfd..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__layouts__accepts_basic_layout-2.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/layouts.rs -expression: next_to_last_snapshot - ---- -line6-bbbbbbbbbbbbbbbbbb│line6-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line7-bbbbbbbbbbbbbbbbbb│line7-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line8-bbbbbbbbbbbbbbbbbb│line8-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line9-bbbbbbbbbbbbbbbbbb│line9-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line10-bbbbbbbbbbbbbbbbb│line10-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line11-bbbbbbbbbbbbbbbbb│line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line12-bbbbbbbbbbbbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line13-bbbbbbbbbbbbbbbbb│line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line14-bbbbbbbbbbbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line15-bbbbbbbbbbbbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line16-bbbbbbbbbbbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line17-bbbbbbbbbbbbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line18-bbbbbbbbbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line19-bbbbbbbbbbbbbbbbb│line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -prompt $ █ │prompt $ -────────────────────────┴──────────────────────────────────────────────────────────────────────────────────────────────── -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__layouts__accepts_basic_layout-3.snap b/src/tests/integration/snapshots/zellij__tests__integration__layouts__accepts_basic_layout-3.snap deleted file mode 100644 index d506a47a..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__layouts__accepts_basic_layout-3.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/layouts.rs -expression: last_snapshot - ---- -Bye from Zellij! - █ - - - - - - - - - - - - - - - - - - diff --git a/src/tests/integration/snapshots/zellij__tests__integration__layouts__accepts_basic_layout.snap b/src/tests/integration/snapshots/zellij__tests__integration__layouts__accepts_basic_layout.snap deleted file mode 100644 index 2f814621..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__layouts__accepts_basic_layout.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/layouts.rs -expression: first_snapshot - ---- -█ │ - │ - │ - │ - │ - │ - │ - │ - │ - │ - │ - │ - │ - │ - │ -────────────────────────┴──────────────────────────────────────────────────────────────────────────────────────────────── - - - - diff --git a/src/tests/integration/snapshots/zellij__tests__integration__move_focus_down__move_focus_down.snap b/src/tests/integration/snapshots/zellij__tests__integration__move_focus_down__move_focus_down.snap deleted file mode 100644 index 3a89bb92..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__move_focus_down__move_focus_down.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/move_focus_down.rs -expression: snapshot_before_quit - ---- -line11-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line12-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ -───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── -line12-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ █ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__move_focus_down__move_focus_down_to_the_largest_overlap.snap b/src/tests/integration/snapshots/zellij__tests__integration__move_focus_down__move_focus_down_to_the_largest_overlap.snap deleted file mode 100644 index 1c53690e..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__move_focus_down__move_focus_down_to_the_largest_overlap.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/move_focus_down.rs -expression: snapshot_before_quit - ---- -line11-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line12-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ -────────────────────────────────────────────────────────────┬──────────────────────────────┬───────────────────────────── -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line16-bbbbbbbbbbbbbbbbbbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbb -a │bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line13-bbbbbbbbbbbbbbbbbbbbbb -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line17-bbbbbbbbbbbbbbbbbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbb -a │line18-bbbbbbbbbbbbbbbbbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbb -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line19-bbbbbbbbbbbbbbbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbb -a │bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line19-bbbbbbbbbbbbbbbbbbbbbb -prompt $ │prompt $ │prompt $ █ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__move_focus_down__move_focus_down_to_the_most_recently_used_pane.snap b/src/tests/integration/snapshots/zellij__tests__integration__move_focus_down__move_focus_down_to_the_most_recently_used_pane.snap deleted file mode 100644 index 1c53690e..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__move_focus_down__move_focus_down_to_the_most_recently_used_pane.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/move_focus_down.rs -expression: snapshot_before_quit - ---- -line11-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line12-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ -────────────────────────────────────────────────────────────┬──────────────────────────────┬───────────────────────────── -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line16-bbbbbbbbbbbbbbbbbbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbb -a │bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line13-bbbbbbbbbbbbbbbbbbbbbb -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line17-bbbbbbbbbbbbbbbbbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbb -a │line18-bbbbbbbbbbbbbbbbbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbb -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line19-bbbbbbbbbbbbbbbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbb -a │bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line19-bbbbbbbbbbbbbbbbbbbbbb -prompt $ │prompt $ │prompt $ █ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__move_focus_left__move_focus_left.snap b/src/tests/integration/snapshots/zellij__tests__integration__move_focus_left__move_focus_left.snap deleted file mode 100644 index ad879d6c..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__move_focus_left__move_focus_left.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/move_focus_left.rs -expression: snapshot_before_quit - ---- -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/zellij__tests__integration__move_focus_left__move_focus_left_changes_tab.snap b/src/tests/integration/snapshots/zellij__tests__integration__move_focus_left__move_focus_left_changes_tab.snap deleted file mode 100644 index 3eb21e65..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__move_focus_left__move_focus_left_changes_tab.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/move_focus_left.rs -expression: snapshot_before_quit - ---- -line11-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line12-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ -───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── -line12-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ █ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__move_focus_left__move_focus_left_to_the_largest_overlap.snap b/src/tests/integration/snapshots/zellij__tests__integration__move_focus_left__move_focus_left_to_the_largest_overlap.snap deleted file mode 100644 index b175a531..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__move_focus_left__move_focus_left_to_the_largest_overlap.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/move_focus_left.rs -expression: snapshot_before_quit - ---- -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 -line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -prompt $ │line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -────────────────────────────────────────────────────────────┤line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -prompt $ █ │prompt $ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__move_focus_left__move_focus_left_to_the_most_recently_used_pane.snap b/src/tests/integration/snapshots/zellij__tests__integration__move_focus_left__move_focus_left_to_the_most_recently_used_pane.snap deleted file mode 100644 index b175a531..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__move_focus_left__move_focus_left_to_the_most_recently_used_pane.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/move_focus_left.rs -expression: snapshot_before_quit - ---- -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 -line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -prompt $ │line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -────────────────────────────────────────────────────────────┤line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -prompt $ █ │prompt $ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__move_focus_right__move_focus_right.snap b/src/tests/integration/snapshots/zellij__tests__integration__move_focus_right__move_focus_right.snap deleted file mode 100644 index fdd7c3d5..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__move_focus_right__move_focus_right.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/move_focus_right.rs -expression: snapshot_before_quit - ---- -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/zellij__tests__integration__move_focus_right__move_focus_right_changes_tab.snap b/src/tests/integration/snapshots/zellij__tests__integration__move_focus_right__move_focus_right_changes_tab.snap deleted file mode 100644 index cefab8e1..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__move_focus_right__move_focus_right_changes_tab.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/move_focus_right.rs -expression: snapshot_before_quit - ---- -line11-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line12-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ -───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── -line12-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ █ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__move_focus_right__move_focus_right_to_the_largest_overlap.snap b/src/tests/integration/snapshots/zellij__tests__integration__move_focus_right__move_focus_right_to_the_largest_overlap.snap deleted file mode 100644 index 312b8c04..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__move_focus_right__move_focus_right_to_the_largest_overlap.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/move_focus_right.rs -expression: snapshot_before_quit - ---- -a │line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -a │line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -a │line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -a │prompt $ -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa├──────────────────────────────────────────────────────────── -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -a │line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│prompt $ -a ├──────────────────────────────────────────────────────────── -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -a │line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -prompt $ │prompt $ █ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__move_focus_right__move_focus_right_to_the_most_recently_used_pane.snap b/src/tests/integration/snapshots/zellij__tests__integration__move_focus_right__move_focus_right_to_the_most_recently_used_pane.snap deleted file mode 100644 index 312b8c04..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__move_focus_right__move_focus_right_to_the_most_recently_used_pane.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/move_focus_right.rs -expression: snapshot_before_quit - ---- -a │line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -a │line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -a │line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -a │prompt $ -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa├──────────────────────────────────────────────────────────── -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -a │line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│prompt $ -a ├──────────────────────────────────────────────────────────── -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -a │line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -prompt $ │prompt $ █ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__move_focus_up__move_focus_up.snap b/src/tests/integration/snapshots/zellij__tests__integration__move_focus_up__move_focus_up.snap deleted file mode 100644 index cf6fc8c8..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__move_focus_up__move_focus_up.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/move_focus_up.rs -expression: snapshot_before_quit - ---- -line11-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line12-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ █ -───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── -line12-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__move_focus_up__move_focus_up_to_the_largest_overlap.snap b/src/tests/integration/snapshots/zellij__tests__integration__move_focus_up__move_focus_up_to_the_largest_overlap.snap deleted file mode 100644 index 188bc9c4..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__move_focus_up__move_focus_up_to_the_largest_overlap.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/move_focus_up.rs -expression: snapshot_before_quit - ---- -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line11-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line16-bbbbbbbbbbbbbbbbbbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbb -a │bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line13-bbbbbbbbbbbbbbbbbbbbbb -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line17-bbbbbbbbbbbbbbbbbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbb -a │line18-bbbbbbbbbbbbbbbbbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbb -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line19-bbbbbbbbbbbbbbbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbb -a │bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line19-bbbbbbbbbbbbbbbbbbbbbb -prompt $ │prompt $ │prompt $ █ -────────────────────────────────────────────────────────────┴──────────────────────────────┴───────────────────────────── -line12-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__move_focus_up__move_focus_up_to_the_most_recently_used_pane.snap b/src/tests/integration/snapshots/zellij__tests__integration__move_focus_up__move_focus_up_to_the_most_recently_used_pane.snap deleted file mode 100644 index 188bc9c4..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__move_focus_up__move_focus_up_to_the_most_recently_used_pane.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/move_focus_up.rs -expression: snapshot_before_quit - ---- -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line11-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line16-bbbbbbbbbbbbbbbbbbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbb -a │bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line13-bbbbbbbbbbbbbbbbbbbbbb -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line17-bbbbbbbbbbbbbbbbbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbb -a │line18-bbbbbbbbbbbbbbbbbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbb -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line19-bbbbbbbbbbbbbbbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbb -a │bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line19-bbbbbbbbbbbbbbbbbbbbbb -prompt $ │prompt $ │prompt $ █ -────────────────────────────────────────────────────────────┴──────────────────────────────┴───────────────────────────── -line12-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__resize_down__cannot_resize_down_when_pane_below_is_at_minimum_height.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_down__cannot_resize_down_when_pane_below_is_at_minimum_height.snap deleted file mode 100644 index 5eedc89f..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_down__cannot_resize_down_when_pane_below_is_at_minimum_height.snap +++ /dev/null @@ -1,12 +0,0 @@ ---- -source: src/tests/integration/resize_down.rs -expression: snapshot_before_quit - ---- -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ -───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ █ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__resize_down__resize_down_with_multiple_panes_above.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_down__resize_down_with_multiple_panes_above.snap deleted file mode 100644 index b69d1c29..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_down__resize_down_with_multiple_panes_above.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/resize_down.rs -expression: snapshot_before_quit - ---- -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 $ -────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────── -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ █ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__resize_down__resize_down_with_pane_above.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_down__resize_down_with_pane_above.snap deleted file mode 100644 index 69a35e27..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_down__resize_down_with_pane_above.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/resize_down.rs -expression: snapshot_before_quit - ---- -line9-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line10-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line11-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line12-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ -───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ █ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__resize_down__resize_down_with_pane_below.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_down__resize_down_with_pane_below.snap deleted file mode 100644 index 831b1c52..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_down__resize_down_with_pane_below.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/resize_down.rs -expression: snapshot_before_quit - ---- -line9-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line10-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line11-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line12-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ █ -───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__resize_down__resize_down_with_panes_above_aligned_left_and_right_with_current_pane.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_down__resize_down_with_panes_above_aligned_left_and_right_with_current_pane.snap deleted file mode 100644 index 6a5197f7..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_down__resize_down_with_panes_above_aligned_left_and_right_with_current_pane.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/resize_down.rs -expression: snapshot_before_quit - ---- -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line11-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line15-bbbbbbbbbbbbbbbbbbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbb -a │bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line13-bbbbbbbbbbbbbbbbbbbbbb -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line16-bbbbbbbbbbbbbbbbbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbb -a │line17-bbbbbbbbbbbbbbbbbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbb -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line18-bbbbbbbbbbbbbbbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbb -a │bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line19-bbbbbbbbbbbbbbbbbbbbbb -prompt $ │line19-bbbbbbbbbbbbbbbbbbbbbbb│prompt $ -────────────────────────────────────────────────────────────┤bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb├───────────────────────────── -line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│prompt $ │line12-bbbbbbbbbbbbbbbbbbbbbb -line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb├──────────────────────────────┤line13-bbbbbbbbbbbbbbbbbbbbbb -line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbb -line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbb -line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbb -line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbb -line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbb -line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line19-bbbbbbbbbbbbbbbbbbbbbbb│line19-bbbbbbbbbbbbbbbbbbbbbb -prompt $ │prompt $ █ │prompt $ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__resize_down__resize_down_with_panes_above_aligned_left_and_right_with_panes_to_the_left_and_right.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_down__resize_down_with_panes_above_aligned_left_and_right_with_panes_to_the_left_and_right.snap deleted file mode 100644 index 0cd41085..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_down__resize_down_with_panes_above_aligned_left_and_right_with_panes_to_the_left_and_right.snap +++ /dev/null @@ -1,45 +0,0 @@ ---- -source: src/tests/integration/resize_down.rs -expression: snapshot_before_quit - ---- -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line1-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line1-bbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line2-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line2-bbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line3-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line3-bbbbbbbbbbbbbbbbbbbbbbb -a │line4-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line4-bbbbbbbbbbbbbbbbbbbbbbb -line17-aaaaaaaaaaaaaaaaaaaaaaa│line5-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line5-bbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line6-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line6-bbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line7-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line7-bbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line8-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line8-bbbbbbbbbbbbbbbbbbbbbbb -a │line9-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line9-bbbbbbbbbbbbbbbbbbbbbbb -line18-aaaaaaaaaaaaaaaaaaaaaaa│line10-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line10-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line11-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line13-bbbbbbbbbbbbbbbbbbbbbb -a │line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbb -line19-aaaaaaaaaaaaaaaaaaaaaaa│line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbb -a │line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line19-bbbbbbbbbbbbbbbbbbbbbb -prompt $ │prompt $ │prompt $ -──────────────────────────────┤ ├───────────────────────────── -line2-bbbbbbbbbbbbbbbbbbbbbbbb│ │line2-bbbbbbbbbbbbbbbbbbbbbbb -line3-bbbbbbbbbbbbbbbbbbbbbbbb├──────────┬──────────────────────────────────┬──────────────┤line3-bbbbbbbbbbbbbbbbbbbbbbb -line4-bbbbbbbbbbbbbbbbbbbbbbbb│bbbbbbbbbb│line4-bbbbbbbbbbbbbbbbbbbbbbb │line4-bbbbbbbb│line4-bbbbbbbbbbbbbbbbbbbbbbb -line5-bbbbbbbbbbbbbbbbbbbbbbbb│bbbbbbbbbb│line5-bbbbbbbbbbbbbbbbbbbbbbb │line5-bbbbbbbb│line5-bbbbbbbbbbbbbbbbbbbbbbb -line6-bbbbbbbbbbbbbbbbbbbbbbbb│bbbbbbbbbb│line6-bbbbbbbbbbbbbbbbbbbbbbb │line6-bbbbbbbb│line6-bbbbbbbbbbbbbbbbbbbbbbb -line7-bbbbbbbbbbbbbbbbbbbbbbbb│bbbbbbbbbb│line7-bbbbbbbbbbbbbbbbbbbbbbb │line7-bbbbbbbb│line7-bbbbbbbbbbbbbbbbbbbbbbb -line8-bbbbbbbbbbbbbbbbbbbbbbbb│line18-bbb│line8-bbbbbbbbbbbbbbbbbbbbbbb │line8-bbbbbbbb│line8-bbbbbbbbbbbbbbbbbbbbbbb -line9-bbbbbbbbbbbbbbbbbbbbbbbb│bbbbbbbbbb│line9-bbbbbbbbbbbbbbbbbbbbbbb │line9-bbbbbbbb│line9-bbbbbbbbbbbbbbbbbbbbbbb -line10-bbbbbbbbbbbbbbbbbbbbbbb│bbbbbbbbbb│line10-bbbbbbbbbbbbbbbbbbbbbb │line10-bbbbbbb│line10-bbbbbbbbbbbbbbbbbbbbbb -line11-bbbbbbbbbbbbbbbbbbbbbbb│bbbbbbbbbb│line11-bbbbbbbbbbbbbbbbbbbbbb │line11-bbbbbbb│line11-bbbbbbbbbbbbbbbbbbbbbb -line12-bbbbbbbbbbbbbbbbbbbbbbb│bbbbbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbb │line12-bbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbb -line13-bbbbbbbbbbbbbbbbbbbbbbb│bbbbbbbbbb│line13-bbbbbbbbbbbbbbbbbbbbbb │line13-bbbbbbb│line13-bbbbbbbbbbbbbbbbbbbbbb -line14-bbbbbbbbbbbbbbbbbbbbbbb│line19-bbb│line14-bbbbbbbbbbbbbbbbbbbbbb │line14-bbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbb -line15-bbbbbbbbbbbbbbbbbbbbbbb│bbbbbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbb │line15-bbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbb -line16-bbbbbbbbbbbbbbbbbbbbbbb│bbbbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbb │line16-bbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbb -line17-bbbbbbbbbbbbbbbbbbbbbbb│bbbbbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbb │line17-bbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbb -line18-bbbbbbbbbbbbbbbbbbbbbbb│bbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbb │line18-bbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbb -line19-bbbbbbbbbbbbbbbbbbbbbbb│bbbbbbbbbb│line19-bbbbbbbbbbbbbbbbbbbbbb │line19-bbbbbbb│line19-bbbbbbbbbbbbbbbbbbbbbb -prompt $ │prompt $ │prompt $ █ │prompt $ │prompt $ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__resize_down__resize_down_with_panes_above_aligned_left_with_current_pane.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_down__resize_down_with_panes_above_aligned_left_with_current_pane.snap deleted file mode 100644 index a6002f87..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_down__resize_down_with_panes_above_aligned_left_with_current_pane.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/resize_down.rs -expression: snapshot_before_quit - ---- -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line9-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line10-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -a │line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -a │line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -a │line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -prompt $ │line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -────────────────────────────────────────────────────────────┤line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│prompt $ -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/zellij__tests__integration__resize_down__resize_down_with_panes_above_aligned_right_with_current_pane.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_down__resize_down_with_panes_above_aligned_right_with_current_pane.snap deleted file mode 100644 index 7a460b4e..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_down__resize_down_with_panes_above_aligned_right_with_current_pane.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/resize_down.rs -expression: snapshot_before_quit - ---- -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -a │line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -a │line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -a │line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│prompt $ -a ├──────────────────────────────────────────────────────────── -prompt $ │line12-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/zellij__tests__integration__resize_down__resize_down_with_panes_above_and_below.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_down__resize_down_with_panes_above_and_below.snap deleted file mode 100644 index 29c9a76a..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_down__resize_down_with_panes_above_and_below.snap +++ /dev/null @@ -1,30 +0,0 @@ ---- -source: src/tests/integration/resize_down.rs -expression: snapshot_before_quit - ---- -line9-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line10-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line11-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line12-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ -───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── -line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ █ -───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__resize_down__resize_down_with_panes_below_aligned_left_and_right_with_current_pane.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_down__resize_down_with_panes_below_aligned_left_and_right_with_current_pane.snap deleted file mode 100644 index e86d3efe..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_down__resize_down_with_panes_below_aligned_left_and_right_with_current_pane.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/resize_down.rs -expression: snapshot_before_quit - ---- -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line11-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line15-bbbbbbbbbbbbbbbbbbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbb -a │bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line13-bbbbbbbbbbbbbbbbbbbbbb -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line16-bbbbbbbbbbbbbbbbbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbb -a │line17-bbbbbbbbbbbbbbbbbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbb -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line18-bbbbbbbbbbbbbbbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbb -a │bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line19-bbbbbbbbbbbbbbbbbbbbbb -prompt $ │line19-bbbbbbbbbbbbbbbbbbbbbbb│prompt $ -────────────────────────────────────────────────────────────┤bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb├───────────────────────────── -line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│prompt $ █ │line12-bbbbbbbbbbbbbbbbbbbbbb -line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb├──────────────────────────────┤line13-bbbbbbbbbbbbbbbbbbbbbb -line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbb -line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbb -line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbb -line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbb -line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbb -line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line19-bbbbbbbbbbbbbbbbbbbbbbb│line19-bbbbbbbbbbbbbbbbbbbbbb -prompt $ │prompt $ │prompt $ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__resize_down__resize_down_with_panes_below_aligned_left_and_right_with_to_the_left_and_right.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_down__resize_down_with_panes_below_aligned_left_and_right_with_to_the_left_and_right.snap deleted file mode 100644 index 14d9e507..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_down__resize_down_with_panes_below_aligned_left_and_right_with_to_the_left_and_right.snap +++ /dev/null @@ -1,45 +0,0 @@ ---- -source: src/tests/integration/resize_down.rs -expression: snapshot_before_quit - ---- -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbb│line1-bbbbbbbbbbbbbbbbbbbbbbb │line1-bbbbbbbb│line1-bbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbb│line2-bbbbbbbbbbbbbbbbbbbbbbb │line2-bbbbbbbb│line2-bbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbb│line3-bbbbbbbbbbbbbbbbbbbbbbb │line3-bbbbbbbb│line3-bbbbbbbbbbbbbbbbbbbbbbb -a │line17-bbb│line4-bbbbbbbbbbbbbbbbbbbbbbb │line4-bbbbbbbb│line4-bbbbbbbbbbbbbbbbbbbbbbb -line17-aaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbb│line5-bbbbbbbbbbbbbbbbbbbbbbb │line5-bbbbbbbb│line5-bbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbb│line6-bbbbbbbbbbbbbbbbbbbbbbb │line6-bbbbbbbb│line6-bbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbb│line7-bbbbbbbbbbbbbbbbbbbbbbb │line7-bbbbbbbb│line7-bbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbb│line8-bbbbbbbbbbbbbbbbbbbbbbb │line8-bbbbbbbb│line8-bbbbbbbbbbbbbbbbbbbbbbb -a │bbbbbbbbbb│line9-bbbbbbbbbbbbbbbbbbbbbbb │line9-bbbbbbbb│line9-bbbbbbbbbbbbbbbbbbbbbbb -line18-aaaaaaaaaaaaaaaaaaaaaaa│line18-bbb│line10-bbbbbbbbbbbbbbbbbbbbbb │line10-bbbbbbb│line10-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbb│line11-bbbbbbbbbbbbbbbbbbbbbb │line11-bbbbbbb│line11-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbb │line12-bbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbb│line13-bbbbbbbbbbbbbbbbbbbbbb │line13-bbbbbbb│line13-bbbbbbbbbbbbbbbbbbbbbb -a │bbbbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbb │line14-bbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbb -line19-aaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbb │line15-bbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line19-bbb│line16-bbbbbbbbbbbbbbbbbbbbbb │line16-bbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbb │line17-bbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbb │line18-bbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbb -a │bbbbbbbbbb│line19-bbbbbbbbbbbbbbbbbbbbbb │line19-bbbbbbb│line19-bbbbbbbbbbbbbbbbbbbbbb -prompt $ │bbbbbbbbbb│prompt $ █ │prompt $ │prompt $ -──────────────────────────────┤bbbbbbbbbb│ │ ├───────────────────────────── -line2-bbbbbbbbbbbbbbbbbbbbbbbb│prompt $ │ │ │line2-bbbbbbbbbbbbbbbbbbbbbbb -line3-bbbbbbbbbbbbbbbbbbbbbbbb├──────────┴──────────────────────────────────┴──────────────┤line3-bbbbbbbbbbbbbbbbbbbbbbb -line4-bbbbbbbbbbbbbbbbbbbbbbbb│line4-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line4-bbbbbbbbbbbbbbbbbbbbbbb -line5-bbbbbbbbbbbbbbbbbbbbbbbb│line5-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line5-bbbbbbbbbbbbbbbbbbbbbbb -line6-bbbbbbbbbbbbbbbbbbbbbbbb│line6-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line6-bbbbbbbbbbbbbbbbbbbbbbb -line7-bbbbbbbbbbbbbbbbbbbbbbbb│line7-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line7-bbbbbbbbbbbbbbbbbbbbbbb -line8-bbbbbbbbbbbbbbbbbbbbbbbb│line8-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line8-bbbbbbbbbbbbbbbbbbbbbbb -line9-bbbbbbbbbbbbbbbbbbbbbbbb│line9-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line9-bbbbbbbbbbbbbbbbbbbbbbb -line10-bbbbbbbbbbbbbbbbbbbbbbb│line10-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line10-bbbbbbbbbbbbbbbbbbbbbb -line11-bbbbbbbbbbbbbbbbbbbbbbb│line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line11-bbbbbbbbbbbbbbbbbbbbbb -line12-bbbbbbbbbbbbbbbbbbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbb -line13-bbbbbbbbbbbbbbbbbbbbbbb│line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line13-bbbbbbbbbbbbbbbbbbbbbb -line14-bbbbbbbbbbbbbbbbbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbb -line15-bbbbbbbbbbbbbbbbbbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbb -line16-bbbbbbbbbbbbbbbbbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbb -line17-bbbbbbbbbbbbbbbbbbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbb -line18-bbbbbbbbbbbbbbbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbb -line19-bbbbbbbbbbbbbbbbbbbbbbb│line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line19-bbbbbbbbbbbbbbbbbbbbbb -prompt $ │prompt $ │prompt $ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__resize_down__resize_down_with_panes_below_aligned_left_with_current_pane.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_down__resize_down_with_panes_below_aligned_left_with_current_pane.snap deleted file mode 100644 index 8e8a9688..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_down__resize_down_with_panes_below_aligned_left_with_current_pane.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/resize_down.rs -expression: snapshot_before_quit - ---- -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line9-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line10-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -a │line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -a │line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -a │line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -prompt $ │line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -────────────────────────────────────────────────────────────┤line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│prompt $ █ -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/zellij__tests__integration__resize_down__resize_down_with_panes_below_aligned_right_with_current_pane.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_down__resize_down_with_panes_below_aligned_right_with_current_pane.snap deleted file mode 100644 index 1a90fef7..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_down__resize_down_with_panes_below_aligned_right_with_current_pane.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/resize_down.rs -expression: snapshot_before_quit - ---- -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -a │line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -a │line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -a │line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│prompt $ -a ├──────────────────────────────────────────────────────────── -prompt $ █ │line12-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/zellij__tests__integration__resize_left__cannot_resize_left_when_pane_to_the_left_is_at_minimum_width.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_left__cannot_resize_left_when_pane_to_the_left_is_at_minimum_width.snap deleted file mode 100644 index 214bc8c3..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_left__cannot_resize_left_when_pane_to_the_left_is_at_minimum_width.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/resize_left.rs -expression: snapshot_before_quit - ---- -14-b│lin3 -b │lin4 -line│lin5 -15-b│lin6 -b │lin7 -line│lin8 -16-b│lin9 -b │ln10 -line│ln11 -17-b│ln12 -b │ln13 -line│ln14 -18-b│ln15 -b │ln16 -line│ln17 -19-b│ln18 -b │ln19 -prom│prom -pt $│pt $ - │ █ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__resize_left__resize_left_with_multiple_panes_to_the_left.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_left__resize_left_with_multiple_panes_to_the_left.snap deleted file mode 100644 index 7cc426f7..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_left__resize_left_with_multiple_panes_to_the_left.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/resize_left.rs -expression: snapshot_before_quit - ---- -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line1-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line2-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaa │line3-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line4-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line5-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaa │line6-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line7-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line8-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaa │line9-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -prompt $ │line10-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -──────────────────────────────────────────────────┤line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -bbbbbbbbbb │line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -bbbbbbbbbb │line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -bbbbbbbbbb │line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -bbbbbbbbbb │line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -prompt $ │prompt $ █ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__resize_left__resize_left_with_pane_to_the_left.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_left__resize_left_with_pane_to_the_left.snap deleted file mode 100644 index 7dc8c588..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_left__resize_left_with_pane_to_the_left.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/resize_left.rs -expression: snapshot_before_quit - ---- -aaaaaaaaaaaaaaaaaaaaa │line1-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line2-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line3-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaa │line4-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line5-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line6-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaa │line7-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line8-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line9-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaa │line10-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaa │line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaa │line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaa │line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -prompt $ │prompt $ █ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__resize_left__resize_left_with_pane_to_the_right.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_left__resize_left_with_pane_to_the_right.snap deleted file mode 100644 index 16597014..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_left__resize_left_with_pane_to_the_right.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/resize_left.rs -expression: snapshot_before_quit - ---- -aaaaaaaaaaaaaaaaaaaaa │line1-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line2-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line3-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaa │line4-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line5-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line6-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaa │line7-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line8-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line9-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaa │line10-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaa │line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaa │line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaa │line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -prompt $ █ │prompt $ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__resize_left__resize_left_with_panes_to_the_left_aligned_bottom_with_current_pane.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_left__resize_left_with_panes_to_the_left_aligned_bottom_with_current_pane.snap deleted file mode 100644 index fbf57dd7..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_left__resize_left_with_panes_to_the_left_aligned_bottom_with_current_pane.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/resize_left.rs -expression: snapshot_before_quit - ---- -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaa │line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaa │line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaa │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/zellij__tests__integration__resize_left__resize_left_with_panes_to_the_left_aligned_top_and_bottom_with_current_pane.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_left__resize_left_with_panes_to_the_left_aligned_top_and_bottom_with_current_pane.snap deleted file mode 100644 index 6eb2cd18..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_left__resize_left_with_panes_to_the_left_aligned_top_and_bottom_with_current_pane.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/resize_left.rs -expression: snapshot_before_quit - ---- -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 $ -──────────────────────────────────────────────────┬─────────┴──────────────────────────────────────────────────────────── -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaa │line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -prompt $ │prompt $ █ -──────────────────────────────────────────────────┴─────────┬──────────────────────────────────────────────────────────── -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -a │line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -prompt $ │prompt $ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__resize_left__resize_left_with_panes_to_the_left_aligned_top_and_bottom_with_panes_above_and_below.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_left__resize_left_with_panes_to_the_left_aligned_top_and_bottom_with_panes_above_and_below.snap deleted file mode 100644 index 02516734..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_left__resize_left_with_panes_to_the_left_aligned_top_and_bottom_with_panes_above_and_below.snap +++ /dev/null @@ -1,45 +0,0 @@ ---- -source: src/tests/integration/resize_left.rs -expression: snapshot_before_quit - ---- -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 $ -──────────────────────────────────────────────────┬─────────┴──────────────────────────────────────────────────────────── -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaa │line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│prompt $ -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa├────────────────────────────────────────────────────────────────────── -aaaaaaaaaaaaaaaaaaaaa │line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaa │line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaa │prompt $ █ -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa├────────────────────────────────────────────────────────────────────── -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaa │line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -prompt $ │prompt $ -──────────────────────────────────────────────────┴─────────┬──────────────────────────────────────────────────────────── -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/zellij__tests__integration__resize_left__resize_left_with_panes_to_the_left_aligned_top_with_current_pane.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_left__resize_left_with_panes_to_the_left_aligned_top_with_current_pane.snap deleted file mode 100644 index 58edf926..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_left__resize_left_with_panes_to_the_left_aligned_top_with_current_pane.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/resize_left.rs -expression: snapshot_before_quit - ---- -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 $ -──────────────────────────────────────────────────┬─────────┴──────────────────────────────────────────────────────────── -line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -bbbbbbbbbb │line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -bbbbbbbbbb │line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -bbbbbbbbbb │line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -bbbbbbbbbb │line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -prompt $ │prompt $ █ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__resize_left__resize_left_with_panes_to_the_left_and_right.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_left__resize_left_with_panes_to_the_left_and_right.snap deleted file mode 100644 index 4431134f..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_left__resize_left_with_panes_to_the_left_and_right.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/resize_left.rs -expression: snapshot_before_quit - ---- -aaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbbbbbbbbbbbb │line1-bbbbbbbbbbbbbbbbbbbbbbb -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line2-bbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbbbbbbb │line3-bbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaa │line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line4-bbbbbbbbbbbbbbbbbbbbbbb -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbbbbbbb │line5-bbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line6-bbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbbbbbbbbbbbb │line7-bbbbbbbbbbbbbbbbbbbbbbb -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line8-bbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbbbbbbb │line9-bbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaa │line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line10-bbbbbbbbbbbbbbbbbbbbbb -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbbbbbbb │line11-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbbbbbbbbbbbb │line13-bbbbbbbbbbbbbbbbbbbbbb -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbbbbbbb │line15-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaa │line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbb -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbbbbbbb │line17-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbbbbbbbbbbbb │line19-bbbbbbbbbbbbbbbbbbbbbb -prompt $ │prompt $ █ │prompt $ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__resize_left__resize_left_with_panes_to_the_right_aligned_bottom_with_current_pane.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_left__resize_left_with_panes_to_the_right_aligned_bottom_with_current_pane.snap deleted file mode 100644 index 549b15e5..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_left__resize_left_with_panes_to_the_right_aligned_bottom_with_current_pane.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/resize_left.rs -expression: snapshot_before_quit - ---- -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaa │line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaa │line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaa │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/zellij__tests__integration__resize_left__resize_left_with_panes_to_the_right_aligned_top_and_bottom_with_current_pane.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_left__resize_left_with_panes_to_the_right_aligned_top_and_bottom_with_current_pane.snap deleted file mode 100644 index bdee0bd7..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_left__resize_left_with_panes_to_the_right_aligned_top_and_bottom_with_current_pane.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/resize_left.rs -expression: snapshot_before_quit - ---- -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 $ -──────────────────────────────────────────────────┬─────────┴──────────────────────────────────────────────────────────── -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaa │line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -prompt $ █ │prompt $ -──────────────────────────────────────────────────┴─────────┬──────────────────────────────────────────────────────────── -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -a │line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -prompt $ │prompt $ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__resize_left__resize_left_with_panes_to_the_right_aligned_top_and_bottom_with_panes_above_and_below.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_left__resize_left_with_panes_to_the_right_aligned_top_and_bottom_with_panes_above_and_below.snap deleted file mode 100644 index 62a92718..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_left__resize_left_with_panes_to_the_right_aligned_top_and_bottom_with_panes_above_and_below.snap +++ /dev/null @@ -1,45 +0,0 @@ ---- -source: src/tests/integration/resize_left.rs -expression: snapshot_before_quit - ---- -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 $ -──────────────────────────────────────────────────┬─────────┴──────────────────────────────────────────────────────────── -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line6-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaa │line7-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -prompt $ │line8-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -──────────────────────────────────────────────────┤line9-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line10-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -bbbbbbbbbb │line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -bbbbbbbbbb │line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -bbbbbbbbbb │line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -prompt $ █ │line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -──────────────────────────────────────────────────┤line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -bbbbbbbbbb │line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -prompt $ │prompt $ -──────────────────────────────────────────────────┴─────────┬──────────────────────────────────────────────────────────── -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/zellij__tests__integration__resize_left__resize_left_with_panes_to_the_right_aligned_top_with_current_pane.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_left__resize_left_with_panes_to_the_right_aligned_top_with_current_pane.snap deleted file mode 100644 index 654b16d0..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_left__resize_left_with_panes_to_the_right_aligned_top_with_current_pane.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/resize_left.rs -expression: snapshot_before_quit - ---- -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 $ -──────────────────────────────────────────────────┬─────────┴──────────────────────────────────────────────────────────── -line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -bbbbbbbbbb │line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -bbbbbbbbbb │line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -bbbbbbbbbb │line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -bbbbbbbbbb │line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -prompt $ █ │prompt $ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__resize_right__cannot_resize_right_when_pane_to_the_left_is_at_minimum_width.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_right__cannot_resize_right_when_pane_to_the_left_is_at_minimum_width.snap deleted file mode 100644 index 9d366dad..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_right__cannot_resize_right_when_pane_to_the_left_is_at_minimum_width.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/resize_right.rs -expression: snapshot_before_quit - ---- -14-b│lin3 -b │lin4 -line│lin5 -15-b│lin6 -b │lin7 -line│lin8 -16-b│lin9 -b │ln10 -line│ln11 -17-b│ln12 -b │ln13 -line│ln14 -18-b│ln15 -b │ln16 -line│ln17 -19-b│ln18 -b │ln19 -prom│prom -pt $│pt $ - │ █ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__resize_right__resize_right_with_multiple_panes_to_the_left.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_right__resize_right_with_multiple_panes_to_the_left.snap deleted file mode 100644 index 56b58e28..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_right__resize_right_with_multiple_panes_to_the_left.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/resize_right.rs -expression: snapshot_before_quit - ---- -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbb -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbb -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbb -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbb -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbb -prompt $ │line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -──────────────────────────────────────────────────────────────────────┤bbbbbbbbbb -line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb │line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb │bbbbbbbbbb -line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb │line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb │bbbbbbbbbb -line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb │line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb │bbbbbbbbbb -line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb │line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb │bbbbbbbbbb -prompt $ │prompt $ █ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__resize_right__resize_right_with_pane_to_the_left.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_right__resize_right_with_pane_to_the_left.snap deleted file mode 100644 index 2e3ea9f7..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_right__resize_right_with_pane_to_the_left.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/resize_right.rs -expression: snapshot_before_quit - ---- -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbb -line11-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbb -line12-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbb -line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbb -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbb -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbb -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbb -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbb -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbb -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbb -prompt $ │prompt $ █ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__resize_right__resize_right_with_pane_to_the_right.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_right__resize_right_with_pane_to_the_right.snap deleted file mode 100644 index 87eb82c7..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_right__resize_right_with_pane_to_the_right.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/resize_right.rs -expression: snapshot_before_quit - ---- -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbb -line11-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbb -line12-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbb -line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbb -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbb -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbb -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbb -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbb -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbb -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbb -prompt $ █ │prompt $ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__resize_right__resize_right_with_panes_to_the_left_aligned_bottom_with_current_pane.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_right__resize_right_with_panes_to_the_left_aligned_bottom_with_current_pane.snap deleted file mode 100644 index 9fafc30a..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_right__resize_right_with_panes_to_the_left_aligned_bottom_with_current_pane.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/resize_right.rs -expression: snapshot_before_quit - ---- -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbb -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbb -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbb -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbb -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbb -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/zellij__tests__integration__resize_right__resize_right_with_panes_to_the_left_aligned_top_and_bottom_with_current_pane.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_right__resize_right_with_panes_to_the_left_aligned_top_and_bottom_with_current_pane.snap deleted file mode 100644 index 21cbb652..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_right__resize_right_with_panes_to_the_left_aligned_top_and_bottom_with_current_pane.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/resize_right.rs -expression: snapshot_before_quit - ---- -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 $ -────────────────────────────────────────────────────────────┴─────────┬────────────────────────────────────────────────── -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbb -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbb -prompt $ │prompt $ █ -────────────────────────────────────────────────────────────┬─────────┴────────────────────────────────────────────────── -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -a │line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -prompt $ │prompt $ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__resize_right__resize_right_with_panes_to_the_left_aligned_top_and_bottom_with_panes_above_and_below.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_right__resize_right_with_panes_to_the_left_aligned_top_and_bottom_with_panes_above_and_below.snap deleted file mode 100644 index 87714cef..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_right__resize_right_with_panes_to_the_left_aligned_top_and_bottom_with_panes_above_and_below.snap +++ /dev/null @@ -1,45 +0,0 @@ ---- -source: src/tests/integration/resize_right.rs -expression: snapshot_before_quit - ---- -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 $ -────────────────────────────────────────────────────────────┴─────────┬────────────────────────────────────────────────── -line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbb -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│prompt $ -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ├────────────────────────────────────────────────── -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbb -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbb -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbb -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│prompt $ █ -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ├────────────────────────────────────────────────── -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbb -prompt $ │prompt $ -────────────────────────────────────────────────────────────┬─────────┴────────────────────────────────────────────────── -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/zellij__tests__integration__resize_right__resize_right_with_panes_to_the_left_aligned_top_with_current_pane.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_right__resize_right_with_panes_to_the_left_aligned_top_with_current_pane.snap deleted file mode 100644 index 1113bb73..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_right__resize_right_with_panes_to_the_left_aligned_top_with_current_pane.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/resize_right.rs -expression: snapshot_before_quit - ---- -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 │line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb │bbbbbbbbbb -line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb │line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb │bbbbbbbbbb -line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb │line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb │bbbbbbbbbb -line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb │line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb │bbbbbbbbbb -prompt $ │prompt $ █ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__resize_right__resize_right_with_panes_to_the_left_and_right.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_right__resize_right_with_panes_to_the_left_and_right.snap deleted file mode 100644 index fa310617..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_right__resize_right_with_panes_to_the_left_and_right.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/resize_right.rs -expression: snapshot_before_quit - ---- -a │bbbbbbbbbbbbbbbbbbbb │bbbbbbbbbb -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line11-bbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbbbbbbb │bbbbbbbbbb -a │line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line12-bbbbbbbbbbbb -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbbbbbbb │bbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line13-bbbbbbbbbbbb -a │bbbbbbbbbbbbbbbbbbbb │bbbbbbbbbb -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line14-bbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbbbbbbb │bbbbbbbbbb -a │line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line15-bbbbbbbbbbbb -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbbbbbbb │bbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line16-bbbbbbbbbbbb -a │bbbbbbbbbbbbbbbbbbbb │bbbbbbbbbb -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line17-bbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbbbbbbb │bbbbbbbbbb -a │line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line18-bbbbbbbbbbbb -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbbbbbbb │bbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line19-bbbbbbbbbbbb -a │bbbbbbbbbbbbbbbbbbbb │bbbbbbbbbb -prompt $ │prompt $ █ │prompt $ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__resize_right__resize_right_with_panes_to_the_right_aligned_bottom_with_current_pane.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_right__resize_right_with_panes_to_the_right_aligned_bottom_with_current_pane.snap deleted file mode 100644 index 7bb38a1a..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_right__resize_right_with_panes_to_the_right_aligned_bottom_with_current_pane.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/resize_right.rs -expression: snapshot_before_quit - ---- -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbb -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbb -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbb -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbb -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbb -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/zellij__tests__integration__resize_right__resize_right_with_panes_to_the_right_aligned_top_and_bottom_with_current_pane.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_right__resize_right_with_panes_to_the_right_aligned_top_and_bottom_with_current_pane.snap deleted file mode 100644 index 3c65a787..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_right__resize_right_with_panes_to_the_right_aligned_top_and_bottom_with_current_pane.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/resize_right.rs -expression: snapshot_before_quit - ---- -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 $ -────────────────────────────────────────────────────────────┴─────────┬────────────────────────────────────────────────── -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbb -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbb -prompt $ █ │prompt $ -────────────────────────────────────────────────────────────┬─────────┴────────────────────────────────────────────────── -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -a │line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -prompt $ │prompt $ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__resize_right__resize_right_with_panes_to_the_right_aligned_top_and_bottom_with_panes_above_and_below.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_right__resize_right_with_panes_to_the_right_aligned_top_and_bottom_with_panes_above_and_below.snap deleted file mode 100644 index 2c2a64e0..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_right__resize_right_with_panes_to_the_right_aligned_top_and_bottom_with_panes_above_and_below.snap +++ /dev/null @@ -1,45 +0,0 @@ ---- -source: src/tests/integration/resize_right.rs -expression: snapshot_before_quit - ---- -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 $ -────────────────────────────────────────────────────────────┴─────────┬────────────────────────────────────────────────── -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │bbbbbbbbbb -prompt $ │line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -──────────────────────────────────────────────────────────────────────┤bbbbbbbbbb -line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb │line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb │bbbbbbbbbb -line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb │line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb │bbbbbbbbbb -line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb │line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb │bbbbbbbbbb -prompt $ █ │line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -──────────────────────────────────────────────────────────────────────┤bbbbbbbbbb -line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb │line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb │bbbbbbbbbb -prompt $ │prompt $ -────────────────────────────────────────────────────────────┬─────────┴────────────────────────────────────────────────── -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/zellij__tests__integration__resize_right__resize_right_with_panes_to_the_right_aligned_top_with_current_pane.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_right__resize_right_with_panes_to_the_right_aligned_top_with_current_pane.snap deleted file mode 100644 index 24411c3e..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_right__resize_right_with_panes_to_the_right_aligned_top_with_current_pane.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/resize_right.rs -expression: snapshot_before_quit - ---- -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 │line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb │bbbbbbbbbb -line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb │line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb │bbbbbbbbbb -line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb │line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb │bbbbbbbbbb -line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb │line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb │bbbbbbbbbb -prompt $ █ │prompt $ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__resize_up__cannot_resize_up_when_pane_above_is_at_minimum_height.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_up__cannot_resize_up_when_pane_above_is_at_minimum_height.snap deleted file mode 100644 index 5b09c7bd..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_up__cannot_resize_up_when_pane_above_is_at_minimum_height.snap +++ /dev/null @@ -1,12 +0,0 @@ ---- -source: src/tests/integration/resize_up.rs -expression: snapshot_before_quit - ---- -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ -───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ █ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__resize_up__resize_up_with_multiple_panes_above.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_up__resize_up_with_multiple_panes_above.snap deleted file mode 100644 index cf184ecf..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_up__resize_up_with_multiple_panes_above.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/resize_up.rs -expression: snapshot_before_quit - ---- -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 $ -────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────── -line10-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line11-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line12-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ █ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__resize_up__resize_up_with_pane_above.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_up__resize_up_with_pane_above.snap deleted file mode 100644 index 877beb41..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_up__resize_up_with_pane_above.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/resize_up.rs -expression: snapshot_before_quit - ---- -line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ -───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── -line10-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line11-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line12-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ █ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__resize_up__resize_up_with_pane_below.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_up__resize_up_with_pane_below.snap deleted file mode 100644 index 676082c1..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_up__resize_up_with_pane_below.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/resize_up.rs -expression: snapshot_before_quit - ---- -line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ █ -───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── -line10-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line11-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line12-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__resize_up__resize_up_with_panes_above_aligned_left_and_right_with_current_pane.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_up__resize_up_with_panes_above_aligned_left_and_right_with_current_pane.snap deleted file mode 100644 index 24d805db..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_up__resize_up_with_panes_above_aligned_left_and_right_with_current_pane.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/resize_up.rs -expression: snapshot_before_quit - ---- -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line11-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line17-bbbbbbbbbbbbbbbbbbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbb -a │bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line13-bbbbbbbbbbbbbbbbbbbbbb -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line18-bbbbbbbbbbbbbbbbbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbb -a │line19-bbbbbbbbbbbbbbbbbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbb -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│prompt $ │line18-bbbbbbbbbbbbbbbbbbbbbb -a ├──────────────────────────────┤line19-bbbbbbbbbbbbbbbbbbbbbb -prompt $ │line10-bbbbbbbbbbbbbbbbbbbbbbb│prompt $ -────────────────────────────────────────────────────────────┤line11-bbbbbbbbbbbbbbbbbbbbbbb├───────────────────────────── -line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbb -line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line13-bbbbbbbbbbbbbbbbbbbbbbb│line13-bbbbbbbbbbbbbbbbbbbbbb -line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbb -line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbb -line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbb -line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbb -line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbb -line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line19-bbbbbbbbbbbbbbbbbbbbbbb│line19-bbbbbbbbbbbbbbbbbbbbbb -prompt $ │prompt $ █ │prompt $ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__resize_up__resize_up_with_panes_above_aligned_left_and_right_with_panes_to_the_left_and_right.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_up__resize_up_with_panes_above_aligned_left_and_right_with_panes_to_the_left_and_right.snap deleted file mode 100644 index aa571254..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_up__resize_up_with_panes_above_aligned_left_and_right_with_panes_to_the_left_and_right.snap +++ /dev/null @@ -1,45 +0,0 @@ ---- -source: src/tests/integration/resize_up.rs -expression: snapshot_before_quit - ---- -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line3-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line1-bbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line4-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line2-bbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line5-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line3-bbbbbbbbbbbbbbbbbbbbbbb -a │line6-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line4-bbbbbbbbbbbbbbbbbbbbbbb -line17-aaaaaaaaaaaaaaaaaaaaaaa│line7-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line5-bbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line8-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line6-bbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line9-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line7-bbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line10-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line8-bbbbbbbbbbbbbbbbbbbbbbb -a │line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line9-bbbbbbbbbbbbbbbbbbbbbbb -line18-aaaaaaaaaaaaaaaaaaaaaaa│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line10-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line11-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line13-bbbbbbbbbbbbbbbbbbbbbb -a │line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbb -line19-aaaaaaaaaaaaaaaaaaaaaaa│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│prompt $ │line18-bbbbbbbbbbbbbbbbbbbbbb -a ├──────────┬──────────────────────────────────┬──────────────┤line19-bbbbbbbbbbbbbbbbbbbbbb -prompt $ │bbbbbbbbbb│line1-bbbbbbbbbbbbbbbbbbbbbbb │line1-bbbbbbbb│prompt $ -──────────────────────────────┤bbbbbbbbbb│line2-bbbbbbbbbbbbbbbbbbbbbbb │line2-bbbbbbbb├───────────────────────────── -line2-bbbbbbbbbbbbbbbbbbbbbbbb│line17-bbb│line3-bbbbbbbbbbbbbbbbbbbbbbb │line3-bbbbbbbb│line2-bbbbbbbbbbbbbbbbbbbbbbb -line3-bbbbbbbbbbbbbbbbbbbbbbbb│bbbbbbbbbb│line4-bbbbbbbbbbbbbbbbbbbbbbb │line4-bbbbbbbb│line3-bbbbbbbbbbbbbbbbbbbbbbb -line4-bbbbbbbbbbbbbbbbbbbbbbbb│bbbbbbbbbb│line5-bbbbbbbbbbbbbbbbbbbbbbb │line5-bbbbbbbb│line4-bbbbbbbbbbbbbbbbbbbbbbb -line5-bbbbbbbbbbbbbbbbbbbbbbbb│bbbbbbbbbb│line6-bbbbbbbbbbbbbbbbbbbbbbb │line6-bbbbbbbb│line5-bbbbbbbbbbbbbbbbbbbbbbb -line6-bbbbbbbbbbbbbbbbbbbbbbbb│bbbbbbbbbb│line7-bbbbbbbbbbbbbbbbbbbbbbb │line7-bbbbbbbb│line6-bbbbbbbbbbbbbbbbbbbbbbb -line7-bbbbbbbbbbbbbbbbbbbbbbbb│bbbbbbbbbb│line8-bbbbbbbbbbbbbbbbbbbbbbb │line8-bbbbbbbb│line7-bbbbbbbbbbbbbbbbbbbbbbb -line8-bbbbbbbbbbbbbbbbbbbbbbbb│line18-bbb│line9-bbbbbbbbbbbbbbbbbbbbbbb │line9-bbbbbbbb│line8-bbbbbbbbbbbbbbbbbbbbbbb -line9-bbbbbbbbbbbbbbbbbbbbbbbb│bbbbbbbbbb│line10-bbbbbbbbbbbbbbbbbbbbbb │line10-bbbbbbb│line9-bbbbbbbbbbbbbbbbbbbbbbb -line10-bbbbbbbbbbbbbbbbbbbbbbb│bbbbbbbbbb│line11-bbbbbbbbbbbbbbbbbbbbbb │line11-bbbbbbb│line10-bbbbbbbbbbbbbbbbbbbbbb -line11-bbbbbbbbbbbbbbbbbbbbbbb│bbbbbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbb │line12-bbbbbbb│line11-bbbbbbbbbbbbbbbbbbbbbb -line12-bbbbbbbbbbbbbbbbbbbbbbb│bbbbbbbbbb│line13-bbbbbbbbbbbbbbbbbbbbbb │line13-bbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbb -line13-bbbbbbbbbbbbbbbbbbbbbbb│bbbbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbb │line14-bbbbbbb│line13-bbbbbbbbbbbbbbbbbbbbbb -line14-bbbbbbbbbbbbbbbbbbbbbbb│line19-bbb│line15-bbbbbbbbbbbbbbbbbbbbbb │line15-bbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbb -line15-bbbbbbbbbbbbbbbbbbbbbbb│bbbbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbb │line16-bbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbb -line16-bbbbbbbbbbbbbbbbbbbbbbb│bbbbbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbb │line17-bbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbb -line17-bbbbbbbbbbbbbbbbbbbbbbb│bbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbb │line18-bbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbb -line18-bbbbbbbbbbbbbbbbbbbbbbb│bbbbbbbbbb│line19-bbbbbbbbbbbbbbbbbbbbbb │line19-bbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbb -line19-bbbbbbbbbbbbbbbbbbbbbbb│bbbbbbbbbb│prompt $ █ │prompt $ │line19-bbbbbbbbbbbbbbbbbbbbbb -prompt $ │prompt $ │ │ │prompt $ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__resize_up__resize_up_with_panes_above_aligned_left_with_current_pane.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_up__resize_up_with_panes_above_aligned_left_with_current_pane.snap deleted file mode 100644 index 463b225f..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_up__resize_up_with_panes_above_aligned_left_with_current_pane.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/resize_up.rs -expression: snapshot_before_quit - ---- -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -a │line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -a │line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│prompt $ -a ├──────────────────────────────────────────────────────────── -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/zellij__tests__integration__resize_up__resize_up_with_panes_above_aligned_right_with_current_pane.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_up__resize_up_with_panes_above_aligned_right_with_current_pane.snap deleted file mode 100644 index dfe97594..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_up__resize_up_with_panes_above_aligned_right_with_current_pane.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/resize_up.rs -expression: snapshot_before_quit - ---- -a │line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -a │line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -a │line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -prompt $ │line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -────────────────────────────────────────────────────────────┤line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line10-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│prompt $ -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/zellij__tests__integration__resize_up__resize_up_with_panes_above_and_below.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_up__resize_up_with_panes_above_and_below.snap deleted file mode 100644 index 471fe924..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_up__resize_up_with_panes_above_and_below.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/resize_up.rs -expression: snapshot_before_quit - ---- -line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ -───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ █ -───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__resize_up__resize_up_with_panes_below_aligned_left_and_right_with_current_pane.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_up__resize_up_with_panes_below_aligned_left_and_right_with_current_pane.snap deleted file mode 100644 index d2ba58b3..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_up__resize_up_with_panes_below_aligned_left_and_right_with_current_pane.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/resize_up.rs -expression: snapshot_before_quit - ---- -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line11-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line17-bbbbbbbbbbbbbbbbbbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbb -a │bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line13-bbbbbbbbbbbbbbbbbbbbbb -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line18-bbbbbbbbbbbbbbbbbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbb -a │line19-bbbbbbbbbbbbbbbbbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbb -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│prompt $ █ │line18-bbbbbbbbbbbbbbbbbbbbbb -a ├──────────────────────────────┤line19-bbbbbbbbbbbbbbbbbbbbbb -prompt $ │line10-bbbbbbbbbbbbbbbbbbbbbbb│prompt $ -────────────────────────────────────────────────────────────┤line11-bbbbbbbbbbbbbbbbbbbbbbb├───────────────────────────── -line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbb -line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line13-bbbbbbbbbbbbbbbbbbbbbbb│line13-bbbbbbbbbbbbbbbbbbbbbb -line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbb -line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbb -line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbb -line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbb -line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbb -line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line19-bbbbbbbbbbbbbbbbbbbbbbb│line19-bbbbbbbbbbbbbbbbbbbbbb -prompt $ │prompt $ │prompt $ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__resize_up__resize_up_with_panes_below_aligned_left_and_right_with_to_the_left_and_right.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_up__resize_up_with_panes_below_aligned_left_and_right_with_to_the_left_and_right.snap deleted file mode 100644 index dfa9283b..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_up__resize_up_with_panes_below_aligned_left_and_right_with_to_the_left_and_right.snap +++ /dev/null @@ -1,45 +0,0 @@ ---- -source: src/tests/integration/resize_up.rs -expression: snapshot_before_quit - ---- -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbb│line3-bbbbbbbbbbbbbbbbbbbbbbb │line3-bbbbbbbb│line1-bbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbb│line4-bbbbbbbbbbbbbbbbbbbbbbb │line4-bbbbbbbb│line2-bbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbb│line5-bbbbbbbbbbbbbbbbbbbbbbb │line5-bbbbbbbb│line3-bbbbbbbbbbbbbbbbbbbbbbb -a │bbbbbbbbbb│line6-bbbbbbbbbbbbbbbbbbbbbbb │line6-bbbbbbbb│line4-bbbbbbbbbbbbbbbbbbbbbbb -line17-aaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbb│line7-bbbbbbbbbbbbbbbbbbbbbbb │line7-bbbbbbbb│line5-bbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line18-bbb│line8-bbbbbbbbbbbbbbbbbbbbbbb │line8-bbbbbbbb│line6-bbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbb│line9-bbbbbbbbbbbbbbbbbbbbbbb │line9-bbbbbbbb│line7-bbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbb│line10-bbbbbbbbbbbbbbbbbbbbbb │line10-bbbbbbb│line8-bbbbbbbbbbbbbbbbbbbbbbb -a │bbbbbbbbbb│line11-bbbbbbbbbbbbbbbbbbbbbb │line11-bbbbbbb│line9-bbbbbbbbbbbbbbbbbbbbbbb -line18-aaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbb │line12-bbbbbbb│line10-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbb│line13-bbbbbbbbbbbbbbbbbbbbbb │line13-bbbbbbb│line11-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line19-bbb│line14-bbbbbbbbbbbbbbbbbbbbbb │line14-bbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbb │line15-bbbbbbb│line13-bbbbbbbbbbbbbbbbbbbbbb -a │bbbbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbb │line16-bbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbb -line19-aaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbb │line17-bbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbb │line18-bbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│bbbbbbbbbb│line19-bbbbbbbbbbbbbbbbbbbbbb │line19-bbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│prompt $ │prompt $ █ │prompt $ │line18-bbbbbbbbbbbbbbbbbbbbbb -a ├──────────┴──────────────────────────────────┴──────────────┤line19-bbbbbbbbbbbbbbbbbbbbbb -prompt $ │line1-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│prompt $ -──────────────────────────────┤line2-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb├───────────────────────────── -line2-bbbbbbbbbbbbbbbbbbbbbbbb│line3-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line2-bbbbbbbbbbbbbbbbbbbbbbb -line3-bbbbbbbbbbbbbbbbbbbbbbbb│line4-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line3-bbbbbbbbbbbbbbbbbbbbbbb -line4-bbbbbbbbbbbbbbbbbbbbbbbb│line5-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line4-bbbbbbbbbbbbbbbbbbbbbbb -line5-bbbbbbbbbbbbbbbbbbbbbbbb│line6-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line5-bbbbbbbbbbbbbbbbbbbbbbb -line6-bbbbbbbbbbbbbbbbbbbbbbbb│line7-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line6-bbbbbbbbbbbbbbbbbbbbbbb -line7-bbbbbbbbbbbbbbbbbbbbbbbb│line8-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line7-bbbbbbbbbbbbbbbbbbbbbbb -line8-bbbbbbbbbbbbbbbbbbbbbbbb│line9-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line8-bbbbbbbbbbbbbbbbbbbbbbb -line9-bbbbbbbbbbbbbbbbbbbbbbbb│line10-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line9-bbbbbbbbbbbbbbbbbbbbbbb -line10-bbbbbbbbbbbbbbbbbbbbbbb│line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line10-bbbbbbbbbbbbbbbbbbbbbb -line11-bbbbbbbbbbbbbbbbbbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line11-bbbbbbbbbbbbbbbbbbbbbb -line12-bbbbbbbbbbbbbbbbbbbbbbb│line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbb -line13-bbbbbbbbbbbbbbbbbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line13-bbbbbbbbbbbbbbbbbbbbbb -line14-bbbbbbbbbbbbbbbbbbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbb -line15-bbbbbbbbbbbbbbbbbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbb -line16-bbbbbbbbbbbbbbbbbbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbb -line17-bbbbbbbbbbbbbbbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbb -line18-bbbbbbbbbbbbbbbbbbbbbbb│line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbb -line19-bbbbbbbbbbbbbbbbbbbbbbb│prompt $ │line19-bbbbbbbbbbbbbbbbbbbbbb -prompt $ │ │prompt $ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__resize_up__resize_up_with_panes_below_aligned_left_with_current_pane.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_up__resize_up_with_panes_below_aligned_left_with_current_pane.snap deleted file mode 100644 index 3e41290c..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_up__resize_up_with_panes_below_aligned_left_with_current_pane.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/resize_up.rs -expression: snapshot_before_quit - ---- -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -a │line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -a │line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│prompt $ █ -a ├──────────────────────────────────────────────────────────── -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/zellij__tests__integration__resize_up__resize_up_with_panes_below_aligned_right_with_current_pane.snap b/src/tests/integration/snapshots/zellij__tests__integration__resize_up__resize_up_with_panes_below_aligned_right_with_current_pane.snap deleted file mode 100644 index fb31ae4b..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__resize_up__resize_up_with_panes_below_aligned_right_with_current_pane.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/resize_up.rs -expression: snapshot_before_quit - ---- -a │line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -a │line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -a │line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -prompt $ █ │line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -────────────────────────────────────────────────────────────┤line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line10-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│prompt $ -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/zellij__tests__integration__tabs__close_last_pane_in_a_tab.snap b/src/tests/integration/snapshots/zellij__tests__integration__tabs__close_last_pane_in_a_tab.snap deleted file mode 100644 index 5196e5ca..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__tabs__close_last_pane_in_a_tab.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/tabs.rs -expression: snapshot_before_quit - ---- -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 $ █ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__tabs__close_tab.snap b/src/tests/integration/snapshots/zellij__tests__integration__tabs__close_tab.snap deleted file mode 100644 index 24ba5565..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__tabs__close_tab.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/tabs.rs -expression: snapshot_before_quit - ---- -line11-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line12-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ -───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── -line12-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ █ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__tabs__close_the_middle_tab.snap b/src/tests/integration/snapshots/zellij__tests__integration__tabs__close_the_middle_tab.snap deleted file mode 100644 index 5196e5ca..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__tabs__close_the_middle_tab.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/tabs.rs -expression: snapshot_before_quit - ---- -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 $ █ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__tabs__close_the_tab_that_has_a_pane_in_fullscreen.snap b/src/tests/integration/snapshots/zellij__tests__integration__tabs__close_the_tab_that_has_a_pane_in_fullscreen.snap deleted file mode 100644 index 24ba5565..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__tabs__close_the_tab_that_has_a_pane_in_fullscreen.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/tabs.rs -expression: snapshot_before_quit - ---- -line11-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line12-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ -───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── -line12-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ █ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__tabs__closing_last_tab_exits_the_app.snap b/src/tests/integration/snapshots/zellij__tests__integration__tabs__closing_last_tab_exits_the_app.snap deleted file mode 100644 index 24ba5565..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__tabs__closing_last_tab_exits_the_app.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/tabs.rs -expression: snapshot_before_quit - ---- -line11-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line12-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ -───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── -line12-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ █ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__tabs__open_new_tab.snap b/src/tests/integration/snapshots/zellij__tests__integration__tabs__open_new_tab.snap deleted file mode 100644 index 5196e5ca..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__tabs__open_new_tab.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/tabs.rs -expression: snapshot_before_quit - ---- -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 $ █ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__tabs__switch_to_next_tab.snap b/src/tests/integration/snapshots/zellij__tests__integration__tabs__switch_to_next_tab.snap deleted file mode 100644 index 24ba5565..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__tabs__switch_to_next_tab.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/tabs.rs -expression: snapshot_before_quit - ---- -line11-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line12-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ -───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── -line12-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ █ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__tabs__switch_to_prev_tab.snap b/src/tests/integration/snapshots/zellij__tests__integration__tabs__switch_to_prev_tab.snap deleted file mode 100644 index 24ba5565..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__tabs__switch_to_prev_tab.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/tabs.rs -expression: snapshot_before_quit - ---- -line11-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line12-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ -───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── -line12-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ █ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__terminal_window_resize__window_height_increase_with_one_pane.snap b/src/tests/integration/snapshots/zellij__tests__integration__terminal_window_resize__window_height_increase_with_one_pane.snap deleted file mode 100644 index 2b8efe26..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__terminal_window_resize__window_height_increase_with_one_pane.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/terminal_window_resize.rs -expression: snapshot_before_quit - ---- -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 - █ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__terminal_window_resize__window_width_and_height_decrease_with_one_pane.snap b/src/tests/integration/snapshots/zellij__tests__integration__terminal_window_resize__window_width_and_height_decrease_with_one_pane.snap deleted file mode 100644 index 55f32b5d..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__terminal_window_resize__window_width_and_height_decrease_with_one_pane.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/terminal_window_resize.rs -expression: snapshot_before_quit - ---- -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ █ - - - - - - - - - - diff --git a/src/tests/integration/snapshots/zellij__tests__integration__terminal_window_resize__window_width_decrease_with_one_pane.snap b/src/tests/integration/snapshots/zellij__tests__integration__terminal_window_resize__window_width_decrease_with_one_pane.snap deleted file mode 100644 index 2f72d22a..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__terminal_window_resize__window_width_decrease_with_one_pane.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/terminal_window_resize.rs -expression: snapshot_before_quit - ---- -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line11-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line12-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -prompt $ █ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__terminal_window_resize__window_width_increase_with_one_pane.snap b/src/tests/integration/snapshots/zellij__tests__integration__terminal_window_resize__window_width_increase_with_one_pane.snap deleted file mode 100644 index 95cc6c36..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__terminal_window_resize__window_width_increase_with_one_pane.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/terminal_window_resize.rs -expression: snapshot_before_quit - ---- -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 $ - █ diff --git a/src/tests/integration/snapshots/zellij__tests__integration__toggle_fullscreen__adding_new_terminal_in_fullscreen.snap b/src/tests/integration/snapshots/zellij__tests__integration__toggle_fullscreen__adding_new_terminal_in_fullscreen.snap deleted file mode 100644 index 74cf9c82..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__toggle_fullscreen__adding_new_terminal_in_fullscreen.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/toggle_fullscreen.rs -expression: snapshot_before_quit - ---- -a │line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -a │line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -a │line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -a │prompt $ -line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa├──────────────────────────────────────────────────────────── -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/zellij__tests__integration__toggle_fullscreen__move_focus_is_disabled_in_fullscreen.snap b/src/tests/integration/snapshots/zellij__tests__integration__toggle_fullscreen__move_focus_is_disabled_in_fullscreen.snap deleted file mode 100644 index be8af70c..00000000 --- a/src/tests/integration/snapshots/zellij__tests__integration__toggle_fullscreen__move_focus_is_disabled_in_fullscreen.snap +++ /dev/null @@ -1,25 +0,0 @@ ---- -source: src/tests/integration/toggle_fullscreen.rs -expression: snapshot_before_quit - ---- -line1-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line2-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line3-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line4-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line5-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line6-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line7-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line8-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -line9-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -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/tabs.rs b/src/tests/integration/tabs.rs deleted file mode 100644 index c520eec7..00000000 --- a/src/tests/integration/tabs.rs +++ /dev/null @@ -1,326 +0,0 @@ -use insta::assert_snapshot; - -use crate::tests::fakes::FakeInputOutput; -use crate::tests::start; -use crate::tests::utils::commands::CLOSE_PANE_IN_PANE_MODE; -use crate::tests::utils::{get_next_to_last_snapshot, get_output_frame_snapshots}; -use crate::CliArgs; - -use crate::tests::utils::commands::{ - CLOSE_TAB_IN_TAB_MODE, NEW_TAB_IN_TAB_MODE, PANE_MODE, QUIT, SPLIT_DOWN_IN_PANE_MODE, - SWITCH_NEXT_TAB_IN_TAB_MODE, SWITCH_PREV_TAB_IN_TAB_MODE, TAB_MODE, - TOGGLE_ACTIVE_TERMINAL_FULLSCREEN_IN_PANE_MODE, -}; -use zellij_utils::input::config::Config; -use zellij_utils::pane_size::PositionAndSize; - -fn get_fake_os_input(fake_win_size: &PositionAndSize) -> FakeInputOutput { - FakeInputOutput::new(*fake_win_size) -} - -#[test] -pub fn open_new_tab() { - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &TAB_MODE, - &NEW_TAB_IN_TAB_MODE, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn switch_to_prev_tab() { - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &TAB_MODE, - &NEW_TAB_IN_TAB_MODE, - &SWITCH_PREV_TAB_IN_TAB_MODE, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn switch_to_next_tab() { - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &TAB_MODE, - &NEW_TAB_IN_TAB_MODE, - &SWITCH_NEXT_TAB_IN_TAB_MODE, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn close_tab() { - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &TAB_MODE, - &NEW_TAB_IN_TAB_MODE, - &CLOSE_TAB_IN_TAB_MODE, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn close_last_pane_in_a_tab() { - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &TAB_MODE, - &NEW_TAB_IN_TAB_MODE, - &PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &CLOSE_PANE_IN_PANE_MODE, - &CLOSE_PANE_IN_PANE_MODE, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn close_the_middle_tab() { - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &TAB_MODE, - &NEW_TAB_IN_TAB_MODE, - &PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &TAB_MODE, - &NEW_TAB_IN_TAB_MODE, - &SWITCH_PREV_TAB_IN_TAB_MODE, - &CLOSE_TAB_IN_TAB_MODE, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn close_the_tab_that_has_a_pane_in_fullscreen() { - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &TAB_MODE, - &NEW_TAB_IN_TAB_MODE, - &PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &TAB_MODE, - &NEW_TAB_IN_TAB_MODE, - &SWITCH_PREV_TAB_IN_TAB_MODE, - &PANE_MODE, - &TOGGLE_ACTIVE_TERMINAL_FULLSCREEN_IN_PANE_MODE, - &TAB_MODE, - &CLOSE_TAB_IN_TAB_MODE, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn closing_last_tab_exits_the_app() { - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &TAB_MODE, - &NEW_TAB_IN_TAB_MODE, - &CLOSE_TAB_IN_TAB_MODE, - &CLOSE_TAB_IN_TAB_MODE, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} diff --git a/src/tests/integration/terminal_window_resize.rs b/src/tests/integration/terminal_window_resize.rs deleted file mode 100644 index 8793071f..00000000 --- a/src/tests/integration/terminal_window_resize.rs +++ /dev/null @@ -1,161 +0,0 @@ -use ::insta::assert_snapshot; -use zellij_utils::pane_size::PositionAndSize; - -use crate::tests::fakes::FakeInputOutput; -use crate::tests::start; -use crate::tests::utils::commands::QUIT; -use crate::tests::utils::{get_next_to_last_snapshot, get_output_frame_snapshots}; -use crate::CliArgs; -use zellij_utils::input::config::Config; - -fn get_fake_os_input(fake_win_size: &PositionAndSize) -> FakeInputOutput { - FakeInputOutput::new(fake_win_size.clone()) -} - -#[test] -pub fn window_width_decrease_with_one_pane() { - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[&QUIT]); - fake_input_output.add_sigwinch_event(PositionAndSize { - cols: 90, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }); - let opts = CliArgs::default(); - start( - Box::new(fake_input_output.clone()), - opts, - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn window_width_increase_with_one_pane() { - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[&QUIT]); - fake_input_output.add_sigwinch_event(PositionAndSize { - cols: 141, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }); - let opts = CliArgs::default(); - start( - Box::new(fake_input_output.clone()), - opts, - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn window_height_increase_with_one_pane() { - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[&QUIT]); - fake_input_output.add_sigwinch_event(PositionAndSize { - cols: 121, - rows: 30, - x: 0, - y: 0, - ..Default::default() - }); - let opts = CliArgs::default(); - start( - Box::new(fake_input_output.clone()), - opts, - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn window_width_and_height_decrease_with_one_pane() { - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[&QUIT]); - fake_input_output.add_sigwinch_event(PositionAndSize { - cols: 90, - rows: 10, - x: 0, - y: 0, - ..Default::default() - }); - let opts = CliArgs::default(); - start( - Box::new(fake_input_output.clone()), - opts, - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} diff --git a/src/tests/integration/toggle_fullscreen.rs b/src/tests/integration/toggle_fullscreen.rs deleted file mode 100644 index af92920a..00000000 --- a/src/tests/integration/toggle_fullscreen.rs +++ /dev/null @@ -1,89 +0,0 @@ -use insta::assert_snapshot; - -use crate::tests::fakes::FakeInputOutput; -use crate::tests::start; -use crate::tests::utils::{get_next_to_last_snapshot, get_output_frame_snapshots}; -use crate::CliArgs; -use zellij_utils::pane_size::PositionAndSize; - -use crate::tests::utils::commands::{ - MOVE_FOCUS_IN_PANE_MODE, PANE_MODE, QUIT, SPLIT_DOWN_IN_PANE_MODE, SPLIT_RIGHT_IN_PANE_MODE, - TOGGLE_ACTIVE_TERMINAL_FULLSCREEN_IN_PANE_MODE, -}; -use zellij_utils::input::config::Config; - -fn get_fake_os_input(fake_win_size: &PositionAndSize) -> FakeInputOutput { - FakeInputOutput::new(*fake_win_size) -} - -#[test] -pub fn adding_new_terminal_in_fullscreen() { - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &TOGGLE_ACTIVE_TERMINAL_FULLSCREEN_IN_PANE_MODE, - &SPLIT_DOWN_IN_PANE_MODE, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} - -#[test] -pub fn move_focus_is_disabled_in_fullscreen() { - let fake_win_size = PositionAndSize { - cols: 121, - rows: 20, - x: 0, - y: 0, - ..Default::default() - }; - let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[ - &PANE_MODE, - &SPLIT_RIGHT_IN_PANE_MODE, - &TOGGLE_ACTIVE_TERMINAL_FULLSCREEN_IN_PANE_MODE, - &MOVE_FOCUS_IN_PANE_MODE, - &QUIT, - ]); - start( - Box::new(fake_input_output.clone()), - CliArgs::default(), - Box::new(fake_input_output.clone()), - Config::default(), - None, - ); - - let output_frames = fake_input_output - .stdout_writer - .output_frames - .lock() - .unwrap(); - let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); - let snapshot_before_quit = - get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); - assert_snapshot!(snapshot_before_quit); -} diff --git a/src/tests/mod.rs b/src/tests/mod.rs index bd590779..08734975 100644 --- a/src/tests/mod.rs +++ b/src/tests/mod.rs @@ -1,37 +1 @@ pub mod e2e; -pub mod fakes; -pub mod integration; -pub mod possible_tty_inputs; -pub mod tty_inputs; -pub mod utils; - -use std::path::PathBuf; -use zellij_client::{os_input_output::ClientOsApi, start_client, ClientInfo}; -use zellij_server::{os_input_output::ServerOsApi, start_server}; -use zellij_utils::{ - cli::CliArgs, - input::{config::Config, layout::Layout}, -}; - -pub fn start( - client_os_input: Box, - opts: CliArgs, - server_os_input: Box, - config: Config, - layout: Option, -) { - let server_thread = std::thread::Builder::new() - .name("server_thread".into()) - .spawn(move || { - start_server(server_os_input, PathBuf::from("")); - }) - .unwrap(); - start_client( - client_os_input, - opts, - config, - ClientInfo::New("".into()), - layout, - ); - let _ = server_thread.join(); -} diff --git a/src/tests/possible_tty_inputs.rs b/src/tests/possible_tty_inputs.rs deleted file mode 100644 index 30668360..00000000 --- a/src/tests/possible_tty_inputs.rs +++ /dev/null @@ -1,103 +0,0 @@ -use crate::tests::tty_inputs::{ - COL_10, COL_121, COL_14, COL_141, COL_15, COL_19, COL_20, COL_24, COL_25, COL_29, COL_30, - COL_34, COL_39, COL_4, COL_40, COL_47, COL_50, COL_60, COL_70, COL_8, COL_80, COL_9, COL_90, - COL_96, -}; -use std::collections::HashMap; -use std::fs; -use std::path::PathBuf; - -#[derive(Clone, Debug)] -pub struct Bytes { - pub content: Vec, - pub read_position: usize, -} - -impl Bytes { - pub fn new() -> Self { - Bytes { - content: vec![], - read_position: 0, - } - } - pub fn from_file_in_fixtures(file_name: &str) -> Self { - let mut path_to_file = PathBuf::new(); - path_to_file.push("src"); - path_to_file.push("tests"); - path_to_file.push("fixtures"); - path_to_file.push(file_name); - let content = fs::read(path_to_file) - .unwrap_or_else(|_| panic!("could not read fixture {:?}", &file_name)); - Bytes { - content, - read_position: 0, - } - } - pub fn content_from_str(mut self, content: &[&'static str]) -> Self { - let mut content_as_bytes = vec![]; - for line in content { - for char in line.chars() { - content_as_bytes.push(char as u8); - } - } - self.content = content_as_bytes; - self - } - pub fn set_read_position(&mut self, read_position: usize) { - self.read_position = read_position; - } -} - -pub fn get_possible_tty_inputs() -> HashMap { - // the key is the column count for this terminal input - let mut possible_inputs = HashMap::new(); - let col_4_bytes = Bytes::new().content_from_str(&COL_4); - let col_8_bytes = Bytes::new().content_from_str(&COL_8); - let col_9_bytes = Bytes::new().content_from_str(&COL_9); - let col_10_bytes = Bytes::new().content_from_str(&COL_10); - let col_14_bytes = Bytes::new().content_from_str(&COL_14); - let col_15_bytes = Bytes::new().content_from_str(&COL_15); - let col_19_bytes = Bytes::new().content_from_str(&COL_19); - let col_20_bytes = Bytes::new().content_from_str(&COL_20); - let col_24_bytes = Bytes::new().content_from_str(&COL_24); - let col_25_bytes = Bytes::new().content_from_str(&COL_25); - let col_29_bytes = Bytes::new().content_from_str(&COL_29); - let col_30_bytes = Bytes::new().content_from_str(&COL_30); - let col_34_bytes = Bytes::new().content_from_str(&COL_34); - let col_39_bytes = Bytes::new().content_from_str(&COL_39); - let col_40_bytes = Bytes::new().content_from_str(&COL_40); - let col_47_bytes = Bytes::new().content_from_str(&COL_47); - let col_50_bytes = Bytes::new().content_from_str(&COL_50); - let col_60_bytes = Bytes::new().content_from_str(&COL_60); - let col_70_bytes = Bytes::new().content_from_str(&COL_70); - let col_80_bytes = Bytes::new().content_from_str(&COL_80); - let col_90_bytes = Bytes::new().content_from_str(&COL_90); - let col_96_bytes = Bytes::new().content_from_str(&COL_96); - let col_121_bytes = Bytes::new().content_from_str(&COL_121); - let col_141_bytes = Bytes::new().content_from_str(&COL_141); - possible_inputs.insert(4, col_4_bytes); - possible_inputs.insert(8, col_8_bytes); - possible_inputs.insert(9, col_9_bytes); - possible_inputs.insert(10, col_10_bytes); - possible_inputs.insert(14, col_14_bytes); - possible_inputs.insert(15, col_15_bytes); - possible_inputs.insert(19, col_19_bytes); - possible_inputs.insert(20, col_20_bytes); - possible_inputs.insert(24, col_24_bytes); - possible_inputs.insert(25, col_25_bytes); - possible_inputs.insert(29, col_29_bytes); - possible_inputs.insert(30, col_30_bytes); - possible_inputs.insert(34, col_34_bytes); - possible_inputs.insert(39, col_39_bytes); - possible_inputs.insert(40, col_40_bytes); - possible_inputs.insert(47, col_47_bytes); - possible_inputs.insert(50, col_50_bytes); - possible_inputs.insert(60, col_60_bytes); - possible_inputs.insert(70, col_70_bytes); - possible_inputs.insert(80, col_80_bytes); - possible_inputs.insert(90, col_90_bytes); - possible_inputs.insert(96, col_96_bytes); - possible_inputs.insert(121, col_121_bytes); - possible_inputs.insert(141, col_141_bytes); - possible_inputs -} diff --git a/src/tests/tty_inputs.rs b/src/tests/tty_inputs.rs deleted file mode 100644 index 43ac8abc..00000000 --- a/src/tests/tty_inputs.rs +++ /dev/null @@ -1,550 +0,0 @@ -pub const COL_141: [&str; 20] = [ - "line1-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r\n", - "line2-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r\n", - "line3-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r\n", - "line4-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r\n", - "line5-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r\n", - "line6-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r\n", - "line7-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r\n", - "line8-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r\n", - "line9-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r\n", - "line10-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r\n", - "line11-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r\n", - "line12-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r\n", - "line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r\n", - "line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r\n", - "line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r\n", - "line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r\n", - "line17-baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r\n", - "line18-baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r\n", - "line19-baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r\n", - "prompt $ ", -]; - -pub const COL_121: [&str; 20] = [ - "line1-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r\n", - "line2-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r\n", - "line3-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r\n", - "line4-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r\n", - "line5-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r\n", - "line6-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r\n", - "line7-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r\n", - "line8-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r\n", - "line9-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r\n", - "line10-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r\n", - "line11-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r\n", - "line12-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r\n", - "line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r\n", - "line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r\n", - "line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r\n", - "line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r\n", - "line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r\n", - "line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r\n", - "line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r\n", - "prompt $ ", -]; - -pub const COL_4: [&str; 20] = [ - "lin1\r\n", - "lin2\r\n", - "lin3\r\n", - "lin4\r\n", - "lin5\r\n", - "lin6\r\n", - "lin7\r\n", - "lin8\r\n", - "lin9\r\n", - "ln10\r\n", - "ln11\r\n", - "ln12\r\n", - "ln13\r\n", - "ln14\r\n", - "ln15\r\n", - "ln16\r\n", - "ln17\r\n", - "ln18\r\n", - "ln19\r\n", - "prompt $ ", -]; - -pub const COL_8: [&str; 20] = [ - "line1-bb\r\n", - "line2-bb\r\n", - "line3-bb\r\n", - "line4-bb\r\n", - "line5-bb\r\n", - "line6-bb\r\n", - "line7-bb\r\n", - "line8-bb\r\n", - "line9-bb\r\n", - "line10-b\r\n", - "line11-b\r\n", - "line12-b\r\n", - "line13-b\r\n", - "line14-b\r\n", - "line15-b\r\n", - "line16-b\r\n", - "line17-b\r\n", - "line18-b\r\n", - "line19-b\r\n", - "prompt $ ", -]; - -pub const COL_9: [&str; 20] = [ - "line1-bbb\r\n", - "line2-bbb\r\n", - "line3-bbb\r\n", - "line4-bbb\r\n", - "line5-bbb\r\n", - "line6-bbb\r\n", - "line7-bbb\r\n", - "line8-bbb\r\n", - "line9-bbb\r\n", - "line10-bb\r\n", - "line11-bb\r\n", - "line12-bb\r\n", - "line13-bb\r\n", - "line14-bb\r\n", - "line15-bb\r\n", - "line16-bb\r\n", - "line17-bb\r\n", - "line18-bb\r\n", - "line19-bb\r\n", - "prompt $ ", -]; - -pub const COL_10: [&str; 20] = [ - "line1-bbbb\r\n", - "line2-bbbb\r\n", - "line3-bbbb\r\n", - "line4-bbbb\r\n", - "line5-bbbb\r\n", - "line6-bbbb\r\n", - "line7-bbbb\r\n", - "line8-bbbb\r\n", - "line9-bbbb\r\n", - "line10-bbb\r\n", - "line11-bbb\r\n", - "line12-bbb\r\n", - "line13-bbb\r\n", - "line14-bbb\r\n", - "line15-bbb\r\n", - "line16-bbb\r\n", - "line17-bbb\r\n", - "line18-bbb\r\n", - "line19-bbb\r\n", - "prompt $ ", -]; - -pub const COL_14: [&str; 20] = [ - "line1-bbbbbbbb\r\n", - "line2-bbbbbbbb\r\n", - "line3-bbbbbbbb\r\n", - "line4-bbbbbbbb\r\n", - "line5-bbbbbbbb\r\n", - "line6-bbbbbbbb\r\n", - "line7-bbbbbbbb\r\n", - "line8-bbbbbbbb\r\n", - "line9-bbbbbbbb\r\n", - "line10-bbbbbbb\r\n", - "line11-bbbbbbb\r\n", - "line12-bbbbbbb\r\n", - "line13-bbbbbbb\r\n", - "line14-bbbbbbb\r\n", - "line15-bbbbbbb\r\n", - "line16-bbbbbbb\r\n", - "line17-bbbbbbb\r\n", - "line18-bbbbbbb\r\n", - "line19-bbbbbbb\r\n", - "prompt $ ", -]; - -pub const COL_15: [&str; 20] = [ - "line1-bbbbbbbbb\r\n", - "line2-bbbbbbbbb\r\n", - "line3-bbbbbbbbb\r\n", - "line4-bbbbbbbbb\r\n", - "line5-bbbbbbbbb\r\n", - "line6-bbbbbbbbb\r\n", - "line7-bbbbbbbbb\r\n", - "line8-bbbbbbbbb\r\n", - "line9-bbbbbbbbb\r\n", - "line10-bbbbbbbb\r\n", - "line11-bbbbbbbb\r\n", - "line12-bbbbbbbb\r\n", - "line13-bbbbbbbb\r\n", - "line14-bbbbbbbb\r\n", - "line15-bbbbbbbb\r\n", - "line16-bbbbbbbb\r\n", - "line17-bbbbbbbb\r\n", - "line18-bbbbbbbb\r\n", - "line19-bbbbbbbb\r\n", - "prompt $ ", -]; - -pub const COL_19: [&str; 20] = [ - "line1-bbbbbbbbbbbbb\r\n", - "line2-bbbbbbbbbbbbb\r\n", - "line3-bbbbbbbbbbbbb\r\n", - "line4-bbbbbbbbbbbbb\r\n", - "line5-bbbbbbbbbbbbb\r\n", - "line6-bbbbbbbbbbbbb\r\n", - "line7-bbbbbbbbbbbbb\r\n", - "line8-bbbbbbbbbbbbb\r\n", - "line9-bbbbbbbbbbbbb\r\n", - "line10-bbbbbbbbbbbb\r\n", - "line11-bbbbbbbbbbbb\r\n", - "line12-bbbbbbbbbbbb\r\n", - "line13-bbbbbbbbbbbb\r\n", - "line14-bbbbbbbbbbbb\r\n", - "line15-bbbbbbbbbbbb\r\n", - "line16-bbbbbbbbbbbb\r\n", - "line17-bbbbbbbbbbbb\r\n", - "line18-bbbbbbbbbbbb\r\n", - "line19-bbbbbbbbbbbb\r\n", - "prompt $ ", -]; - -pub const COL_20: [&str; 20] = [ - "line1-bbbbbbbbbbbbbb\r\n", - "line2-bbbbbbbbbbbbbb\r\n", - "line3-bbbbbbbbbbbbbb\r\n", - "line4-bbbbbbbbbbbbbb\r\n", - "line5-bbbbbbbbbbbbbb\r\n", - "line6-bbbbbbbbbbbbbb\r\n", - "line7-bbbbbbbbbbbbbb\r\n", - "line8-bbbbbbbbbbbbbb\r\n", - "line9-bbbbbbbbbbbbbb\r\n", - "line10-bbbbbbbbbbbbb\r\n", - "line11-bbbbbbbbbbbbb\r\n", - "line12-bbbbbbbbbbbbb\r\n", - "line13-bbbbbbbbbbbbb\r\n", - "line14-bbbbbbbbbbbbb\r\n", - "line15-bbbbbbbbbbbbb\r\n", - "line16-bbbbbbbbbbbbb\r\n", - "line17-bbbbbbbbbbbbb\r\n", - "line18-bbbbbbbbbbbbb\r\n", - "line19-bbbbbbbbbbbbb\r\n", - "prompt $ ", -]; - -pub const COL_24: [&str; 20] = [ - "line1-bbbbbbbbbbbbbbbbbb\r\n", - "line2-bbbbbbbbbbbbbbbbbb\r\n", - "line3-bbbbbbbbbbbbbbbbbb\r\n", - "line4-bbbbbbbbbbbbbbbbbb\r\n", - "line5-bbbbbbbbbbbbbbbbbb\r\n", - "line6-bbbbbbbbbbbbbbbbbb\r\n", - "line7-bbbbbbbbbbbbbbbbbb\r\n", - "line8-bbbbbbbbbbbbbbbbbb\r\n", - "line9-bbbbbbbbbbbbbbbbbb\r\n", - "line10-bbbbbbbbbbbbbbbbb\r\n", - "line11-bbbbbbbbbbbbbbbbb\r\n", - "line12-bbbbbbbbbbbbbbbbb\r\n", - "line13-bbbbbbbbbbbbbbbbb\r\n", - "line14-bbbbbbbbbbbbbbbbb\r\n", - "line15-bbbbbbbbbbbbbbbbb\r\n", - "line16-bbbbbbbbbbbbbbbbb\r\n", - "line17-bbbbbbbbbbbbbbbbb\r\n", - "line18-bbbbbbbbbbbbbbbbb\r\n", - "line19-bbbbbbbbbbbbbbbbb\r\n", - "prompt $ ", -]; - -pub const COL_25: [&str; 20] = [ - "line1-bbbbbbbbbbbbbbbbbbb\r\n", - "line2-bbbbbbbbbbbbbbbbbbb\r\n", - "line3-bbbbbbbbbbbbbbbbbbb\r\n", - "line4-bbbbbbbbbbbbbbbbbbb\r\n", - "line5-bbbbbbbbbbbbbbbbbbb\r\n", - "line6-bbbbbbbbbbbbbbbbbbb\r\n", - "line7-bbbbbbbbbbbbbbbbbbb\r\n", - "line8-bbbbbbbbbbbbbbbbbbb\r\n", - "line9-bbbbbbbbbbbbbbbbbbb\r\n", - "line10-bbbbbbbbbbbbbbbbbb\r\n", - "line11-bbbbbbbbbbbbbbbbbb\r\n", - "line12-bbbbbbbbbbbbbbbbbb\r\n", - "line13-bbbbbbbbbbbbbbbbbb\r\n", - "line14-bbbbbbbbbbbbbbbbbb\r\n", - "line15-bbbbbbbbbbbbbbbbbb\r\n", - "line16-bbbbbbbbbbbbbbbbbb\r\n", - "line17-bbbbbbbbbbbbbbbbbb\r\n", - "line18-bbbbbbbbbbbbbbbbbb\r\n", - "line19-bbbbbbbbbbbbbbbbbb\r\n", - "prompt $ ", -]; -pub const COL_29: [&str; 20] = [ - "line1-bbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line2-bbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line3-bbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line4-bbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line5-bbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line6-bbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line7-bbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line8-bbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line9-bbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line10-bbbbbbbbbbbbbbbbbbbbbb\r\n", - "line11-bbbbbbbbbbbbbbbbbbbbbb\r\n", - "line12-bbbbbbbbbbbbbbbbbbbbbb\r\n", - "line13-bbbbbbbbbbbbbbbbbbbbbb\r\n", - "line14-bbbbbbbbbbbbbbbbbbbbbb\r\n", - "line15-bbbbbbbbbbbbbbbbbbbbbb\r\n", - "line16-bbbbbbbbbbbbbbbbbbbbbb\r\n", - "line17-bbbbbbbbbbbbbbbbbbbbbb\r\n", - "line18-bbbbbbbbbbbbbbbbbbbbbb\r\n", - "line19-bbbbbbbbbbbbbbbbbbbbbb\r\n", - "prompt $ ", -]; - -pub const COL_30: [&str; 20] = [ - "line1-bbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line2-bbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line3-bbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line4-bbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line5-bbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line6-bbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line7-bbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line8-bbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line9-bbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line10-bbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line11-bbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line12-bbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line13-bbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line14-bbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line15-bbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line16-bbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line17-bbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line18-bbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line19-bbbbbbbbbbbbbbbbbbbbbbb\r\n", - "prompt $ ", -]; - -pub const COL_34: [&str; 20] = [ - "line1-bbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line2-bbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line3-bbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line4-bbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line5-bbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line6-bbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line7-bbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line8-bbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line9-bbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line10-bbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line11-bbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line12-bbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line13-bbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line14-bbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line15-bbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line16-bbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line17-bbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line18-bbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line19-bbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "prompt $ ", -]; - -pub const COL_40: [&str; 20] = [ - "line1-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line2-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line3-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line4-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line5-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line6-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line7-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line8-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line9-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line10-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "prompt $ ", -]; - -pub const COL_39: [&str; 20] = [ - "line1-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line2-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line3-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line4-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line5-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line6-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line7-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line8-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line9-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line10-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "prompt $ ", -]; - -pub const COL_47: [&str; 20] = [ - "line1-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line2-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line3-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line4-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line5-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line6-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line7-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line8-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line9-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line10-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "prompt $ ", -]; - -pub const COL_50: [&str; 20] = [ - "line1-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line2-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line3-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line4-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line5-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line6-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line7-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line8-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line9-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line10-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "prompt $ ", -]; - -pub const COL_60: [&str; 20] = [ - "line1-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line2-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line3-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line4-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line5-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line6-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line7-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line8-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line9-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line10-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "prompt $ ", -]; - -pub const COL_70: [&str; 20] = [ - "line1-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line2-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line3-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line4-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line5-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line6-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line7-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line8-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line9-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line10-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "prompt $ ", -]; - -pub const COL_80: [&str; 20] = [ - "line1-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line2-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line3-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line4-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line5-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line6-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line7-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line8-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line9-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line10-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "prompt $ ", -]; - -pub const COL_90: [&str; 20] = [ - "line1-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line2-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line3-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line4-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line5-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line6-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line7-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line8-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line9-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line10-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "prompt $ ", -]; - -pub const COL_96: [&str; 20] = [ - "line1-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line2-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line3-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line4-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line5-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line6-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line7-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line8-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line9-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line10-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r\n", - "prompt $ ", -]; diff --git a/src/tests/utils.rs b/src/tests/utils.rs deleted file mode 100644 index 2058f9df..00000000 --- a/src/tests/utils.rs +++ /dev/null @@ -1,95 +0,0 @@ -use zellij_utils::{vte, zellij_tile}; - -use zellij_server::{panes::TerminalPane, tab::Pane}; -use zellij_tile::data::Palette; -use zellij_utils::pane_size::PositionAndSize; - -pub fn get_output_frame_snapshots( - output_frames: &[Vec], - win_size: &PositionAndSize, -) -> Vec { - let mut vte_parser = vte::Parser::new(); - let main_pid = 0; - let mut terminal_output = TerminalPane::new(main_pid, *win_size, Palette::default()); - - let mut snapshots = vec![]; - for frame in output_frames.iter() { - for byte in frame.iter() { - vte_parser.advance(&mut terminal_output.grid, *byte); - } - let output_lines = terminal_output.read_buffer_as_lines(); - let cursor_coordinates = terminal_output.cursor_coordinates(); - let mut snapshot = String::new(); - for (line_index, line) in output_lines.iter().enumerate() { - for (character_index, terminal_character) in line.iter().enumerate() { - if let Some((cursor_x, cursor_y)) = cursor_coordinates { - if line_index == cursor_y && character_index == cursor_x { - snapshot.push('█'); - continue; - } - } - snapshot.push(terminal_character.character); - } - if line_index != output_lines.len() - 1 { - snapshot.push('\n'); - } - } - snapshots.push(snapshot); - } - snapshots -} - -pub fn get_next_to_last_snapshot(mut snapshots: Vec) -> Option { - if snapshots.len() < 2 { - None - } else { - Some(snapshots.remove(snapshots.len() - 2)) - } -} - -pub mod commands { - pub const QUIT: [u8; 1] = [17]; // ctrl-q - pub const ESC: [u8; 1] = [27]; - pub const ENTER: [u8; 1] = [10]; // char '\n' - pub const LOCK_MODE: [u8; 1] = [7]; // ctrl-g - - pub const MOVE_FOCUS_LEFT_IN_NORMAL_MODE: [u8; 2] = [27, 104]; // alt-h - pub const MOVE_FOCUS_RIGHT_IN_NORMAL_MODE: [u8; 2] = [27, 108]; // alt-l - - pub const PANE_MODE: [u8; 1] = [16]; // ctrl-p - pub const SPAWN_TERMINAL_IN_PANE_MODE: [u8; 1] = [110]; // n - pub const MOVE_FOCUS_IN_PANE_MODE: [u8; 1] = [112]; // p - pub const SPLIT_DOWN_IN_PANE_MODE: [u8; 1] = [100]; // d - pub const SPLIT_RIGHT_IN_PANE_MODE: [u8; 1] = [114]; // r - pub const TOGGLE_ACTIVE_TERMINAL_FULLSCREEN_IN_PANE_MODE: [u8; 1] = [102]; // f - pub const CLOSE_PANE_IN_PANE_MODE: [u8; 1] = [120]; // x - pub const MOVE_FOCUS_DOWN_IN_PANE_MODE: [u8; 1] = [106]; // j - pub const MOVE_FOCUS_UP_IN_PANE_MODE: [u8; 1] = [107]; // k - pub const MOVE_FOCUS_LEFT_IN_PANE_MODE: [u8; 1] = [104]; // h - pub const MOVE_FOCUS_RIGHT_IN_PANE_MODE: [u8; 1] = [108]; // l - - pub const SCROLL_MODE: [u8; 1] = [19]; // ctrl-s - pub const SCROLL_UP_IN_SCROLL_MODE: [u8; 1] = [107]; // k - pub const SCROLL_DOWN_IN_SCROLL_MODE: [u8; 1] = [106]; // j - pub const SCROLL_PAGE_UP_IN_SCROLL_MODE: [u8; 1] = [2]; // ctrl-b - pub const SCROLL_PAGE_DOWN_IN_SCROLL_MODE: [u8; 1] = [6]; // ctrl-f - - pub const RESIZE_MODE: [u8; 1] = [18]; // ctrl-r - pub const RESIZE_DOWN_IN_RESIZE_MODE: [u8; 1] = [106]; // j - pub const RESIZE_UP_IN_RESIZE_MODE: [u8; 1] = [107]; // k - pub const RESIZE_LEFT_IN_RESIZE_MODE: [u8; 1] = [104]; // h - pub const RESIZE_RIGHT_IN_RESIZE_MODE: [u8; 1] = [108]; // l - - pub const TAB_MODE: [u8; 1] = [20]; // ctrl-t - pub const NEW_TAB_IN_TAB_MODE: [u8; 1] = [110]; // n - pub const SWITCH_NEXT_TAB_IN_TAB_MODE: [u8; 1] = [108]; // l - pub const SWITCH_PREV_TAB_IN_TAB_MODE: [u8; 1] = [104]; // h - pub const CLOSE_TAB_IN_TAB_MODE: [u8; 1] = [120]; // x - - pub const SESSION_MODE: [u8; 1] = [15]; // ctrl-o - pub const DETACH_IN_SESSION_MODE: [u8; 1] = [100]; // d - - pub const BRACKETED_PASTE_START: [u8; 6] = [27, 91, 50, 48, 48, 126]; // \u{1b}[200~ - pub const BRACKETED_PASTE_END: [u8; 6] = [27, 91, 50, 48, 49, 126]; // \u{1b}[201 - pub const SLEEP: [u8; 0] = []; -} diff --git a/zellij-client/Cargo.toml b/zellij-client/Cargo.toml index 726bd3a2..5a2e314a 100644 --- a/zellij-client/Cargo.toml +++ b/zellij-client/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zellij-client" -version = "0.14.0" +version = "0.15.0" authors = ["Kunal Mohan "] edition = "2018" description = "The client-side library for Zellij" @@ -9,8 +9,10 @@ license = "MIT" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] +mio = "0.7.11" termbg = "0.2.3" -zellij-utils = { path = "../zellij-utils/", version = "0.14.0" } +zellij-utils = { path = "../zellij-utils/", version = "0.15.0" } + +[dev-dependencies] +insta = "1.6.0" -[features] -test = ["zellij-utils/test"] diff --git a/zellij-client/src/input_handler.rs b/zellij-client/src/input_handler.rs index 46924951..f02b5ad8 100644 --- a/zellij-client/src/input_handler.rs +++ b/zellij-client/src/input_handler.rs @@ -1,6 +1,12 @@ //! Main input logic. -use zellij_utils::{termion, zellij_tile}; +use zellij_utils::{ + input::{ + mouse::{MouseButton, MouseEvent}, + options::Options, + }, + termion, zellij_tile, +}; use crate::{os_input_output::ClientOsApi, ClientInstruction, CommandIsExecuting}; use zellij_utils::{ @@ -20,6 +26,7 @@ struct InputHandler { mode: InputMode, os_input: Box, config: Config, + options: Options, command_is_executing: CommandIsExecuting, send_client_instructions: SenderWithContext, should_exit: bool, @@ -32,6 +39,7 @@ impl InputHandler { os_input: Box, command_is_executing: CommandIsExecuting, config: Config, + options: Options, send_client_instructions: SenderWithContext, mode: InputMode, ) -> Self { @@ -39,6 +47,7 @@ impl InputHandler { mode, os_input, config, + options, command_is_executing, send_client_instructions, should_exit: false, @@ -54,6 +63,10 @@ impl InputHandler { let alt_left_bracket = vec![27, 91]; let bracketed_paste_start = vec![27, 91, 50, 48, 48, 126]; // \u{1b}[200~ let bracketed_paste_end = vec![27, 91, 50, 48, 49, 126]; // \u{1b}[201 + + if !self.options.disable_mouse_mode { + self.os_input.enable_mouse(); + } loop { if self.should_exit { break; @@ -66,6 +79,10 @@ impl InputHandler { let key = cast_termion_key(key); self.handle_key(&key, raw_bytes); } + termion::event::Event::Mouse(me) => { + let mouse_event = zellij_utils::input::mouse::MouseEvent::from(me); + self.handle_mouse_event(&mouse_event); + } termion::event::Event::Unsupported(unsupported_key) => { // we have to do this because of a bug in termion // this should be a key event and not an unsupported event @@ -82,10 +99,6 @@ impl InputHandler { self.handle_unknown_key(raw_bytes); } } - termion::event::Event::Mouse(_) => { - // Mouse events aren't implemented yet, - // use a NoOp untill then. - } }, Err(err) => panic!("Encountered read error: {:?}", err), } @@ -117,6 +130,30 @@ impl InputHandler { } } } + fn handle_mouse_event(&mut self, mouse_event: &MouseEvent) { + match *mouse_event { + MouseEvent::Press(button, point) => match button { + MouseButton::WheelUp => { + self.dispatch_action(Action::ScrollUpAt(point)); + } + MouseButton::WheelDown => { + self.dispatch_action(Action::ScrollDownAt(point)); + } + MouseButton::Left => { + self.dispatch_action(Action::LeftClick(point)); + } + _ => {} + }, + MouseEvent::Release(point) => { + self.dispatch_action(Action::MouseRelease(point)); + } + MouseEvent::Hold(point) => { + self.dispatch_action(Action::MouseHold(point)); + self.os_input + .start_action_repeater(Action::MouseHold(point)); + } + } + } /// Dispatches an [`Action`]. /// @@ -180,6 +217,7 @@ impl InputHandler { pub(crate) fn input_loop( os_input: Box, config: Config, + options: Options, command_is_executing: CommandIsExecuting, send_client_instructions: SenderWithContext, default_mode: InputMode, @@ -188,8 +226,13 @@ pub(crate) fn input_loop( os_input, command_is_executing, config, + options, send_client_instructions, default_mode, ) .handle_input(); } + +#[cfg(test)] +#[path = "./unit/input_handler_tests.rs"] +mod grid_tests; diff --git a/zellij-client/src/lib.rs b/zellij-client/src/lib.rs index 5b409e75..90732024 100644 --- a/zellij-client/src/lib.rs +++ b/zellij-client/src/lib.rs @@ -118,7 +118,6 @@ pub fn start_client( palette, }; - #[cfg(not(any(feature = "test", test)))] let first_msg = match info { ClientInfo::Attach(name, force, config_options) => { SESSION_NAME.set(name).unwrap(); @@ -140,16 +139,6 @@ pub fn start_client( ) } }; - #[cfg(any(feature = "test", test))] - let first_msg = { - let _ = SESSION_NAME.set("".into()); - ClientToServerMsg::NewClient( - client_attributes, - Box::new(opts), - Box::new(config_options.clone()), - layout, - ) - }; os_input.connect_to_server(&*ZELLIJ_IPC_PIPE); os_input.send_to_server(first_msg); @@ -167,7 +156,6 @@ pub fn start_client( > = channels::bounded(50); let send_client_instructions = SenderWithContext::new(send_client_instructions); - #[cfg(not(any(feature = "test", test)))] std::panic::set_hook({ use zellij_utils::errors::handle_panic; let send_client_instructions = send_client_instructions.clone(); @@ -187,6 +175,7 @@ pub fn start_client( input_loop( os_input, config, + config_options, command_is_executing, send_client_instructions, default_mode, @@ -242,6 +231,7 @@ pub fn start_client( os_input.unset_raw_mode(0); let goto_start_of_last_line = format!("\u{1b}[{};{}H", full_screen_ws.rows, 1); let restore_snapshot = "\u{1b}[?1049l"; + os_input.disable_mouse(); let error = format!( "{}\n{}{}", goto_start_of_last_line, restore_snapshot, backtrace @@ -300,6 +290,7 @@ pub fn start_client( goto_start_of_last_line, restore_snapshot, reset_style, show_cursor, exit_msg ); + os_input.disable_mouse(); os_input.unset_raw_mode(0); let mut stdout = os_input.get_stdout_writer(); let _ = stdout.write(goodbye_message.as_bytes()).unwrap(); diff --git a/zellij-client/src/os_input_output.rs b/zellij-client/src/os_input_output.rs index 405422ab..7242bf7a 100644 --- a/zellij-client/src/os_input_output.rs +++ b/zellij-client/src/os_input_output.rs @@ -1,14 +1,16 @@ -use zellij_utils::{interprocess, libc, nix, signal_hook, zellij_tile}; +use zellij_utils::input::actions::Action; +use zellij_utils::{interprocess, libc, nix, signal_hook, termion, zellij_tile}; use interprocess::local_socket::LocalSocketStream; +use mio::{unix::SourceFd, Events, Interest, Poll, Token}; use nix::pty::Winsize; use nix::sys::termios; use signal_hook::{consts::signal::*, iterator::Signals}; -use std::io; use std::io::prelude::*; use std::os::unix::io::RawFd; use std::path::Path; use std::sync::{Arc, Mutex}; +use std::{io, time}; use zellij_tile::data::Palette; use zellij_utils::{ errors::ErrorContext, @@ -60,6 +62,7 @@ pub struct ClientOsInputOutput { orig_termios: Arc>, send_instructions_to_server: Arc>>>, receive_instructions_from_server: Arc>>>, + mouse_term: Arc>>>, } /// The `ClientOsApi` trait represents an abstract interface to the features of an operating system that @@ -88,6 +91,10 @@ pub trait ClientOsApi: Send + Sync { /// Establish a connection with the server socket. fn connect_to_server(&self, path: &Path); fn load_palette(&self) -> Palette; + fn enable_mouse(&self); + fn disable_mouse(&self); + // Repeatedly send action, until stdin is readable again + fn start_action_repeater(&mut self, action: Action); } impl ClientOsApi for ClientOsInputOutput { @@ -180,6 +187,31 @@ impl ClientOsApi for ClientOsInputOutput { // }; default_palette() } + fn enable_mouse(&self) { + let mut mouse_term = self.mouse_term.lock().unwrap(); + if mouse_term.is_none() { + *mouse_term = Some(termion::input::MouseTerminal::from(std::io::stdout())); + } + } + + fn disable_mouse(&self) { + let mut mouse_term = self.mouse_term.lock().unwrap(); + if mouse_term.is_some() { + *mouse_term = None; + } + } + + fn start_action_repeater(&mut self, action: Action) { + let mut poller = StdinPoller::default(); + + loop { + let ready = poller.ready(); + if ready { + break; + } + self.send_to_server(ClientToServerMsg::Action(action.clone())); + } + } } impl Clone for Box { @@ -191,9 +223,54 @@ impl Clone for Box { pub fn get_client_os_input() -> Result { let current_termios = termios::tcgetattr(0)?; let orig_termios = Arc::new(Mutex::new(current_termios)); + let mouse_term = Arc::new(Mutex::new(None)); Ok(ClientOsInputOutput { orig_termios, send_instructions_to_server: Arc::new(Mutex::new(None)), receive_instructions_from_server: Arc::new(Mutex::new(None)), + mouse_term, }) } + +pub const DEFAULT_STDIN_POLL_TIMEOUT_MS: u64 = 10; + +struct StdinPoller { + poll: Poll, + events: Events, + timeout: time::Duration, +} + +impl StdinPoller { + // use mio poll to check if stdin is readable without blocking + fn ready(&mut self) -> bool { + self.poll + .poll(&mut self.events, Some(self.timeout)) + .expect("could not poll stdin for readiness"); + for event in &self.events { + if event.token() == Token(0) && event.is_readable() { + return true; + } + } + false + } +} + +impl Default for StdinPoller { + fn default() -> Self { + let stdin = 0; + let mut stdin_fd = SourceFd(&stdin); + let events = Events::with_capacity(128); + let poll = Poll::new().unwrap(); + poll.registry() + .register(&mut stdin_fd, Token(0), Interest::READABLE) + .expect("could not create stdin poll"); + + let timeout = time::Duration::from_millis(DEFAULT_STDIN_POLL_TIMEOUT_MS); + + Self { + poll, + events, + timeout, + } + } +} diff --git a/zellij-client/src/unit/input_handler_tests.rs b/zellij-client/src/unit/input_handler_tests.rs new file mode 100644 index 00000000..f40344fe --- /dev/null +++ b/zellij-client/src/unit/input_handler_tests.rs @@ -0,0 +1,270 @@ +use super::input_loop; +use zellij_utils::input::actions::{Action, Direction}; +use zellij_utils::input::config::Config; +use zellij_utils::input::options::Options; +use zellij_utils::pane_size::PositionAndSize; +use zellij_utils::zellij_tile::data::Palette; + +use crate::{os_input_output::ClientOsApi, ClientInstruction, CommandIsExecuting}; + +use std::path::Path; + +use zellij_utils::zellij_tile; + +use std::io; +use std::os::unix::io::RawFd; +use std::sync::{Arc, Mutex}; +use zellij_tile::data::InputMode; +use zellij_utils::{ + errors::ErrorContext, + ipc::{ClientToServerMsg, ServerToClientMsg}, +}; + +use zellij_utils::channels::{self, ChannelWithContext, SenderWithContext}; + +#[allow(unused)] +pub mod commands { + pub const QUIT: [u8; 1] = [17]; // ctrl-q + pub const ESC: [u8; 1] = [27]; + pub const ENTER: [u8; 1] = [10]; // char '\n' + + pub const MOVE_FOCUS_LEFT_IN_NORMAL_MODE: [u8; 2] = [27, 104]; // alt-h + pub const MOVE_FOCUS_RIGHT_IN_NORMAL_MODE: [u8; 2] = [27, 108]; // alt-l + + pub const PANE_MODE: [u8; 1] = [16]; // ctrl-p + pub const SPAWN_TERMINAL_IN_PANE_MODE: [u8; 1] = [110]; // n + pub const MOVE_FOCUS_IN_PANE_MODE: [u8; 1] = [112]; // p + pub const SPLIT_DOWN_IN_PANE_MODE: [u8; 1] = [100]; // d + pub const SPLIT_RIGHT_IN_PANE_MODE: [u8; 1] = [114]; // r + pub const TOGGLE_ACTIVE_TERMINAL_FULLSCREEN_IN_PANE_MODE: [u8; 1] = [102]; // f + pub const CLOSE_PANE_IN_PANE_MODE: [u8; 1] = [120]; // x + pub const MOVE_FOCUS_DOWN_IN_PANE_MODE: [u8; 1] = [106]; // j + pub const MOVE_FOCUS_UP_IN_PANE_MODE: [u8; 1] = [107]; // k + pub const MOVE_FOCUS_LEFT_IN_PANE_MODE: [u8; 1] = [104]; // h + pub const MOVE_FOCUS_RIGHT_IN_PANE_MODE: [u8; 1] = [108]; // l + + pub const SCROLL_MODE: [u8; 1] = [19]; // ctrl-s + pub const SCROLL_UP_IN_SCROLL_MODE: [u8; 1] = [107]; // k + pub const SCROLL_DOWN_IN_SCROLL_MODE: [u8; 1] = [106]; // j + pub const SCROLL_PAGE_UP_IN_SCROLL_MODE: [u8; 1] = [2]; // ctrl-b + pub const SCROLL_PAGE_DOWN_IN_SCROLL_MODE: [u8; 1] = [6]; // ctrl-f + + pub const RESIZE_MODE: [u8; 1] = [18]; // ctrl-r + pub const RESIZE_DOWN_IN_RESIZE_MODE: [u8; 1] = [106]; // j + pub const RESIZE_UP_IN_RESIZE_MODE: [u8; 1] = [107]; // k + pub const RESIZE_LEFT_IN_RESIZE_MODE: [u8; 1] = [104]; // h + pub const RESIZE_RIGHT_IN_RESIZE_MODE: [u8; 1] = [108]; // l + + pub const TAB_MODE: [u8; 1] = [20]; // ctrl-t + pub const NEW_TAB_IN_TAB_MODE: [u8; 1] = [110]; // n + pub const SWITCH_NEXT_TAB_IN_TAB_MODE: [u8; 1] = [108]; // l + pub const SWITCH_PREV_TAB_IN_TAB_MODE: [u8; 1] = [104]; // h + pub const CLOSE_TAB_IN_TAB_MODE: [u8; 1] = [120]; // x + + pub const BRACKETED_PASTE_START: [u8; 6] = [27, 91, 50, 48, 48, 126]; // \u{1b}[200~ + pub const BRACKETED_PASTE_END: [u8; 6] = [27, 91, 50, 48, 49, 126]; // \u{1b}[201 + pub const SLEEP: [u8; 0] = []; +} + +struct FakeClientOsApi { + stdin_events: Arc>>>, + events_sent_to_server: Arc>>, + command_is_executing: Arc>, +} + +impl FakeClientOsApi { + pub fn new( + mut stdin_events: Vec>, + events_sent_to_server: Arc>>, + command_is_executing: CommandIsExecuting, + ) -> Self { + // while command_is_executing itself is implemented with an Arc, we have to have an + // Arc here because we need interior mutability, otherwise we'll have to change the + // ClientOsApi trait, and that will cause a lot of havoc + let command_is_executing = Arc::new(Mutex::new(command_is_executing)); + stdin_events.push(commands::QUIT.to_vec()); + let stdin_events = Arc::new(Mutex::new(stdin_events)); // this is also done for interior mutability + FakeClientOsApi { + stdin_events, + events_sent_to_server, + command_is_executing, + } + } +} + +impl ClientOsApi for FakeClientOsApi { + fn get_terminal_size_using_fd(&self, _fd: RawFd) -> PositionAndSize { + unimplemented!() + } + fn set_raw_mode(&mut self, _fd: RawFd) { + unimplemented!() + } + fn unset_raw_mode(&self, _fd: RawFd) { + unimplemented!() + } + fn get_stdout_writer(&self) -> Box { + unimplemented!() + } + fn read_from_stdin(&self) -> Vec { + let mut stdin_events = self.stdin_events.lock().unwrap(); + if stdin_events.is_empty() { + panic!("ran out of stdin events!"); + } + let next_event = stdin_events.remove(0); + next_event + } + fn box_clone(&self) -> Box { + unimplemented!() + } + fn send_to_server(&self, msg: ClientToServerMsg) { + { + let mut events_sent_to_server = self.events_sent_to_server.lock().unwrap(); + events_sent_to_server.push(msg); + } + { + let mut command_is_executing = self.command_is_executing.lock().unwrap(); + command_is_executing.unblock_input_thread(); + } + } + fn recv_from_server(&self) -> (ServerToClientMsg, ErrorContext) { + unimplemented!() + } + fn handle_signals(&self, _sigwinch_cb: Box, _quit_cb: Box) { + unimplemented!() + } + fn connect_to_server(&self, _path: &Path) { + unimplemented!() + } + fn load_palette(&self) -> Palette { + unimplemented!() + } + fn enable_mouse(&self) {} + fn disable_mouse(&self) {} + fn start_action_repeater(&mut self, _action: Action) {} +} + +fn extract_actions_sent_to_server( + events_sent_to_server: Arc>>, +) -> Vec { + let events_sent_to_server = events_sent_to_server.lock().unwrap(); + events_sent_to_server.iter().fold(vec![], |mut acc, event| { + if let ClientToServerMsg::Action(action) = event { + acc.push(action.clone()); + } + acc + }) +} + +#[test] +pub fn quit_breaks_input_loop() { + let stdin_events = vec![]; + let events_sent_to_server = Arc::new(Mutex::new(vec![])); + let command_is_executing = CommandIsExecuting::new(); + let client_os_api = Box::new(FakeClientOsApi::new( + stdin_events, + events_sent_to_server.clone(), + command_is_executing.clone(), + )); + let config = Config::from_default_assets().unwrap(); + let options = Options::default(); + + let (send_client_instructions, _receive_client_instructions): ChannelWithContext< + ClientInstruction, + > = channels::bounded(50); + let send_client_instructions = SenderWithContext::new(send_client_instructions); + + let default_mode = InputMode::Normal; + drop(input_loop( + client_os_api, + config, + options, + command_is_executing, + send_client_instructions, + default_mode, + )); + let expected_actions_sent_to_server = vec![Action::Quit]; + let received_actions = extract_actions_sent_to_server(events_sent_to_server); + assert_eq!( + expected_actions_sent_to_server, received_actions, + "All actions sent to server properly" + ); +} + +#[test] +pub fn move_focus_left_in_pane_mode() { + let mut stdin_events = vec![]; + stdin_events.push(commands::MOVE_FOCUS_LEFT_IN_NORMAL_MODE.to_vec()); + let events_sent_to_server = Arc::new(Mutex::new(vec![])); + let command_is_executing = CommandIsExecuting::new(); + let client_os_api = Box::new(FakeClientOsApi::new( + stdin_events, + events_sent_to_server.clone(), + command_is_executing.clone(), + )); + let config = Config::from_default_assets().unwrap(); + let options = Options::default(); + + let (send_client_instructions, _receive_client_instructions): ChannelWithContext< + ClientInstruction, + > = channels::bounded(50); + let send_client_instructions = SenderWithContext::new(send_client_instructions); + + let default_mode = InputMode::Normal; + drop(input_loop( + client_os_api, + config, + options, + command_is_executing, + send_client_instructions, + default_mode, + )); + let expected_actions_sent_to_server = + vec![Action::MoveFocusOrTab(Direction::Left), Action::Quit]; + let received_actions = extract_actions_sent_to_server(events_sent_to_server); + assert_eq!( + expected_actions_sent_to_server, received_actions, + "All actions sent to server properly" + ); +} + +#[test] +pub fn bracketed_paste() { + let stdin_events = vec![ + commands::BRACKETED_PASTE_START.to_vec(), + commands::MOVE_FOCUS_LEFT_IN_NORMAL_MODE.to_vec(), + commands::BRACKETED_PASTE_END.to_vec(), + ]; + let events_sent_to_server = Arc::new(Mutex::new(vec![])); + let command_is_executing = CommandIsExecuting::new(); + let client_os_api = Box::new(FakeClientOsApi::new( + stdin_events, + events_sent_to_server.clone(), + command_is_executing.clone(), + )); + let config = Config::from_default_assets().unwrap(); + let options = Options::default(); + + let (send_client_instructions, _receive_client_instructions): ChannelWithContext< + ClientInstruction, + > = channels::bounded(50); + let send_client_instructions = SenderWithContext::new(send_client_instructions); + + let default_mode = InputMode::Normal; + drop(input_loop( + client_os_api, + config, + options, + command_is_executing, + send_client_instructions, + default_mode, + )); + let expected_actions_sent_to_server = vec![ + Action::Write(commands::MOVE_FOCUS_LEFT_IN_NORMAL_MODE.to_vec()), // keys were directly written to server and not interpreted + Action::Quit, + ]; + let received_actions = extract_actions_sent_to_server(events_sent_to_server); + assert_eq!( + expected_actions_sent_to_server, received_actions, + "All actions sent to server properly" + ); +} diff --git a/zellij-server/Cargo.toml b/zellij-server/Cargo.toml index 1a671c3d..598d8aa3 100644 --- a/zellij-server/Cargo.toml +++ b/zellij-server/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zellij-server" -version = "0.14.0" +version = "0.15.0" authors = ["Kunal Mohan "] edition = "2018" description = "The server-side library for Zellij" @@ -11,18 +11,17 @@ license = "MIT" [dependencies] ansi_term = "0.12.1" async-trait = "0.1.50" +base64 = "0.13.0" daemonize = "0.4.1" serde_json = "1.0" unicode-width = "0.1.8" wasmer = "1.0.0" wasmer-wasi = "1.0.0" cassowary = "0.3.0" -zellij-utils = { path = "../zellij-utils/", version = "0.14.0" } +zellij-utils = { path = "../zellij-utils/", version = "0.15.0" } log = "0.4.14" typetag = "0.1.7" [dev-dependencies] insta = "1.6.0" -[features] -test = ["zellij-utils/test"] diff --git a/zellij-server/src/lib.rs b/zellij-server/src/lib.rs index 9ea35e23..8dc5509b 100644 --- a/zellij-server/src/lib.rs +++ b/zellij-server/src/lib.rs @@ -31,7 +31,12 @@ use zellij_utils::{ channels::{self, ChannelWithContext, SenderWithContext}, cli::CliArgs, errors::{ContextType, ErrorInstruction, ServerContext}, - input::{get_mode_info, layout::Layout, options::Options}, + input::{ + command::{RunCommand, TerminalAction}, + get_mode_info, + layout::Layout, + options::Options, + }, ipc::{ClientAttributes, ClientToServerMsg, ExitReason, ServerToClientMsg}, setup::get_default_data_dir, }; @@ -86,6 +91,7 @@ pub(crate) struct SessionMetaData { pub senders: ThreadSenders, pub capabilities: PluginCapabilities, pub palette: Palette, + pub default_shell: Option, screen_thread: Option>, pty_thread: Option>, wasm_thread: Option>, @@ -127,7 +133,6 @@ pub fn start_server(os_input: Box, socket_path: PathBuf) { let session_data: Arc>> = Arc::new(RwLock::new(None)); let session_state = Arc::new(RwLock::new(SessionState::Uninitialized)); - #[cfg(not(any(feature = "test", test)))] std::panic::set_hook({ use zellij_utils::errors::handle_panic; let to_server = to_server.clone(); @@ -138,21 +143,6 @@ pub fn start_server(os_input: Box, socket_path: PathBuf) { let thread_handles = Arc::new(Mutex::new(Vec::new())); - #[cfg(any(feature = "test", test))] - thread_handles.lock().unwrap().push( - thread::Builder::new() - .name("server_router".to_string()) - .spawn({ - let session_data = session_data.clone(); - let os_input = os_input.clone(); - let to_server = to_server.clone(); - let session_state = session_state.clone(); - - move || route_thread_main(session_data, session_state, os_input, to_server) - }) - .unwrap(), - ); - #[cfg(not(any(feature = "test", test)))] let _ = thread::Builder::new() .name("server_listener".to_string()) .spawn({ @@ -214,7 +204,7 @@ pub fn start_server(os_input: Box, socket_path: PathBuf) { let session = init_session( os_input.clone(), opts, - config_options, + config_options.clone(), to_server.clone(), client_attributes, session_state.clone(), @@ -222,13 +212,21 @@ pub fn start_server(os_input: Box, socket_path: PathBuf) { ); *session_data.write().unwrap() = Some(session); *session_state.write().unwrap() = SessionState::Attached; + + let default_shell = config_options.default_shell.map(|shell| { + TerminalAction::RunCommand(RunCommand { + command: shell, + ..Default::default() + }) + }); + session_data .read() .unwrap() .as_ref() .unwrap() .senders - .send_to_pty(PtyInstruction::NewTab) + .send_to_pty(PtyInstruction::NewTab(default_shell.clone())) .unwrap(); } ServerInstruction::AttachClient(attrs, _, options) => { @@ -295,7 +293,6 @@ pub fn start_server(os_input: Box, socket_path: PathBuf) { .unwrap() .drain(..) .for_each(|h| drop(h.join())); - #[cfg(not(any(feature = "test", test)))] drop(std::fs::remove_file(&socket_path)); } @@ -327,6 +324,13 @@ fn init_session( arrow_fonts: config_options.simplified_ui, }; + let default_shell = config_options.default_shell.clone().map(|command| { + TerminalAction::RunCommand(RunCommand { + command, + ..Default::default() + }) + }); + let pty_thread = thread::Builder::new() .name("pty".to_string()) .spawn({ @@ -393,8 +397,10 @@ fn init_session( to_pty: Some(to_pty), to_plugin: Some(to_plugin), to_server: None, + should_silently_fail: false, }, capabilities, + default_shell, palette: client_attributes.palette, screen_thread: Some(screen_thread), pty_thread: Some(pty_thread), diff --git a/zellij-server/src/os_input_output.rs b/zellij-server/src/os_input_output.rs index a104dda2..24d40583 100644 --- a/zellij-server/src/os_input_output.rs +++ b/zellij-server/src/os_input_output.rs @@ -18,6 +18,7 @@ use signal_hook::consts::*; use zellij_tile::data::Palette; use zellij_utils::{ errors::ErrorContext, + input::command::{RunCommand, TerminalAction}, ipc::{ ClientToServerMsg, ExitReason, IpcReceiverWithContext, IpcSenderWithContext, ServerToClientMsg, @@ -53,8 +54,9 @@ pub(crate) fn set_terminal_size_using_fd(fd: RawFd, columns: u16, rows: u16) { /// Handle some signals for the child process. This will loop until the child /// process exits. fn handle_command_exit(mut child: Child) { - // register the SIGINT signal (TODO handle more signals) - let mut signals = signal_hook::iterator::Signals::new(&[SIGINT]).unwrap(); + let mut should_exit = false; + let mut attempts = 3; + let mut signals = signal_hook::iterator::Signals::new(&[SIGINT, SIGTERM]).unwrap(); 'handle_exit: loop { // test whether the child process has exited match child.try_wait() { @@ -65,17 +67,26 @@ fn handle_command_exit(mut child: Child) { break 'handle_exit; } Ok(None) => { - ::std::thread::sleep(::std::time::Duration::from_millis(100)); + ::std::thread::sleep(::std::time::Duration::from_millis(10)); } Err(e) => panic!("error attempting to wait: {}", e), } - for signal in signals.pending() { - if let SIGINT = signal { - child.kill().unwrap(); - child.wait().unwrap(); - break 'handle_exit; + if !should_exit { + for signal in signals.pending() { + if signal == SIGINT || signal == SIGTERM { + should_exit = true; + } } + } else if attempts > 0 { + // let's try nicely first... + attempts -= 1; + kill(Pid::from_raw(child.id() as i32), Some(Signal::SIGTERM)).unwrap(); + continue; + } else { + // when I say whoa, I mean WHOA! + let _ = child.kill(); + break 'handle_exit; } } } @@ -83,50 +94,21 @@ fn handle_command_exit(mut child: Child) { /// Spawns a new terminal from the parent terminal with [`termios`](termios::Termios) /// `orig_termios`. /// -/// If a `file_to_open` is given, the text editor specified by environment variable `EDITOR` -/// (or `VISUAL`, if `EDITOR` is not set) will be started in the new terminal, with the given -/// file open. If no file is given, the shell specified by environment variable `SHELL` will -/// be started in the new terminal. -/// -/// # Panics -/// -/// This function will panic if both the `EDITOR` and `VISUAL` environment variables are not -/// set. -// FIXME this should probably be split into different functions, or at least have less levels -// of indentation in some way -fn spawn_terminal(file_to_open: Option, orig_termios: termios::Termios) -> (RawFd, Pid) { +fn handle_terminal(cmd: RunCommand, orig_termios: termios::Termios) -> (RawFd, Pid) { let (pid_primary, pid_secondary): (RawFd, Pid) = { match forkpty(None, Some(&orig_termios)) { Ok(fork_pty_res) => { let pid_primary = fork_pty_res.master; let pid_secondary = match fork_pty_res.fork_result { - ForkResult::Parent { child } => { - // fcntl(pid_primary, FcntlArg::F_SETFL(OFlag::empty())).expect("could not fcntl"); - child + ForkResult::Parent { child } => child, + ForkResult::Child => { + let child = Command::new(cmd.command) + .args(&cmd.args) + .spawn() + .expect("failed to spawn"); + handle_command_exit(child); + ::std::process::exit(0); } - ForkResult::Child => match file_to_open { - Some(file_to_open) => { - if env::var("EDITOR").is_err() && env::var("VISUAL").is_err() { - panic!("Can't edit files if an editor is not defined. To fix: define the EDITOR or VISUAL environment variables with the path to your editor (eg. /usr/bin/vim)"); - } - let editor = - env::var("EDITOR").unwrap_or_else(|_| env::var("VISUAL").unwrap()); - - let child = Command::new(editor) - .args(&[file_to_open]) - .spawn() - .expect("failed to spawn"); - handle_command_exit(child); - ::std::process::exit(0); - } - None => { - let child = Command::new(env::var("SHELL").unwrap()) - .spawn() - .expect("failed to spawn"); - handle_command_exit(child); - ::std::process::exit(0); - } - }, }; (pid_primary, pid_secondary) } @@ -138,6 +120,48 @@ fn spawn_terminal(file_to_open: Option, orig_termios: termios::Termios) (pid_primary, pid_secondary) } +/// If a [`TerminalAction::OpenFile(file)`] is given, the text editor specified by environment variable `EDITOR` +/// (or `VISUAL`, if `EDITOR` is not set) will be started in the new terminal, with the given +/// file open. +/// If [`TerminalAction::RunCommand(RunCommand)`] is given, the command will be started +/// in the new terminal. +/// If None is given, the shell specified by environment variable `SHELL` will +/// be started in the new terminal. +/// +/// # Panics +/// +/// This function will panic if both the `EDITOR` and `VISUAL` environment variables are not +/// set. +pub fn spawn_terminal( + terminal_action: Option, + orig_termios: termios::Termios, +) -> (RawFd, Pid) { + let cmd = match terminal_action { + Some(TerminalAction::OpenFile(file_to_open)) => { + if env::var("EDITOR").is_err() && env::var("VISUAL").is_err() { + panic!("Can't edit files if an editor is not defined. To fix: define the EDITOR or VISUAL environment variables with the path to your editor (eg. /usr/bin/vim)"); + } + let command = + PathBuf::from(env::var("EDITOR").unwrap_or_else(|_| env::var("VISUAL").unwrap())); + + let args = vec![file_to_open + .into_os_string() + .into_string() + .expect("Not valid Utf8 Encoding")]; + RunCommand { command, args } + } + Some(TerminalAction::RunCommand(command)) => command, + None => { + let command = + PathBuf::from(env::var("SHELL").expect("Could not find the SHELL variable")); + let args = vec![]; + RunCommand { command, args } + } + }; + + handle_terminal(cmd, orig_termios) +} + #[derive(Clone)] pub struct ServerOsInputOutput { orig_termios: Arc>, @@ -178,8 +202,8 @@ impl AsyncReader for RawFdAsyncReader { pub trait ServerOsApi: Send + Sync { /// Sets the size of the terminal associated to file descriptor `fd`. fn set_terminal_size_using_fd(&self, fd: RawFd, cols: u16, rows: u16); - /// Spawn a new terminal, with an optional file to open in a terminal program. - fn spawn_terminal(&self, file_to_open: Option) -> (RawFd, Pid); + /// Spawn a new terminal, with a terminal action. + fn spawn_terminal(&self, terminal_action: Option) -> (RawFd, Pid); /// Read bytes from the standard output of the virtual terminal referred to by `fd`. fn read_from_tty_stdout(&self, fd: RawFd, buf: &mut [u8]) -> Result; /// Creates an `AsyncReader` that can be used to read from `fd` in an async context @@ -188,8 +212,10 @@ pub trait ServerOsApi: Send + Sync { fn write_to_tty_stdin(&self, fd: RawFd, buf: &[u8]) -> Result; /// Wait until all output written to the object referred to by `fd` has been transmitted. fn tcdrain(&self, fd: RawFd) -> Result<(), nix::Error>; - /// Terminate the process with process ID `pid`. + /// Terminate the process with process ID `pid`. (SIGTERM) fn kill(&self, pid: Pid) -> Result<(), nix::Error>; + /// Terminate the process with process ID `pid`. (SIGKILL) + fn force_kill(&self, pid: Pid) -> Result<(), nix::Error>; /// Returns a [`Box`] pointer to this [`ServerOsApi`] struct. fn box_clone(&self) -> Box; /// Receives a message on server-side IPC channel @@ -215,9 +241,9 @@ impl ServerOsApi for ServerOsInputOutput { fn set_terminal_size_using_fd(&self, fd: RawFd, cols: u16, rows: u16) { set_terminal_size_using_fd(fd, cols, rows); } - fn spawn_terminal(&self, file_to_open: Option) -> (RawFd, Pid) { + fn spawn_terminal(&self, terminal_action: Option) -> (RawFd, Pid) { let orig_termios = self.orig_termios.lock().unwrap(); - spawn_terminal(file_to_open, orig_termios.clone()) + spawn_terminal(terminal_action, orig_termios.clone()) } fn read_from_tty_stdout(&self, fd: RawFd, buf: &mut [u8]) -> Result { unistd::read(fd, buf) @@ -235,16 +261,14 @@ impl ServerOsApi for ServerOsInputOutput { Box::new((*self).clone()) } fn kill(&self, pid: Pid) -> Result<(), nix::Error> { - // TODO: - // Ideally, we should be using SIGINT rather than SIGKILL here, but there are cases in which - // the terminal we're trying to kill hangs on SIGINT and so all the app gets stuck - // that's why we're sending SIGKILL here - // A better solution would be to send SIGINT here and not wait for it, and then have - // a background thread do the waitpid stuff and send SIGKILL if the process is stuck - kill(pid, Some(Signal::SIGKILL)).unwrap(); + kill(pid, Some(Signal::SIGTERM)).unwrap(); waitpid(pid, None).unwrap(); Ok(()) } + fn force_kill(&self, pid: Pid) -> Result<(), nix::Error> { + let _ = kill(pid, Some(Signal::SIGKILL)); + Ok(()) + } fn recv_from_client(&self) -> (ClientToServerMsg, ErrorContext) { self.receive_instructions_from_client .as_ref() diff --git a/zellij-server/src/panes/grid.rs b/zellij-server/src/panes/grid.rs index 7ea62ed6..df9b7a9c 100644 --- a/zellij-server/src/panes/grid.rs +++ b/zellij-server/src/panes/grid.rs @@ -7,7 +7,7 @@ use std::{ str, }; -use zellij_utils::{vte, zellij_tile}; +use zellij_utils::{position::Position, vte, zellij_tile}; const TABSTOP_WIDTH: usize = 8; // TODO: is this always right? const SCROLL_BACK: usize = 10_000; @@ -21,6 +21,8 @@ use crate::panes::terminal_character::{ EMPTY_TERMINAL_CHARACTER, }; +use super::selection::Selection; + // this was copied verbatim from alacritty fn parse_number(input: &[u8]) -> Option { if input.is_empty() { @@ -315,6 +317,7 @@ pub struct Grid { pub width: usize, pub height: usize, pub pending_messages_to_pty: Vec>, + pub selection: Selection, } impl Debug for Grid { @@ -354,6 +357,7 @@ impl Grid { pending_messages_to_pty: vec![], colors, output_buffer: Default::default(), + selection: Default::default(), } } pub fn render_full_viewport(&mut self) { @@ -473,6 +477,7 @@ impl Grid { self.lines_below.insert(0, line_to_push_down); let line_to_insert_at_viewport_top = self.lines_above.pop_back().unwrap(); self.viewport.insert(0, line_to_insert_at_viewport_top); + self.selection.move_down(1); } self.output_buffer.update_all_lines(); } @@ -488,10 +493,12 @@ impl Grid { } let line_to_insert_at_viewport_bottom = self.lines_below.remove(0); self.viewport.push(line_to_insert_at_viewport_bottom); + self.selection.move_up(1); self.output_buffer.update_all_lines(); } } pub fn change_size(&mut self, new_rows: usize, new_columns: usize) { + self.selection.reset(); if new_columns != self.width { let mut cursor_canonical_line_index = self.cursor_canonical_line_index(); let cursor_index_in_canonical_line = self.cursor_index_in_canonical_line(); @@ -764,6 +771,7 @@ impl Grid { Some(self.width), None, ); + self.selection.move_up(1); self.output_buffer.update_all_lines(); } else { self.cursor.y += 1; @@ -840,6 +848,7 @@ impl Grid { ); let wrapped_row = Row::new(self.width); self.viewport.push(wrapped_row); + self.selection.move_up(1); self.output_buffer.update_all_lines(); } else { self.cursor.y += 1; @@ -1135,6 +1144,104 @@ impl Grid { fn set_preceding_character(&mut self, terminal_character: TerminalCharacter) { self.preceding_char = Some(terminal_character); } + pub fn start_selection(&mut self, start: &Position) { + let old_selection = self.selection.clone(); + self.selection.start(*start); + self.update_selected_lines(&old_selection, &self.selection.clone()); + self.mark_for_rerender(); + } + pub fn update_selection(&mut self, to: &Position) { + let old_selection = self.selection.clone(); + self.selection.to(*to); + self.update_selected_lines(&old_selection, &self.selection.clone()); + self.mark_for_rerender(); + } + + pub fn end_selection(&mut self, end: Option<&Position>) { + let old_selection = self.selection.clone(); + self.selection.end(end); + self.update_selected_lines(&old_selection, &self.selection.clone()); + self.mark_for_rerender(); + } + + pub fn reset_selection(&mut self) { + let old_selection = self.selection.clone(); + self.selection.reset(); + self.update_selected_lines(&old_selection, &self.selection.clone()); + self.mark_for_rerender(); + } + pub fn get_selected_text(&self) -> Option { + if self.selection.is_empty() { + return None; + } + let mut selection: Vec = vec![]; + + let sorted_selection = self.selection.sorted(); + let (start, end) = (sorted_selection.start, sorted_selection.end); + + for l in sorted_selection.line_indices() { + let mut line_selection = String::new(); + + // on the first line of the selection, use the selection start column + // otherwise, start at the beginning of the line + let start_column = if l == start.line.0 { start.column.0 } else { 0 }; + + // same thing on the last line, but with the selection end column + let end_column = if l == end.line.0 { + end.column.0 + } else { + self.width + }; + + if start_column == end_column { + continue; + } + + let empty_row = Row::from_columns(vec![EMPTY_TERMINAL_CHARACTER; self.width]); + + // get the row from lines_above, viewport, or lines below depending on index + let row = if l < 0 { + let offset_from_end = l.abs(); + &self.lines_above[self + .lines_above + .len() + .saturating_sub(offset_from_end as usize)] + } else if l >= 0 && (l as usize) < self.viewport.len() { + &self.viewport[l as usize] + } else if (l as usize) < self.height { + // index is in viewport but there is no line + &empty_row + } else { + &self.lines_below[(l as usize) - self.viewport.len()] + }; + + let excess_width = row.excess_width(); + let mut line: Vec = row.columns.iter().copied().collect(); + // pad line + line.resize( + self.width.saturating_sub(excess_width), + EMPTY_TERMINAL_CHARACTER, + ); + + let mut terminal_col = 0; + for terminal_character in line { + if (start_column..end_column).contains(&terminal_col) { + line_selection.push(terminal_character.character); + } + + terminal_col += terminal_character.width; + } + selection.push(String::from(line_selection.trim_end())); + } + + Some(selection.join("\n")) + } + + fn update_selected_lines(&mut self, old_selection: &Selection, new_selection: &Selection) { + for l in old_selection.diff(new_selection, self.height) { + self.output_buffer.update_line(l as usize); + } + } } impl Perform for Grid { @@ -1659,9 +1766,10 @@ impl Perform for Grid { _ => {} } } else { - let result = debug_log_to_file(format!("Unhandled csi: {}->{:?}", c, params)); - #[cfg(not(any(feature = "test", test)))] - result.unwrap(); + drop(debug_log_to_file(format!( + "Unhandled csi: {}->{:?}", + c, params + ))); } } diff --git a/zellij-server/src/panes/mod.rs b/zellij-server/src/panes/mod.rs index 187b364d..3830b242 100644 --- a/zellij-server/src/panes/mod.rs +++ b/zellij-server/src/panes/mod.rs @@ -1,5 +1,6 @@ mod grid; mod plugin_pane; +mod selection; mod terminal_character; mod terminal_pane; diff --git a/zellij-server/src/panes/selection.rs b/zellij-server/src/panes/selection.rs new file mode 100644 index 00000000..f01cf94c --- /dev/null +++ b/zellij-server/src/panes/selection.rs @@ -0,0 +1,135 @@ +use std::{collections::HashSet, ops::Range}; + +use zellij_utils::position::Position; + +// The selection is empty when start == end +// it includes the character at start, and everything before end. +#[derive(Debug, Clone)] +pub struct Selection { + pub start: Position, + pub end: Position, + active: bool, // used to handle moving the selection up and down +} + +impl Default for Selection { + fn default() -> Self { + Self { + start: Position::new(0, 0), + end: Position::new(0, 0), + active: false, + } + } +} + +impl Selection { + pub fn start(&mut self, start: Position) { + self.active = true; + self.start = start; + self.end = start; + } + + pub fn to(&mut self, to: Position) { + self.end = to + } + + pub fn end(&mut self, to: Option<&Position>) { + self.active = false; + if let Some(to) = to { + self.end = *to + } + } + + pub fn contains(&self, row: usize, col: usize) -> bool { + let row = row as isize; + let (start, end) = if self.start <= self.end { + (self.start, self.end) + } else { + (self.end, self.start) + }; + + if (start.line.0) < row && row < end.line.0 { + return true; + } + if start.line == end.line { + return row == start.line.0 && start.column.0 <= col && col < end.column.0; + } + if start.line.0 == row && col >= start.column.0 { + return true; + } + end.line.0 == row && col < end.column.0 + } + + pub fn is_empty(&self) -> bool { + self.start == self.end + } + + pub fn reset(&mut self) { + self.start = Position::new(0, 0); + self.end = self.start; + } + + pub fn sorted(&self) -> Self { + let (start, end) = if self.start <= self.end { + (self.start, self.end) + } else { + (self.end, self.start) + }; + Self { + start, + end, + active: self.active, + } + } + + pub fn line_indices(&self) -> std::ops::RangeInclusive { + let sorted = self.sorted(); + sorted.start.line.0..=sorted.end.line.0 + } + + pub fn move_up(&mut self, lines: usize) { + self.start.line.0 -= lines as isize; + if !self.active { + self.end.line.0 -= lines as isize; + } + } + + pub fn move_down(&mut self, lines: usize) { + self.start.line.0 += lines as isize; + if !self.active { + self.end.line.0 += lines as isize; + } + } + + /// Return an iterator over the line indices, up to max, that are not present in both self and other, + /// except for the indices of the first and last line of both self and s2, that are always included. + pub fn diff(&self, other: &Self, max: usize) -> impl Iterator { + let mut lines_to_update = HashSet::new(); + + lines_to_update.insert(self.start.line.0); + lines_to_update.insert(self.end.line.0); + lines_to_update.insert(other.start.line.0); + lines_to_update.insert(other.end.line.0); + + let old_lines: HashSet = self.get_visible_indices(max).collect(); + let new_lines: HashSet = other.get_visible_indices(max).collect(); + + old_lines.symmetric_difference(&new_lines).for_each(|&l| { + let _ = lines_to_update.insert(l); + }); + + lines_to_update + .into_iter() + .filter(move |&l| l >= 0 && l < max as isize) + } + + fn get_visible_indices(&self, max: usize) -> Range { + let Selection { start, end, .. } = self.sorted(); + let start = start.line.0.max(0); + let end = end.line.0.min(max as isize); + start..end + } +} + +#[cfg(test)] +#[path = "./unit/selection_tests.rs"] +mod selection_tests; diff --git a/zellij-server/src/panes/terminal_pane.rs b/zellij-server/src/panes/terminal_pane.rs index 734007ea..0dc28aa7 100644 --- a/zellij-server/src/panes/terminal_pane.rs +++ b/zellij-server/src/panes/terminal_pane.rs @@ -1,11 +1,14 @@ +use zellij_utils::position::Position; +use zellij_utils::zellij_tile::prelude::PaletteColor; use zellij_utils::{vte, zellij_tile}; use std::fmt::Debug; use std::os::unix::io::RawFd; -use std::time::Instant; +use std::time::{self, Instant}; use zellij_tile::data::Palette; use zellij_utils::pane_size::PositionAndSize; +use crate::panes::AnsiCode; use crate::panes::{ grid::Grid, terminal_character::{ @@ -15,6 +18,8 @@ use crate::panes::{ use crate::pty::VteBytes; use crate::tab::Pane; +pub const SELECTION_SCROLL_INTERVAL_MS: u64 = 10; + #[derive(PartialEq, Eq, Ord, PartialOrd, Hash, Clone, Copy, Debug)] pub enum PaneId { Terminal(RawFd), @@ -30,6 +35,7 @@ pub struct TerminalPane { pub active_at: Instant, pub colors: Palette, vte_parser: vte::Parser, + selection_scrolled_at: time::Instant, } impl Pane for TerminalPane { @@ -181,11 +187,22 @@ impl Pane for TerminalPane { )); // goto row/col and reset styles let mut chunk_width = character_chunk.x; - for t_character in terminal_characters { + for mut t_character in terminal_characters { + // adjust the background of currently selected characters + // doing it here is much easier than in grid + if self.grid.selection.contains(character_chunk.y, chunk_width) { + let color = match self.colors.bg { + PaletteColor::Rgb(rgb) => AnsiCode::RgbCode(rgb), + PaletteColor::EightBit(col) => AnsiCode::ColorIndex(col), + }; + + t_character.styles = t_character.styles.background(Some(color)); + } chunk_width += t_character.width; if chunk_width > max_width { break; } + if let Some(new_styles) = character_styles.update_and_return_diff(&t_character.styles) { @@ -285,6 +302,41 @@ impl Pane for TerminalPane { fn drain_messages_to_pty(&mut self) -> Vec> { self.grid.pending_messages_to_pty.drain(..).collect() } + + fn start_selection(&mut self, start: &Position) { + self.grid.start_selection(start); + self.set_should_render(true); + } + + fn update_selection(&mut self, to: &Position) { + let should_scroll = self.selection_scrolled_at.elapsed() + >= time::Duration::from_millis(SELECTION_SCROLL_INTERVAL_MS); + // TODO: check how far up/down mouse is relative to pane, to increase scroll lines? + if to.line.0 < 0 && should_scroll { + self.grid.scroll_up_one_line(); + self.selection_scrolled_at = time::Instant::now(); + } else if to.line.0 as usize >= self.grid.height && should_scroll { + self.grid.scroll_down_one_line(); + self.selection_scrolled_at = time::Instant::now(); + } else if to.line.0 >= 0 && (to.line.0 as usize) < self.grid.height { + self.grid.update_selection(to); + } + + self.set_should_render(true); + } + + fn end_selection(&mut self, end: Option<&Position>) { + self.grid.end_selection(end); + self.set_should_render(true); + } + + fn reset_selection(&mut self) { + self.grid.reset_selection(); + } + + fn get_selected_text(&self) -> Option { + self.grid.get_selected_text() + } } impl TerminalPane { @@ -299,6 +351,7 @@ impl TerminalPane { vte_parser: vte::Parser::new(), active_at: Instant::now(), colors: palette, + selection_scrolled_at: time::Instant::now(), } } pub fn get_x(&self) -> usize { @@ -334,9 +387,12 @@ impl TerminalPane { pub fn read_buffer_as_lines(&self) -> Vec> { self.grid.as_character_lines() } - #[cfg(any(feature = "test", test))] pub fn cursor_coordinates(&self) -> Option<(usize, usize)> { // (x, y) self.grid.cursor_coordinates() } } + +#[cfg(test)] +#[path = "./unit/terminal_pane_tests.rs"] +mod grid_tests; diff --git a/zellij-server/src/panes/unit/grid_tests.rs b/zellij-server/src/panes/unit/grid_tests.rs index bce67e06..0facc066 100644 --- a/zellij-server/src/panes/unit/grid_tests.rs +++ b/zellij-server/src/panes/unit/grid_tests.rs @@ -1,6 +1,6 @@ use super::super::Grid; use ::insta::assert_snapshot; -use zellij_utils::{vte, zellij_tile::data::Palette}; +use zellij_utils::{position::Position, vte, zellij_tile::data::Palette}; fn read_fixture(fixture_name: &str) -> Vec { let mut path_to_file = std::path::PathBuf::new(); @@ -555,3 +555,355 @@ fn wrap_wide_characters_at_the_end_of_the_line() { } assert_snapshot!(format!("{:?}", grid)); } + +#[test] +fn copy_selected_text_from_viewport() { + let mut vte_parser = vte::Parser::new(); + let mut grid = Grid::new(27, 125, Palette::default()); + let fixture_name = "grid_copy"; + let content = read_fixture(fixture_name); + for byte in content { + vte_parser.advance(&mut grid, byte); + } + + grid.start_selection(&Position::new(23, 6)); + // check for widechar, 📦 occupies columns 34, 35, and gets selected even if only the first column is selected + grid.end_selection(Some(&Position::new(25, 35))); + let text = grid.get_selected_text(); + assert_eq!( + text.unwrap(), + "mauris in aliquam sem fringilla.\n\nzellij on  mouse-support [?] is 📦" + ); +} + +#[test] +fn copy_selected_text_from_lines_above() { + let mut vte_parser = vte::Parser::new(); + let mut grid = Grid::new(27, 125, Palette::default()); + let fixture_name = "grid_copy"; + let content = read_fixture(fixture_name); + for byte in content { + vte_parser.advance(&mut grid, byte); + } + + grid.start_selection(&Position::new(-2, 10)); + // check for widechar, 📦 occupies columns 34, 35, and gets selected even if only the first column is selected + grid.end_selection(Some(&Position::new(2, 8))); + let text = grid.get_selected_text(); + assert_eq!( + text.unwrap(), + "eu scelerisque felis imperdiet proin fermentum leo.\nCursus risus at ultrices mi tempus.\nLaoreet id donec ultrices tincidunt arcu non sodales.\nAmet dictum sit amet justo donec enim.\nHac habi" + ); +} + +#[test] +fn copy_selected_text_from_lines_below() { + let mut vte_parser = vte::Parser::new(); + let mut grid = Grid::new(27, 125, Palette::default()); + let fixture_name = "grid_copy"; + let content = read_fixture(fixture_name); + for byte in content { + vte_parser.advance(&mut grid, byte); + } + + grid.move_viewport_up(40); + + grid.start_selection(&Position::new(63, 6)); + // check for widechar, 📦 occupies columns 34, 35, and gets selected even if only the first column is selected + grid.end_selection(Some(&Position::new(65, 35))); + let text = grid.get_selected_text(); + assert_eq!( + text.unwrap(), + "mauris in aliquam sem fringilla.\n\nzellij on  mouse-support [?] is 📦" + ); +} + +/* + * These tests below are general compatibility tests for non-trivial scenarios running in the terminal. + * They use fake TTY input replicated from these scenarios. + * + */ + +#[test] +fn run_bandwhich_from_fish_shell() { + let mut vte_parser = vte::Parser::new(); + let mut grid = Grid::new(28, 116, Palette::default()); + let fixture_name = "fish_and_bandwhich"; + let content = read_fixture(fixture_name); + for byte in content { + vte_parser.advance(&mut grid, byte); + } + assert_snapshot!(format!("{:?}", grid)); +} + +#[test] +fn fish_tab_completion_options() { + let mut vte_parser = vte::Parser::new(); + let mut grid = Grid::new(28, 116, Palette::default()); + let fixture_name = "fish_tab_completion_options"; + let content = read_fixture(fixture_name); + for byte in content { + vte_parser.advance(&mut grid, byte); + } + assert_snapshot!(format!("{:?}", grid)); +} + +#[test] +pub fn fish_select_tab_completion_options() { + // the difference between this and the previous test is that here we press + // twice, meaning the selection moves between the options and the command line + // changes. + // this is not clearly seen in the snapshot because it does not include styles, + // but we can see the command line change and the cursor staying in place + let mut vte_parser = vte::Parser::new(); + let mut grid = Grid::new(28, 116, Palette::default()); + let fixture_name = "fish_select_tab_completion_options"; + let content = read_fixture(fixture_name); + for byte in content { + vte_parser.advance(&mut grid, byte); + } + assert_snapshot!(format!("{:?}", grid)); +} + +#[test] +pub fn vim_scroll_region_down() { + // here we test a case where vim defines the scroll region as lesser than the screen row count + // and then scrolls down + // the region is defined here by vim as 1-26 (there are 28 rows) + // then the cursor is moved to line 26 and a new line is added + // what should happen is that the first line in the scroll region (1) is deleted + // and an empty line is inserted in the last scroll region line (26) + // this tests also has other steps afterwards that fills the line with the next line in the + // file + let mut vte_parser = vte::Parser::new(); + let mut grid = Grid::new(28, 116, Palette::default()); + let fixture_name = "vim_scroll_region_down"; + let content = read_fixture(fixture_name); + for byte in content { + vte_parser.advance(&mut grid, byte); + } + assert_snapshot!(format!("{:?}", grid)); +} + +#[test] +pub fn vim_ctrl_d() { + // in vim ctrl-d moves down half a page + // in this case, it sends the terminal the csi 'M' directive, which tells it to delete X (13 in + // this case) lines inside the scroll region and push the other lines up + // what happens here is that 13 lines are deleted and instead 13 empty lines are added at the + // end of the scroll region + // vim makes sure to fill these empty lines with the rest of the file + let mut vte_parser = vte::Parser::new(); + let mut grid = Grid::new(28, 116, Palette::default()); + let fixture_name = "vim_ctrl_d"; + let content = read_fixture(fixture_name); + for byte in content { + vte_parser.advance(&mut grid, byte); + } + assert_snapshot!(format!("{:?}", grid)); +} + +#[test] +pub fn vim_ctrl_u() { + // in vim ctrl-u moves up half a page + // in this case, it sends the terminal the csi 'L' directive, which tells it to insert X (13 in + // this case) lines at the cursor, pushing away (deleting) the last line in the scroll region + // this causes the effect of scrolling up X lines (vim replaces the lines with the ones in the + // file above the current content) + let mut vte_parser = vte::Parser::new(); + let mut grid = Grid::new(28, 116, Palette::default()); + let fixture_name = "vim_ctrl_u"; + let content = read_fixture(fixture_name); + for byte in content { + vte_parser.advance(&mut grid, byte); + } + assert_snapshot!(format!("{:?}", grid)); +} + +#[test] +pub fn htop() { + let mut vte_parser = vte::Parser::new(); + let mut grid = Grid::new(28, 116, Palette::default()); + let fixture_name = "htop"; + let content = read_fixture(fixture_name); + for byte in content { + vte_parser.advance(&mut grid, byte); + } + assert_snapshot!(format!("{:?}", grid)); +} + +#[test] +pub fn htop_scrolling() { + let mut vte_parser = vte::Parser::new(); + let mut grid = Grid::new(28, 116, Palette::default()); + let fixture_name = "htop_scrolling"; + let content = read_fixture(fixture_name); + for byte in content { + vte_parser.advance(&mut grid, byte); + } + assert_snapshot!(format!("{:?}", grid)); +} + +#[test] +pub fn htop_right_scrolling() { + let mut vte_parser = vte::Parser::new(); + let mut grid = Grid::new(28, 116, Palette::default()); + let fixture_name = "htop_right_scrolling"; + let content = read_fixture(fixture_name); + for byte in content { + vte_parser.advance(&mut grid, byte); + } + assert_snapshot!(format!("{:?}", grid)); +} + +#[test] +pub fn vim_overwrite() { + // this tests the vim overwrite message + // to recreate: + // * open a file in vim + // * open the same file in another window + // * change the file in the other window and save + // * change the file in the original vim window and save + // * confirm you would like to change the file by pressing 'y' and then ENTER + // * if everything looks fine, this test passed :) + let mut vte_parser = vte::Parser::new(); + let mut grid = Grid::new(28, 116, Palette::default()); + let fixture_name = "vim_overwrite"; + let content = read_fixture(fixture_name); + for byte in content { + vte_parser.advance(&mut grid, byte); + } + assert_snapshot!(format!("{:?}", grid)); +} + +#[test] +pub fn clear_scroll_region() { + // this is actually a test of 1049h/l (alternative buffer) + // @imsnif - the name is a monument to the time I didn't fully understand this mechanism :) + let mut vte_parser = vte::Parser::new(); + let mut grid = Grid::new(28, 116, Palette::default()); + let fixture_name = "clear_scroll_region"; + let content = read_fixture(fixture_name); + for byte in content { + vte_parser.advance(&mut grid, byte); + } + assert_snapshot!(format!("{:?}", grid)); +} + +#[test] +pub fn display_tab_characters_properly() { + let mut vte_parser = vte::Parser::new(); + let mut grid = Grid::new(28, 116, Palette::default()); + let fixture_name = "tab_characters"; + let content = read_fixture(fixture_name); + for byte in content { + vte_parser.advance(&mut grid, byte); + } + assert_snapshot!(format!("{:?}", grid)); +} + +#[test] +pub fn neovim_insert_mode() { + let mut vte_parser = vte::Parser::new(); + let mut grid = Grid::new(28, 116, Palette::default()); + let fixture_name = "nvim_insert"; + let content = read_fixture(fixture_name); + for byte in content { + vte_parser.advance(&mut grid, byte); + } + assert_snapshot!(format!("{:?}", grid)); +} + +#[test] +pub fn bash_cursor_linewrap() { + let mut vte_parser = vte::Parser::new(); + let mut grid = Grid::new(28, 116, Palette::default()); + let fixture_name = "bash_cursor_linewrap"; + let content = read_fixture(fixture_name); + for byte in content { + vte_parser.advance(&mut grid, byte); + } + assert_snapshot!(format!("{:?}", grid)); +} + +#[test] +pub fn fish_paste_multiline() { + // here we paste a multiline command in fish shell, making sure we support it + // going up and changing the colors of our line-wrapped pasted text + let mut vte_parser = vte::Parser::new(); + let mut grid = Grid::new(28, 149, Palette::default()); + let fixture_name = "fish_paste_multiline"; + let content = read_fixture(fixture_name); + for byte in content { + vte_parser.advance(&mut grid, byte); + } + assert_snapshot!(format!("{:?}", grid)); +} + +#[test] +pub fn git_log() { + let mut vte_parser = vte::Parser::new(); + let mut grid = Grid::new(28, 149, Palette::default()); + let fixture_name = "git_log"; + let content = read_fixture(fixture_name); + for byte in content { + vte_parser.advance(&mut grid, byte); + } + assert_snapshot!(format!("{:?}", grid)); +} + +#[test] +pub fn git_diff_scrollup() { + // this tests makes sure that when we have a git diff that exceeds the screen size + // we are able to scroll up + let mut vte_parser = vte::Parser::new(); + let mut grid = Grid::new(28, 149, Palette::default()); + let fixture_name = "git_diff_scrollup"; + let content = read_fixture(fixture_name); + for byte in content { + vte_parser.advance(&mut grid, byte); + } + assert_snapshot!(format!("{:?}", grid)); +} + +#[test] +pub fn emacs_longbuf() { + let mut vte_parser = vte::Parser::new(); + let mut grid = Grid::new(60, 284, Palette::default()); + let fixture_name = "emacs_longbuf_tutorial"; + let content = read_fixture(fixture_name); + for byte in content { + vte_parser.advance(&mut grid, byte); + } + assert_snapshot!(format!("{:?}", grid)); +} + +#[test] +pub fn top_and_quit() { + let mut vte_parser = vte::Parser::new(); + let mut grid = Grid::new(56, 235, Palette::default()); + let fixture_name = "top_and_quit"; + let content = read_fixture(fixture_name); + for byte in content { + vte_parser.advance(&mut grid, byte); + } + assert_snapshot!(format!("{:?}", grid)); +} + +#[test] +pub fn exa_plus_omf_theme() { + // this tests that we handle a tab delimited table properly + // without overriding the previous content + // this is a potential bug because the \t character is a goto + // if we forwarded it as is to the terminal, we would be skipping + // over existing on-screen content without deleting it, so we must + // convert it to spaces + let mut vte_parser = vte::Parser::new(); + let mut grid = Grid::new(56, 235, Palette::default()); + let fixture_name = "exa_plus_omf_theme"; + let content = read_fixture(fixture_name); + for byte in content { + vte_parser.advance(&mut grid, byte); + } + assert_snapshot!(format!("{:?}", grid)); +} diff --git a/zellij-server/src/panes/unit/selection_tests.rs b/zellij-server/src/panes/unit/selection_tests.rs new file mode 100644 index 00000000..1b41f522 --- /dev/null +++ b/zellij-server/src/panes/unit/selection_tests.rs @@ -0,0 +1,197 @@ +use super::*; + +#[test] +fn selection_start() { + let mut selection = Selection::default(); + selection.start(Position::new(10, 10)); + + assert!(selection.active); + assert_eq!(selection.start, Position::new(10, 10)); + assert_eq!(selection.end, Position::new(10, 10)); +} + +#[test] +fn selection_to() { + let mut selection = Selection::default(); + selection.start(Position::new(10, 10)); + let is_active = selection.active; + selection.to(Position::new(20, 30)); + + assert_eq!(selection.active, is_active); + assert_eq!(selection.end, Position::new(20, 30)); +} + +#[test] +fn selection_end_with_position() { + let mut selection = Selection::default(); + selection.start(Position::new(10, 10)); + selection.end(Some(&Position::new(20, 30))); + + assert!(!selection.active); + assert_eq!(selection.end, Position::new(20, 30)); +} + +#[test] +fn selection_end_without_position() { + let mut selection = Selection::default(); + selection.start(Position::new(10, 10)); + selection.to(Position::new(15, 100)); + selection.end(None); + + assert!(!selection.active); + assert_eq!(selection.end, Position::new(15, 100)); +} + +#[test] +fn contains() { + struct TestCase<'a> { + selection: &'a Selection, + position: Position, + result: bool, + } + + let selection = Selection { + start: Position::new(10, 5), + end: Position::new(40, 20), + active: false, + }; + + let test_cases = vec![ + TestCase { + selection: &selection, + position: Position::new(10, 5), + result: true, + }, + TestCase { + selection: &selection, + position: Position::new(10, 4), + result: false, + }, + TestCase { + selection: &selection, + position: Position::new(20, 0), + result: true, + }, + TestCase { + selection: &selection, + position: Position::new(20, 21), + result: true, + }, + TestCase { + selection: &selection, + position: Position::new(40, 19), + result: true, + }, + TestCase { + selection: &selection, + position: Position::new(40, 20), + result: false, + }, + ]; + + for test_case in test_cases { + let result = test_case.selection.contains( + test_case.position.line.0 as usize, + test_case.position.column.0, + ); + assert_eq!(result, test_case.result) + } +} + +#[test] +fn sorted() { + let selection = Selection { + start: Position::new(1, 1), + end: Position::new(10, 2), + active: false, + }; + let sorted_selection = selection.sorted(); + assert_eq!(selection.start, sorted_selection.start); + assert_eq!(selection.end, sorted_selection.end); + + let selection = Selection { + start: Position::new(10, 2), + end: Position::new(1, 1), + active: false, + }; + let sorted_selection = selection.sorted(); + assert_eq!(selection.end, sorted_selection.start); + assert_eq!(selection.start, sorted_selection.end); +} + +#[test] +fn line_indices() { + let selection = Selection { + start: Position::new(1, 1), + end: Position::new(10, 2), + active: false, + }; + + assert_eq!(selection.line_indices(), (1..=10)) +} + +#[test] +fn move_up_inactive() { + let start = Position::new(10, 1); + let end = Position::new(20, 2); + let mut inactive_selection = Selection { + start, + end, + active: false, + }; + + inactive_selection.move_up(2); + assert_eq!(inactive_selection.start, Position::new(8, 1)); + assert_eq!(inactive_selection.end, Position::new(18, 2)); + inactive_selection.move_up(10); + assert_eq!(inactive_selection.start, Position::new(-2, 1)); + assert_eq!(inactive_selection.end, Position::new(8, 2)); +} + +#[test] +fn move_up_active() { + let start = Position::new(10, 1); + let end = Position::new(20, 2); + let mut inactive_selection = Selection { + start, + end, + active: true, + }; + + inactive_selection.move_up(2); + assert_eq!(inactive_selection.start, Position::new(8, 1)); + assert_eq!(inactive_selection.end, end); +} + +#[test] +fn move_down_inactive() { + let start = Position::new(10, 1); + let end = Position::new(20, 2); + let mut inactive_selection = Selection { + start, + end, + active: false, + }; + + inactive_selection.move_down(2); + assert_eq!(inactive_selection.start, Position::new(12, 1)); + assert_eq!(inactive_selection.end, Position::new(22, 2)); + inactive_selection.move_down(10); + assert_eq!(inactive_selection.start, Position::new(22, 1)); + assert_eq!(inactive_selection.end, Position::new(32, 2)); +} + +#[test] +fn move_down_active() { + let start = Position::new(10, 1); + let end = Position::new(20, 2); + let mut inactive_selection = Selection { + start, + end, + active: true, + }; + + inactive_selection.move_down(2); + assert_eq!(inactive_selection.start, Position::new(12, 1)); + assert_eq!(inactive_selection.end, end); +} diff --git a/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__bash_cursor_linewrap.snap b/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__bash_cursor_linewrap.snap new file mode 100644 index 00000000..93634316 --- /dev/null +++ b/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__bash_cursor_linewrap.snap @@ -0,0 +1,10 @@ +--- +source: zellij-server/src/panes/./unit/grid_tests.rs +expression: "format!(\"{:?}\", grid)" + +--- +00 (C): Welcome to fish, the friendly interactive shell +01 (C): ⋊> ~/c/mosaic on main ⨯ bash 16:00:06 +02 (C): [aram@green mosaic]$ 12345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345 +03 (W): + diff --git a/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__clear_scroll_region.snap b/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__clear_scroll_region.snap new file mode 100644 index 00000000..b53826df --- /dev/null +++ b/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__clear_scroll_region.snap @@ -0,0 +1,9 @@ +--- +source: zellij-server/src/panes/./unit/grid_tests.rs +expression: "format!(\"{:?}\", grid)" + +--- +00 (C): Welcome to fish, the friendly interactive shell +01 (C): ⋊> ~/c/mosaic on main ⨯ vim some-file 15:07:22 +02 (C): ⋊> ~/c/mosaic on main ⨯ 15:07:29 + diff --git a/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__display_tab_characters_properly.snap b/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__display_tab_characters_properly.snap new file mode 100644 index 00000000..48c75d6c --- /dev/null +++ b/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__display_tab_characters_properly.snap @@ -0,0 +1,21 @@ +--- +source: zellij-server/src/panes/./unit/grid_tests.rs +expression: "format!(\"{:?}\", grid)" + +--- +00 (C): +01 (C): OS: 5.9.13-arch1-1 GNU/Linux +02 (C): Uptime: 10 hours, 42 minutes +03 (C): Hostname: kingdom +04 (C): Disk usage: +05 (C): +06 (C): df: /run/user/1000/doc: Operation not permitted +07 (C): / 321G / 514G 66% +08 (C): /efi 27M / 96M 28% +09 (C): +10 (C): Network: +11 (C): +12 (C): wlp2s0 192.168.0.3 +13 (C): +14 (C): [I] [20:07] kingdom:mosaic (main) | + diff --git a/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__emacs_longbuf.snap b/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__emacs_longbuf.snap new file mode 100644 index 00000000..5c08c323 --- /dev/null +++ b/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__emacs_longbuf.snap @@ -0,0 +1,10 @@ +--- +source: zellij-server/src/panes/./unit/grid_tests.rs +expression: "format!(\"{:?}\", grid)" + +--- +00 (C): ➜ mosaic git:(mosaic#130) emacs +01 (C): ➜ mosaic git:(mosaic#130) emacs -nw +02 (C): ➜ mosaic git:(mosaic#130) exit +03 (C): + diff --git a/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__exa_plus_omf_theme.snap b/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__exa_plus_omf_theme.snap new file mode 100644 index 00000000..eba80043 --- /dev/null +++ b/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__exa_plus_omf_theme.snap @@ -0,0 +1,62 @@ +--- +source: zellij-server/src/panes/./unit/grid_tests.rs +expression: "format!(\"{:?}\", grid)" + +--- +00 (C): .rw-r--r-- 3.3k aram 11 Jan 16:09 CODE_OF_CONDUCT.md +01 (C): .rw-r--r-- 3.5k aram 17 Feb 16:06 CONTRIBUTING.md +02 (C): drwxr-xr-x - aram 10 Feb 11:53 default-tiles +03 (C): drwxr-xr-x - aram 10 Feb 11:53 docs +04 (C): .rw-r--r-- 2.1k aram 10 Feb 11:53 GOVERNANCE.md +05 (C): .rw-r--r-- 1.1k aram 10 Feb 11:53 LICENSE.md +06 (C): .rw-r--r-- 4.7k aram 17 Feb 16:06 README.md +07 (C): drwxr-xr-x - aram 17 Feb 16:06 src +08 (C): drwxr-xr-x - aram 17 Feb 16:08 target +09 (C): drwxr-xr-x - aram 17 Feb 16:06 zellij-tile +10 (C): ⋊> ~/c/zellij on main ⨯ ll 10:27:45 +11 (C): Permissions Size User Date Modified Name +12 (C): drwxr-xr-x - aram 11 Feb 14:04 assets +13 (C): .rwxr-xr-x 596 aram 17 Feb 16:06 build-all.sh +14 (C): .rw-r--r-- 1.4k aram 17 Feb 16:06 build.rs +15 (C): .rw-r--r-- 56k aram 17 Feb 16:07 Cargo.lock +16 (C): .rw-r--r-- 2.1k aram 17 Feb 16:06 Cargo.toml +17 (C): .rw-r--r-- 3.3k aram 11 Jan 16:09 CODE_OF_CONDUCT.md +18 (C): .rw-r--r-- 3.5k aram 17 Feb 16:06 CONTRIBUTING.md +19 (C): drwxr-xr-x - aram 10 Feb 11:53 default-tiles +20 (C): drwxr-xr-x - aram 10 Feb 11:53 docs +21 (C): .rw-r--r-- 2.1k aram 10 Feb 11:53 GOVERNANCE.md +22 (C): .rw-r--r-- 1.1k aram 10 Feb 11:53 LICENSE.md +23 (C): .rw-r--r-- 4.7k aram 17 Feb 16:06 README.md +24 (C): drwxr-xr-x - aram 17 Feb 16:06 src +25 (C): drwxr-xr-x - aram 17 Feb 16:08 target +26 (C): drwxr-xr-x - aram 17 Feb 16:06 zellij-tile +27 (C): ⋊> ~/c/zellij on main ⨯ omf theme 10:27:45 +28 (C): Installed: +29 (C): agnoster chain default plain +30 (C): +31 (C): Available: +32 (C): agnoster eden lavender scorphish +33 (C): aight emoji-powerline lolfish separation +34 (C): ays es mars shellder +35 (C): batman fishbone mish simple-ass-prompt +36 (C): beloglazov fishface mokou simplevi +37 (C): bira fishy-drupal mtahmed slavic-cat +38 (C): bobthefish fisk nai spacefish +39 (C): bongnoster fox nelsonjchen sushi +40 (C): boxfish gentoo neolambda syl20bnr +41 (C): budspencer gianu numist taktoa +42 (C): cbjohnson gitstatus ocean technopagan +43 (C): chain gnuykeaj one toaster +44 (C): clearance godfather pastfish tomita +45 (C): cmorrell graystatus perryh trout +46 (C): coffeeandcode harleen plain tweetjay +47 (C): cor idan pure uggedal +48 (C): cyan integral pygmalion will +49 (C): dangerous jacaetevha random wolf-theme +50 (C): default johanson randomrussel yimmy +51 (C): dmorrell kawasaki redfish zeit +52 (C): doughsay krisleech red-snapper zephyr +53 (C): eclm l robbyrussell zish +54 (C): edan lambda sashimi +55 (C): ⋊> ~/c/zellij on main ⨯ 10:27:46 + diff --git a/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__fish_paste_multiline.snap b/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__fish_paste_multiline.snap new file mode 100644 index 00000000..faf24017 --- /dev/null +++ b/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__fish_paste_multiline.snap @@ -0,0 +1,27 @@ +--- +source: zellij-server/src/panes/./unit/grid_tests.rs +expression: "format!(\"{:?}\", grid)" + +--- +00 (C): +01 (C): OS: 5.9.14-arch1-1 GNU/Linux +02 (C): Uptime: 12 hours, 21 minutes +03 (C): Hostname: kingdom +04 (C): Disk usage: +05 (C): +06 (C): df: /run/user/1000/doc: Operation not permitted +07 (C): / 295G / 514G 61% +08 (C): /efi 27M / 96M 28% +09 (C): +10 (C): Network: +11 (C): +12 (C): wlp2s0 192.168.0.3 +13 (C): +14 (C): [I] [21:58] kingdom:mosaic (main) | echo -ne (\ +15 (C): df -l -h | grep -E 'dev/(xvda|sd|mapper)' | \ +16 (C): awk '{printf "\\\\t%s\\\\t%4s / %4s %s\\\\n\n", $6, $3, $2, $5}' | \ +17 (C): sed -e 's/^\(.*\([8][5-9]\|[9][0-9]\)%.*\)$/\\\\e[0;31m\1\\\\e[0m/' -e 's/^\(.*\([7][5-9]\|[8][0-4]\)%.*\ +18 (W): )$/\\\\e[0;33m\1\\\\e[0m/' | \ +19 (C): paste -sd ''\ +20 (C): ) + diff --git a/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__fish_select_tab_completion_options.snap b/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__fish_select_tab_completion_options.snap new file mode 100644 index 00000000..88addebb --- /dev/null +++ b/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__fish_select_tab_completion_options.snap @@ -0,0 +1,11 @@ +--- +source: zellij-server/src/panes/./unit/grid_tests.rs +expression: "format!(\"{:?}\", grid)" + +--- +00 (C): Welcome to fish, the friendly interactive shell +01 (C): ⋊> ~/c/mosaic on main ⨯ sudo badblocks 11:32:23 +02 (C): badblocks (Executable, 33kB) base64 (Executable, 42kB) bash (Executable, 906kB) +03 (C): bandwhich (Executable, 3.0MB) basename (Executable, 38kB) bashbug (Executable, 6.8kB) +04 (C): base32 (Executable, 42kB) basenc (Executable, 50kB) bass + diff --git a/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__fish_tab_completion_options.snap b/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__fish_tab_completion_options.snap new file mode 100644 index 00000000..a093e708 --- /dev/null +++ b/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__fish_tab_completion_options.snap @@ -0,0 +1,11 @@ +--- +source: zellij-server/src/panes/./unit/grid_tests.rs +expression: "format!(\"{:?}\", grid)" + +--- +00 (C): Welcome to fish, the friendly interactive shell +01 (C): ⋊> ~/c/mosaic on main ⨯ sudo bandwhich 11:18:26 +02 (C): badblocks (Executable, 33kB) base64 (Executable, 42kB) bash (Executable, 906kB) +03 (C): bandwhich (Executable, 3.0MB) basename (Executable, 38kB) bashbug (Executable, 6.8kB) +04 (C): base32 (Executable, 42kB) basenc (Executable, 50kB) bass + diff --git a/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__git_diff_scrollup.snap b/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__git_diff_scrollup.snap new file mode 100644 index 00000000..e4c5e29f --- /dev/null +++ b/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__git_diff_scrollup.snap @@ -0,0 +1,34 @@ +--- +source: zellij-server/src/panes/./unit/grid_tests.rs +expression: "format!(\"{:?}\", grid)" + +--- +00 (W): +01 (W): src/terminal_pane/scroll.rs +02 (W): ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +03 (C): +04 (C): ────────────────────────────────────────────────┐ +05 (C): use crate::terminal_pane::terminal_character::{ │ +06 (C): ────────────────────────────────────────────────┘ +07 (C): 5 +08 (C): CharacterStyles, TerminalCharacter, EMPTY_TERMINAL_CHARACTER, +09 (C): }; +10 (C): +11 (C): use crate::utils::logging::debug_log_to_file; +12 (C): +13 (C): /* +14 (C): * Scroll +15 (C): * +16 (C): +17 (C): ──────────────┐ +18 (C): impl Scroll { │ +19 (C): ──────────────┘ +20 (C): 663 +21 (C): pub fn move_current_buffer_to_alternative_buffer(&mut self) { +22 (C): self.alternative_buffer = Some(self.canonical_lines.drain(..).collect()); +23 (C): self.alternative_cursor_position = Some(self.cursor_position); +24 (C): self.cursor_position.reset(); +25 (C): self.clear_all(); +26 (C): } +27 (C): : + diff --git a/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__git_log.snap b/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__git_log.snap new file mode 100644 index 00000000..6f0225ba --- /dev/null +++ b/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__git_log.snap @@ -0,0 +1,34 @@ +--- +source: zellij-server/src/panes/./unit/grid_tests.rs +expression: "format!(\"{:?}\", grid)" + +--- +00 (C): +01 (C): * wip: doesn't render when new tab is created? +02 (C): +03 (C): * wip: doesnt re-render when a new tab is spawned for now +04 (C): +05 (C): * wip: tabs now are a BTreeMap and we can switch between them in both directions +06 (C): +07 (C): * wip: I think that should also be here +08 (C): +09 (C): * wip: cleanup +10 (C): +11 (C): * Spawn a new terminal simultaneously with a new tab +12 (C): +13 (C): * Ensure proper Opening and Closing of tabs +14 (C): +15 (C): * cleanup +16 (C): +17 (C): * more cleanup +18 (C): +19 (C): * tests(snapshots): add 'loading' snapshot to each scenario +20 (C): +21 (C): * fix(tests): update snapshots +22 (C): +23 (C): * Add tests for tabs implementation +24 (C): +25 (C): * wip: added tests, moved tab related stuff to a separate file +26 (C): +27 (C): : + diff --git a/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__htop.snap b/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__htop.snap new file mode 100644 index 00000000..a692b163 --- /dev/null +++ b/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__htop.snap @@ -0,0 +1,34 @@ +--- +source: zellij-server/src/panes/./unit/grid_tests.rs +expression: "format!(\"{:?}\", grid)" + +--- +00 (C): +01 (C): 1 [||||| 10.1%] Tasks: 73, 413 thr; 1 running +02 (C): 2 [||||||| 13.5%] Load average: 1.03 1.07 1.30 +03 (C): 3 [|||||| 10.8%] Uptime: 22:41:15 +04 (C): 4 [|||||| 10.6%] +05 (C): Mem[|||||||||||||||||||||||||||||||||||||3.28G/15.3G] +06 (C): Swp[ 0K/16.0G] +07 (C): +08 (C): PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command +09 (C): 1352 aram 20 0 3776M 581M 238M S 8.7 3.7 2h01:10 /usr/lib/firefox/firefox +10 (C): 98777 aram 20 0 537M 6184 4240 S 8.1 0.0 0:00.80 target/debug/mosaic --debug +11 (C): 1669 aram 20 0 2944M 318M 130M S 8.1 2.0 1h01:33 /usr/lib/firefox/firefox -contentproc -childID 6 -i +12 (C): 826 aram 9 -11 1581M 15092 11244 S 6.1 0.1 42:21.83 /usr/bin/pulseaudio --daemonize=no +13 (C): 9419 aram 20 0 533M 7392 3344 S 4.7 0.0 22:01.92 /usr/local/bin/mosaic --max-panes 4 +14 (C): 98913 aram 20 0 537M 6184 4240 S 3.4 0.0 0:00.31 target/debug/mosaic --debug +15 (C): 1505 aram 20 0 3187M 329M 206M S 3.4 2.1 23:35.90 /usr/lib/firefox/firefox -contentproc -childID 2 -i +16 (C): 98912 aram 20 0 537M 6184 4240 S 2.7 0.0 0:00.22 target/debug/mosaic --debug +17 (C): 1164 aram -6 0 1581M 15092 11244 S 2.7 0.1 21:39.80 /usr/bin/pulseaudio --daemonize=no +18 (C): 1247 aram 20 0 1184M 292M 84828 S 2.7 1.9 38:01.54 /usr/lib/Xorg -nolisten tcp :0 vt1 -keeptty -auth / +19 (C): 1475 aram -11 0 3776M 581M 238M S 2.0 3.7 14:27.94 /usr/lib/firefox/firefox +20 (C): 8574 aram 20 0 2944M 318M 130M S 2.0 2.0 14:36.50 /usr/lib/firefox/firefox -contentproc -childID 6 -i +21 (C): 1364 aram 20 0 3776M 581M 238M S 2.0 3.7 18:01.89 /usr/lib/firefox/firefox +22 (C): 1870 aram 20 0 3776M 581M 238M S 2.0 3.7 13:27.06 /usr/lib/firefox/firefox +23 (C): 9427 aram 20 0 533M 7392 3344 S 2.0 0.0 6:53.47 /usr/local/bin/mosaic --max-panes 4 +24 (C): 98905 aram 20 0 537M 6184 4240 S 2.0 0.0 0:00.17 target/debug/mosaic --debug +25 (C): 99272 aram 20 0 8456 4348 3320 R 1.3 0.0 0:00.13 htop +26 (C): 8611 aram 20 0 2944M 318M 130M S 1.3 2.0 8:17.90 /usr/lib/firefox/firefox -contentproc -childID 6 -i +27 (C): F1Help F2Setup F3SearchF4FilterF5Tree F6SortByF7Nice -F8Nice +F9Kill F10Quit + diff --git a/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__htop_right_scrolling.snap b/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__htop_right_scrolling.snap new file mode 100644 index 00000000..aca29e3e --- /dev/null +++ b/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__htop_right_scrolling.snap @@ -0,0 +1,34 @@ +--- +source: zellij-server/src/panes/./unit/grid_tests.rs +expression: "format!(\"{:?}\", grid)" + +--- +00 (C): +01 (C): 1 [|||||||||| 16.9%] Tasks: 110, 512 thr; 1 running +02 (C): 2 [|||||||||| 17.1%] Load average: 1.04 1.30 1.29 +03 (C): 3 [||||||| 13.9%] Uptime: 6 days, 07:01:39 +04 (C): 4 [||||||||| 14.9%] +05 (C): Mem[|||||||||||||||||||||||||||||||||||||8.80G/15.3G] +06 (C): Swp[| 2.82M/16.0G] +07 (C): +08 (C): PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command +09 (C): 20 0 8576 4508 3356 R 1.3 0.0 0:00.11 htop +10 (C): 20 0 171M 10868 7804 S 0.0 0.1 2:08.38 /sbin/init +11 (C): 20 0 107M 29364 28092 S 0.0 0.2 0:03.42 /usr/lib/systemd/systemd-journald +12 (C): 20 0 32648 9568 6616 S 0.0 0.1 0:01.87 /usr/lib/systemd/systemd-udevd +13 (C): 20 0 78060 992 856 S 0.0 0.0 0:00.00 /usr/bin/lvmetad -f +14 (C): 20 0 6952 4356 3492 S 0.0 0.0 0:57.67 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidf +15 (C): 20 0 14824 7552 5984 S 0.0 0.0 0:12.93 /usr/bin/connmand -n --nodnsproxy +16 (C): 20 0 17696 7940 6696 S 0.0 0.0 0:01.25 /usr/lib/systemd/systemd-logind +17 (C): 20 0 1635M 56148 20460 S 0.0 0.3 1:27.24 /usr/bin/dockerd -H fd:// +18 (C): 20 0 1635M 56148 20460 S 0.0 0.3 0:38.37 /usr/bin/dockerd -H fd:// +19 (C): 20 0 1635M 56148 20460 S 0.0 0.3 0:00.01 /usr/bin/dockerd -H fd:// +20 (C): 20 0 1635M 56148 20460 S 0.0 0.3 0:00.00 /usr/bin/dockerd -H fd:// +21 (C): 20 0 1635M 56148 20460 S 0.0 0.3 0:00.00 /usr/bin/dockerd -H fd:// +22 (C): 20 0 1635M 56148 20460 S 0.0 0.3 0:00.00 /usr/bin/dockerd -H fd:// +23 (C): 20 0 1635M 56148 20460 S 0.0 0.3 1:47.55 /usr/bin/dockerd -H fd:// +24 (C): 20 0 1635M 56148 20460 S 0.0 0.3 1:26.19 /usr/bin/dockerd -H fd:// +25 (C): 20 0 1635M 56148 20460 S 0.0 0.3 1:40.77 /usr/bin/dockerd -H fd:// +26 (C): 20 0 1635M 56148 20460 S 0.0 0.3 1:47.26 /usr/bin/dockerd -H fd:// +27 (C): F1Help F2Setup F3SearchF4FilterF5Tree F6SortByF7Nice -F8Nice +F9Kill F10Quit + diff --git a/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__htop_scrolling.snap b/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__htop_scrolling.snap new file mode 100644 index 00000000..5f6c323d --- /dev/null +++ b/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__htop_scrolling.snap @@ -0,0 +1,34 @@ +--- +source: zellij-server/src/panes/./unit/grid_tests.rs +expression: "format!(\"{:?}\", grid)" + +--- +00 (C): +01 (C): 1 [||||||||||||||||||||||||||||||||||||||||||100.0%] Tasks: 79, 382 thr; 1 running +02 (C): 2 [ 0.0%] Load average: 1.40 1.43 1.38 +03 (C): 3 [ 0.0%] Uptime: 2 days, 07:33:50 +04 (C): 4 [ 0.0%] +05 (C): Mem[|||||||||||||||||||||||||||||||||||||3.64G/15.3G] +06 (C): Swp[ 0K/16.0G] +07 (C): +08 (C): PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command +09 (W): 123934 aram 20 0 8444 4384 3364 R 66.7 0.0 0:00.05 htop --delay=100000000000 +10 (C): 1 root 20 0 171M 11616 8608 S 0.0 0.1 0:56.91 /sbin/init +11 (C): 268 root 20 0 93324 34340 33072 S 0.0 0.2 0:01.05 /usr/lib/systemd/systemd-journald +12 (C): 276 root 20 0 32648 10192 7240 S 0.0 0.1 0:01.13 /usr/lib/systemd/systemd-udevd +13 (C): 286 root 20 0 78060 1132 996 S 0.0 0.0 0:00.00 /usr/bin/lvmetad -f +14 (C): 343 dbus 20 0 6952 4384 3520 S 0.0 0.0 0:13.85 /usr/bin/dbus-daemon --system --address=systemd: -- +15 (C): 344 root 20 0 14588 7512 6176 S 0.0 0.0 0:03.21 /usr/bin/connmand -n --nodnsproxy +16 (C): 345 root 20 0 17696 8372 7128 S 0.0 0.1 0:00.67 /usr/lib/systemd/systemd-logind +17 (C): 395 root 20 0 1635M 83324 44976 S 0.0 0.5 0:32.43 /usr/bin/dockerd -H fd:// +18 (C): 396 root 20 0 1635M 83324 44976 S 0.0 0.5 0:00.01 /usr/bin/dockerd -H fd:// +19 (C): 397 root 20 0 1635M 83324 44976 S 0.0 0.5 0:00.01 /usr/bin/dockerd -H fd:// +20 (C): 398 root 20 0 1635M 83324 44976 S 0.0 0.5 0:00.00 /usr/bin/dockerd -H fd:// +21 (C): 399 root 20 0 1635M 83324 44976 S 0.0 0.5 0:00.00 /usr/bin/dockerd -H fd:// +22 (C): 412 root 20 0 1635M 83324 44976 S 0.0 0.5 0:00.00 /usr/bin/dockerd -H fd:// +23 (C): 441 root 20 0 1635M 83324 44976 S 0.0 0.5 0:41.35 /usr/bin/dockerd -H fd:// +24 (C): 442 root 20 0 1635M 83324 44976 S 0.0 0.5 0:33.61 /usr/bin/dockerd -H fd:// +25 (C): 444 root 20 0 1635M 83324 44976 S 0.0 0.5 0:33.13 /usr/bin/dockerd -H fd:// +26 (C): 449 root 20 0 1635M 83324 44976 S 0.0 0.5 0:41.39 /usr/bin/dockerd -H fd:// +27 (C): F1Help F2Setup F3SearchF4FilterF5Tree F6SortByF7Nice -F8Nice +F9Kill F10Quit + diff --git a/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__neovim_insert_mode.snap b/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__neovim_insert_mode.snap new file mode 100644 index 00000000..9c2536d4 --- /dev/null +++ b/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__neovim_insert_mode.snap @@ -0,0 +1,34 @@ +--- +source: zellij-server/src/panes/./unit/grid_tests.rs +expression: "format!(\"{:?}\", grid)" + +--- +00 (C): line 1 +01 (C): line 2 +02 (C): line 3 +03 (C): line 4 +04 (C): line 5 +05 (C): line 6 +06 (C): line 7 +07 (C): line 8 +08 (C): line 9 +09 (C): line 10 +10 (C): line 11 +11 (C): line 12 +12 (C): line 13 +13 (C): line 14 +14 (C): line 15 +15 (C): line 16 +16 (C): line 17 +17 (C): line 18 +18 (C): line 19 +19 (C): line 20 +20 (C): line 21 +21 (C): line 22 +22 (C): line 23 +23 (C): line 24 +24 (C): line 25 +25 (C): line 26 +26 (C): some-file 10,1 Top +27 (C): -- INSERT -- + diff --git a/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__run_bandwhich_from_fish_shell.snap b/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__run_bandwhich_from_fish_shell.snap new file mode 100644 index 00000000..257fd889 --- /dev/null +++ b/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__run_bandwhich_from_fish_shell.snap @@ -0,0 +1,34 @@ +--- +source: zellij-server/src/panes/./unit/grid_tests.rs +expression: "format!(\"{:?}\", grid)" + +--- +00 (C): Total Up / Down: 46Bps / 57Bps +01 (C): ┌Utilization by process name───────────────────────────────────────────────────────────────────────────────────────┐ +02 (C): │Process Connections Up / Down │ +03 (C): │ │ +04 (C): │firefox 3 46Bps / 57Bps │ +05 (C): │ │ +06 (C): │ │ +07 (C): │ │ +08 (C): │ │ +09 (C): │ │ +10 (C): │ │ +11 (C): │ │ +12 (C): │ │ +13 (C): │ │ +14 (C): │ │ +15 (C): │ │ +16 (C): │ │ +17 (C): │ │ +18 (C): │ │ +19 (C): │ │ +20 (C): │ │ +21 (C): │ │ +22 (C): │ │ +23 (C): │ │ +24 (C): │ │ +25 (C): │ │ +26 (C): └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ +27 (C): Press to pause. Use to rearrange tables. (DNS queries hidden). + diff --git a/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__top_and_quit.snap b/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__top_and_quit.snap new file mode 100644 index 00000000..250e5b45 --- /dev/null +++ b/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__top_and_quit.snap @@ -0,0 +1,62 @@ +--- +source: zellij-server/src/panes/./unit/grid_tests.rs +expression: "format!(\"{:?}\", grid)" + +--- +00 (C): Tasks: 158 total, 1 running, 157 sleeping, 0 stopped, 0 zombie +01 (C): %Cpu(s): 24.2 us, 1.6 sy, 0.0 ni, 74.2 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st +02 (C): MiB Mem : 15715.1 total, 7001.4 free, 2163.7 used, 6549.9 buff/cache +03 (C): MiB Swap: 16384.0 total, 16384.0 free, 0.0 used. 12809.8 avail Mem +04 (C): +05 (C): PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND +06 (C): 15838 aram 20 0 7275240 56912 18964 S 73.3 0.4 0:17.79 zellij +07 (C): 12653 aram 20 0 39032 22164 14372 S 20.0 0.1 0:00.63 urxvt +08 (C): 1477 aram 20 0 3178660 301992 203236 S 6.7 1.9 3:49.82 Web Content +09 (C): 1 root 20 0 175360 11532 8596 S 0.0 0.1 0:05.90 systemd +10 (C): 2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd +11 (C): 3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp +12 (C): 4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_par_gp +13 (C): 6 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/0:0H-kblockd +14 (C): 8 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 mm_percpu_wq +15 (C): 9 root 20 0 0 0 0 S 0.0 0.0 0:01.24 ksoftirqd/0 +16 (C): 10 root -2 0 0 0 0 S 0.0 0.0 0:00.00 rcuc/0 +17 (C): 11 root -2 0 0 0 0 I 0.0 0.0 0:06.12 rcu_preempt +18 (C): 12 root -2 0 0 0 0 S 0.0 0.0 0:00.00 rcub/0 +19 (C): 13 root rt 0 0 0 0 S 0.0 0.0 0:00.01 migration/0 +20 (C): 14 root -51 0 0 0 0 S 0.0 0.0 0:00.00 idle_inject/0 +21 (C): 16 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/0 +22 (C): 17 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/1 +23 (C): 18 root -51 0 0 0 0 S 0.0 0.0 0:00.00 idle_inject/1 +24 (C): 19 root rt 0 0 0 0 S 0.0 0.0 0:00.35 migration/1 +25 (C): 20 root -2 0 0 0 0 S 0.0 0.0 0:00.00 rcuc/1 +26 (C): 21 root 20 0 0 0 0 S 0.0 0.0 0:00.49 ksoftirqd/1 +27 (C): 23 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/1:0H-kblockd +28 (C): 24 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/2 +29 (C): 25 root -51 0 0 0 0 S 0.0 0.0 0:00.00 idle_inject/2 +30 (C): 26 root rt 0 0 0 0 S 0.0 0.0 0:00.39 migration/2 +31 (C): 27 root -2 0 0 0 0 S 0.0 0.0 0:00.00 rcuc/2 +32 (C): 28 root 20 0 0 0 0 S 0.0 0.0 0:00.99 ksoftirqd/2 +33 (C): 30 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/2:0H-kblockd +34 (C): 31 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/3 +35 (C): 32 root -51 0 0 0 0 S 0.0 0.0 0:00.00 idle_inject/3 +36 (C): 33 root rt 0 0 0 0 S 0.0 0.0 0:00.43 migration/3 +37 (C): 34 root -2 0 0 0 0 S 0.0 0.0 0:00.00 rcuc/3 +38 (C): 35 root 20 0 0 0 0 S 0.0 0.0 0:00.90 ksoftirqd/3 +39 (C): 37 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/3:0H-kblockd +40 (C): 38 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmpfs +41 (C): 39 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 netns +42 (C): 40 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_tasks_kthre +43 (C): 41 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kauditd +44 (C): 44 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khungtaskd +45 (C): 45 root 20 0 0 0 0 S 0.0 0.0 0:00.00 oom_reaper +46 (C): 46 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 writeback +47 (C): 47 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kcompactd0 +48 (C): 48 root 25 5 0 0 0 S 0.0 0.0 0:00.00 ksmd +49 (C): 49 root 39 19 0 0 0 S 0.0 0.0 0:00.00 khugepaged +50 (C): 137 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kintegrityd +51 (C): 138 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kblockd +52 (C): 139 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 blkcg_punt_bio +53 (C): 140 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 ata_sff +54 (C): 141 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 edac-poller +55 (C): ⋊> ~/c/zellij on fix-top ⨯ 13:00:53 + diff --git a/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__vim_ctrl_d.snap b/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__vim_ctrl_d.snap new file mode 100644 index 00000000..e9b83504 --- /dev/null +++ b/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__vim_ctrl_d.snap @@ -0,0 +1,34 @@ +--- +source: zellij-server/src/panes/./unit/grid_tests.rs +expression: "format!(\"{:?}\", grid)" + +--- +00 (C): 3 line14 +01 (C): 2 line15 +02 (C): 1 line16 +03 (C): 17 line17 +04 (C): 1 line18 +05 (C): 2 line19 +06 (C): 3 line20 +07 (C): 4 line21 +08 (C): 5 line22 +09 (C): 6 line23 +10 (C): 7 line24 +11 (C): 8 line25 +12 (C): 9 line26 +13 (C): 10 line27 +14 (C): 11 line28 +15 (C): 12 line29 +16 (C): 13 line30 +17 (C): 14 line31 +18 (C): 15 line32 +19 (C): 16 line33 +20 (C): 17 line34 +21 (C): 18 line35 +22 (C): 19 line36 +23 (C): 20 line37 +24 (C): 21 line38 +25 (C): 22 line39 +26 (C): NORMAL testfile.rs unix | utf-8 | rust 40% 17:1 +27 (C): + diff --git a/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__vim_ctrl_u.snap b/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__vim_ctrl_u.snap new file mode 100644 index 00000000..f886a2eb --- /dev/null +++ b/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__vim_ctrl_u.snap @@ -0,0 +1,34 @@ +--- +source: zellij-server/src/panes/./unit/grid_tests.rs +expression: "format!(\"{:?}\", grid)" + +--- +00 (C): 22 line4 +01 (C): 21 line5 +02 (C): 20 line6 +03 (C): 19 line7 +04 (C): 18 line8 +05 (C): 17 line9 +06 (C): 16 line10 +07 (C): 15 line11 +08 (C): 14 line12 +09 (C): 13 line13 +10 (C): 12 line14 +11 (C): 11 line15 +12 (C): 10 line16 +13 (C): 9 line17 +14 (C): 8 line18 +15 (C): 7 line19 +16 (C): 6 line20 +17 (C): 5 line21 +18 (C): 4 line22 +19 (C): 3 line23 +20 (C): 2 line24 +21 (C): 1 line25 +22 (C): 26 line26 +23 (C): 1 line27 +24 (C): 2 line28 +25 (C): 3 line29 +26 (C): NORMAL testfile.rs unix | utf-8 | rust 61% 26:1 +27 (C): + diff --git a/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__vim_overwrite.snap b/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__vim_overwrite.snap new file mode 100644 index 00000000..f8066d6a --- /dev/null +++ b/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__vim_overwrite.snap @@ -0,0 +1,34 @@ +--- +source: zellij-server/src/panes/./unit/grid_tests.rs +expression: "format!(\"{:?}\", grid)" + +--- +00 (C): 1 +01 (C): 1 line 1 +02 (C): 2 line 2 +03 (C): 3 line 3 +04 (C): 4 line 4 +05 (C): 5 line 5 +06 (C): 6 line 6 +07 (C): 7 line 7 +08 (C): 8 line 8 +09 (C): 9 line 9 +10 (C): 10 line 10 +11 (C): 11 line 11 +12 (C): 12 line 12 +13 (C): 13 line 13 +14 (C): 14 line 14 +15 (C): 15 line 15 +16 (C): 16 line 16 +17 (C): 17 line 17 +18 (C): 18 line 18 +19 (C): 19 line 19 +20 (C): 20 line 20 +21 (C): 21 line 21 +22 (C): 22 line 22 +23 (C): 23 line 23 +24 (C): 24 line 24 +25 (C): 25 line 25 +26 (C): NORMAL some-file unix | utf-8 | no ft 1% 1:1 +27 (C): + diff --git a/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__vim_scroll_region_down.snap b/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__vim_scroll_region_down.snap new file mode 100644 index 00000000..17a18220 --- /dev/null +++ b/zellij-server/src/panes/unit/snapshots/zellij_server__panes__grid__grid_tests__vim_scroll_region_down.snap @@ -0,0 +1,34 @@ +--- +source: zellij-server/src/panes/./unit/grid_tests.rs +expression: "format!(\"{:?}\", grid)" + +--- +00 (C): 22 line2 +01 (C): 21 line3 +02 (C): 20 line4 +03 (C): 19 line5 +04 (C): 18 line6 +05 (C): 17 line7 +06 (C): 16 line8 +07 (C): 15 line9 +08 (C): 14 line10 +09 (C): 13 line11 +10 (C): 12 line12 +11 (C): 11 line13 +12 (C): 10 line14 +13 (C): 9 line15 +14 (C): 8 line16 +15 (C): 7 line17 +16 (C): 6 line18 +17 (C): 5 line19 +18 (C): 4 line20 +19 (C): 3 line21 +20 (C): 2 line22 +21 (C): 1 line23 +22 (C): 24 line24 +23 (C): 1 line25 +24 (C): 2 line26 +25 (C): 3 line27 +26 (C): NORMAL testfile.rs unix | utf-8 | rust 57% 24:1 +27 (C): + diff --git a/zellij-server/src/panes/unit/snapshots/zellij_server__panes__terminal_pane__grid_tests__scrolling_inside_a_pane-2.snap b/zellij-server/src/panes/unit/snapshots/zellij_server__panes__terminal_pane__grid_tests__scrolling_inside_a_pane-2.snap new file mode 100644 index 00000000..cd74ae8f --- /dev/null +++ b/zellij-server/src/panes/unit/snapshots/zellij_server__panes__terminal_pane__grid_tests__scrolling_inside_a_pane-2.snap @@ -0,0 +1,26 @@ +--- +source: zellij-server/src/panes/./unit/terminal_pane_tests.rs +expression: "format!(\"{:?}\", terminal_pane . grid)" + +--- +00 (C): line 5 +01 (C): line 6 +02 (C): line 7 +03 (C): line 8 +04 (C): line 9 +05 (C): line 10 +06 (C): line 11 +07 (C): line 12 +08 (C): line 13 +09 (C): line 14 +10 (C): line 15 +11 (C): line 16 +12 (C): line 17 +13 (C): line 18 +14 (C): line 19 +15 (C): line 20 +16 (C): line 21 +17 (C): line 22 +18 (C): line 23 +19 (C): line 24 + diff --git a/zellij-server/src/panes/unit/snapshots/zellij_server__panes__terminal_pane__grid_tests__scrolling_inside_a_pane-3.snap b/zellij-server/src/panes/unit/snapshots/zellij_server__panes__terminal_pane__grid_tests__scrolling_inside_a_pane-3.snap new file mode 100644 index 00000000..4c1776c0 --- /dev/null +++ b/zellij-server/src/panes/unit/snapshots/zellij_server__panes__terminal_pane__grid_tests__scrolling_inside_a_pane-3.snap @@ -0,0 +1,26 @@ +--- +source: zellij-server/src/panes/./unit/terminal_pane_tests.rs +expression: "format!(\"{:?}\", terminal_pane . grid)" + +--- +00 (C): line 12 +01 (C): line 13 +02 (C): line 14 +03 (C): line 15 +04 (C): line 16 +05 (C): line 17 +06 (C): line 18 +07 (C): line 19 +08 (C): line 20 +09 (C): line 21 +10 (C): line 22 +11 (C): line 23 +12 (C): line 24 +13 (C): line 25 +14 (C): line 26 +15 (C): line 27 +16 (C): line 28 +17 (C): line 29 +18 (C): line 30 +19 (C): + diff --git a/zellij-server/src/panes/unit/snapshots/zellij_server__panes__terminal_pane__grid_tests__scrolling_inside_a_pane.snap b/zellij-server/src/panes/unit/snapshots/zellij_server__panes__terminal_pane__grid_tests__scrolling_inside_a_pane.snap new file mode 100644 index 00000000..0d852f68 --- /dev/null +++ b/zellij-server/src/panes/unit/snapshots/zellij_server__panes__terminal_pane__grid_tests__scrolling_inside_a_pane.snap @@ -0,0 +1,26 @@ +--- +source: zellij-server/src/panes/./unit/terminal_pane_tests.rs +expression: "format!(\"{:?}\", terminal_pane . grid)" + +--- +00 (C): line 2 +01 (C): line 3 +02 (C): line 4 +03 (C): line 5 +04 (C): line 6 +05 (C): line 7 +06 (C): line 8 +07 (C): line 9 +08 (C): line 10 +09 (C): line 11 +10 (C): line 12 +11 (C): line 13 +12 (C): line 14 +13 (C): line 15 +14 (C): line 16 +15 (C): line 17 +16 (C): line 18 +17 (C): line 19 +18 (C): line 20 +19 (C): line 21 + diff --git a/zellij-server/src/panes/unit/terminal_pane_tests.rs b/zellij-server/src/panes/unit/terminal_pane_tests.rs new file mode 100644 index 00000000..f3abf91a --- /dev/null +++ b/zellij-server/src/panes/unit/terminal_pane_tests.rs @@ -0,0 +1,30 @@ +use super::super::TerminalPane; +use crate::tab::Pane; +use ::insta::assert_snapshot; +use zellij_utils::pane_size::PositionAndSize; +use zellij_utils::zellij_tile::data::Palette; + +#[test] +pub fn scrolling_inside_a_pane() { + let fake_win_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let pid = 1; + let palette = Palette::default(); + let mut terminal_pane = TerminalPane::new(pid, fake_win_size, palette); + let mut text_to_fill_pane = String::new(); + for i in 0..30 { + text_to_fill_pane.push_str(&format!("\rline {}\n", i + 1)); + } + terminal_pane.handle_pty_bytes(text_to_fill_pane.as_bytes().to_vec()); + terminal_pane.scroll_up(10); + assert_snapshot!(format!("{:?}", terminal_pane.grid)); + terminal_pane.scroll_down(3); + assert_snapshot!(format!("{:?}", terminal_pane.grid)); + terminal_pane.clear_scroll(); + assert_snapshot!(format!("{:?}", terminal_pane.grid)); +} diff --git a/zellij-server/src/pty.rs b/zellij-server/src/pty.rs index ea3d01a8..e7884f35 100644 --- a/zellij-server/src/pty.rs +++ b/zellij-server/src/pty.rs @@ -4,7 +4,6 @@ use async_std::future::timeout as async_timeout; use async_std::task::{self, JoinHandle}; use std::collections::HashMap; use std::os::unix::io::RawFd; -use std::path::PathBuf; use std::time::{Duration, Instant}; use crate::{ @@ -17,7 +16,7 @@ use crate::{ }; use zellij_utils::{ errors::{get_current_ctx, ContextType, PtyContext}, - input::layout::Layout, + input::{command::TerminalAction, layout::Layout}, logging::debug_to_file, }; @@ -26,10 +25,10 @@ pub type VteBytes = Vec; /// Instructions related to PTYs (pseudoterminals). #[derive(Clone, Debug)] pub(crate) enum PtyInstruction { - SpawnTerminal(Option), - SpawnTerminalVertically(Option), - SpawnTerminalHorizontally(Option), - NewTab, + SpawnTerminal(Option), + SpawnTerminalVertically(Option), + SpawnTerminalHorizontally(Option), + NewTab(Option), ClosePane(PaneId), CloseTab(Vec), Exit, @@ -43,7 +42,7 @@ impl From<&PtyInstruction> for PtyContext { PtyInstruction::SpawnTerminalHorizontally(_) => PtyContext::SpawnTerminalHorizontally, PtyInstruction::ClosePane(_) => PtyContext::ClosePane, PtyInstruction::CloseTab(_) => PtyContext::CloseTab, - PtyInstruction::NewTab => PtyContext::NewTab, + PtyInstruction::NewTab(_) => PtyContext::NewTab, PtyInstruction::Exit => PtyContext::Exit, } } @@ -61,32 +60,32 @@ pub(crate) fn pty_thread_main(mut pty: Pty, maybe_layout: Option) { let (event, mut err_ctx) = pty.bus.recv().expect("failed to receive event on channel"); err_ctx.add_call(ContextType::Pty((&event).into())); match event { - PtyInstruction::SpawnTerminal(file_to_open) => { - let pid = pty.spawn_terminal(file_to_open); + PtyInstruction::SpawnTerminal(terminal_action) => { + let pid = pty.spawn_terminal(terminal_action); pty.bus .senders .send_to_screen(ScreenInstruction::NewPane(PaneId::Terminal(pid))) .unwrap(); } - PtyInstruction::SpawnTerminalVertically(file_to_open) => { - let pid = pty.spawn_terminal(file_to_open); + PtyInstruction::SpawnTerminalVertically(terminal_action) => { + let pid = pty.spawn_terminal(terminal_action); pty.bus .senders .send_to_screen(ScreenInstruction::VerticalSplit(PaneId::Terminal(pid))) .unwrap(); } - PtyInstruction::SpawnTerminalHorizontally(file_to_open) => { - let pid = pty.spawn_terminal(file_to_open); + PtyInstruction::SpawnTerminalHorizontally(terminal_action) => { + let pid = pty.spawn_terminal(terminal_action); pty.bus .senders .send_to_screen(ScreenInstruction::HorizontalSplit(PaneId::Terminal(pid))) .unwrap(); } - PtyInstruction::NewTab => { + PtyInstruction::NewTab(terminal_action) => { if let Some(layout) = maybe_layout.clone() { - pty.spawn_terminals_for_layout(layout); + pty.spawn_terminals_for_layout(layout, terminal_action); } else { - let pid = pty.spawn_terminal(None); + let pid = pty.spawn_terminal(terminal_action); pty.bus .senders .send_to_screen(ScreenInstruction::NewTab(pid)) @@ -199,7 +198,6 @@ fn stream_terminal_bytes( } async_send_to_screen(senders.clone(), ScreenInstruction::Render).await; - #[cfg(not(any(feature = "test", test)))] // this is a little hacky, and is because the tests end the file as soon as // we read everything, rather than hanging until there is new data // a better solution would be to fix the test fakes, but this will do for now @@ -218,13 +216,13 @@ impl Pty { task_handles: HashMap::new(), } } - pub fn spawn_terminal(&mut self, file_to_open: Option) -> RawFd { + pub fn spawn_terminal(&mut self, terminal_action: Option) -> RawFd { let (pid_primary, pid_secondary): (RawFd, Pid) = self .bus .os_input .as_mut() .unwrap() - .spawn_terminal(file_to_open); + .spawn_terminal(terminal_action); let task_handle = stream_terminal_bytes( pid_primary, self.bus.senders.clone(), @@ -235,12 +233,20 @@ impl Pty { self.id_to_child_pid.insert(pid_primary, pid_secondary); pid_primary } - pub fn spawn_terminals_for_layout(&mut self, layout: Layout) { + pub fn spawn_terminals_for_layout( + &mut self, + layout: Layout, + terminal_action: Option, + ) { let total_panes = layout.total_terminal_panes(); let mut new_pane_pids = vec![]; for _ in 0..total_panes { - let (pid_primary, pid_secondary): (RawFd, Pid) = - self.bus.os_input.as_mut().unwrap().spawn_terminal(None); + let (pid_primary, pid_secondary): (RawFd, Pid) = self + .bus + .os_input + .as_mut() + .unwrap() + .spawn_terminal(terminal_action.clone()); self.id_to_child_pid.insert(pid_primary, pid_secondary); new_pane_pids.push(pid_primary); } @@ -266,9 +272,20 @@ impl Pty { PaneId::Terminal(id) => { let child_pid = self.id_to_child_pid.remove(&id).unwrap(); let handle = self.task_handles.remove(&id).unwrap(); - self.bus.os_input.as_mut().unwrap().kill(child_pid).unwrap(); task::block_on(async { - handle.cancel().await; + self.bus.os_input.as_mut().unwrap().kill(child_pid).unwrap(); + let timeout = Duration::from_millis(100); + match async_timeout(timeout, handle.cancel()).await { + Ok(_) => {} + _ => { + self.bus + .os_input + .as_mut() + .unwrap() + .force_kill(child_pid) + .unwrap(); + } + }; }); } PaneId::Plugin(pid) => drop( diff --git a/zellij-server/src/route.rs b/zellij-server/src/route.rs index 285f333c..22d843f0 100644 --- a/zellij-server/src/route.rs +++ b/zellij-server/src/route.rs @@ -10,6 +10,7 @@ use zellij_utils::{ channels::SenderWithContext, input::{ actions::{Action, Direction}, + command::TerminalAction, get_mode_info, }, ipc::{ClientToServerMsg, ExitReason, ServerToClientMsg}, @@ -108,12 +109,24 @@ fn route_action( .send_to_screen(ScreenInstruction::ScrollUp) .unwrap(); } + Action::ScrollUpAt(point) => { + session + .senders + .send_to_screen(ScreenInstruction::ScrollUpAt(point)) + .unwrap(); + } Action::ScrollDown => { session .senders .send_to_screen(ScreenInstruction::ScrollDown) .unwrap(); } + Action::ScrollDownAt(point) => { + session + .senders + .send_to_screen(ScreenInstruction::ScrollDownAt(point)) + .unwrap(); + } Action::PageScrollUp => { session .senders @@ -133,13 +146,26 @@ fn route_action( .unwrap(); } Action::NewPane(direction) => { + let shell = session.default_shell.clone(); let pty_instr = match direction { - Some(Direction::Left) => PtyInstruction::SpawnTerminalVertically(None), - Some(Direction::Right) => PtyInstruction::SpawnTerminalVertically(None), - Some(Direction::Up) => PtyInstruction::SpawnTerminalHorizontally(None), - Some(Direction::Down) => PtyInstruction::SpawnTerminalHorizontally(None), + Some(Direction::Left) => PtyInstruction::SpawnTerminalVertically(shell), + Some(Direction::Right) => PtyInstruction::SpawnTerminalVertically(shell), + Some(Direction::Up) => PtyInstruction::SpawnTerminalHorizontally(shell), + Some(Direction::Down) => PtyInstruction::SpawnTerminalHorizontally(shell), // No direction specified - try to put it in the biggest available spot - None => PtyInstruction::SpawnTerminal(None), + None => PtyInstruction::SpawnTerminal(shell), + }; + session.senders.send_to_pty(pty_instr).unwrap(); + } + Action::Run(command) => { + let run_cmd = Some(TerminalAction::RunCommand(command.clone().into())); + let pty_instr = match command.direction { + Some(Direction::Left) => PtyInstruction::SpawnTerminalVertically(run_cmd), + Some(Direction::Right) => PtyInstruction::SpawnTerminalVertically(run_cmd), + Some(Direction::Up) => PtyInstruction::SpawnTerminalHorizontally(run_cmd), + Some(Direction::Down) => PtyInstruction::SpawnTerminalHorizontally(run_cmd), + // No direction specified - try to put it in the biggest available spot + None => PtyInstruction::SpawnTerminal(run_cmd), }; session.senders.send_to_pty(pty_instr).unwrap(); } @@ -150,7 +176,11 @@ fn route_action( .unwrap(); } Action::NewTab => { - session.senders.send_to_pty(PtyInstruction::NewTab).unwrap(); + let shell = session.default_shell.clone(); + session + .senders + .send_to_pty(PtyInstruction::NewTab(shell)) + .unwrap(); } Action::GoToNextTab => { session @@ -196,6 +226,30 @@ fn route_action( to_server.send(ServerInstruction::DetachSession).unwrap(); should_break = true; } + Action::LeftClick(point) => { + session + .senders + .send_to_screen(ScreenInstruction::LeftClick(point)) + .unwrap(); + } + Action::MouseRelease(point) => { + session + .senders + .send_to_screen(ScreenInstruction::MouseRelease(point)) + .unwrap(); + } + Action::MouseHold(point) => { + session + .senders + .send_to_screen(ScreenInstruction::MouseHold(point)) + .unwrap(); + } + Action::Copy => { + session + .senders + .send_to_screen(ScreenInstruction::Copy) + .unwrap(); + } Action::NoOp => {} } should_break diff --git a/zellij-server/src/screen.rs b/zellij-server/src/screen.rs index 009a3a92..9005d795 100644 --- a/zellij-server/src/screen.rs +++ b/zellij-server/src/screen.rs @@ -5,7 +5,7 @@ use std::os::unix::io::RawFd; use std::str; use std::sync::{Arc, RwLock}; -use zellij_utils::{input::layout::Layout, zellij_tile}; +use zellij_utils::{input::layout::Layout, position::Position, zellij_tile}; use crate::{ panes::PaneId, @@ -47,7 +47,9 @@ pub(crate) enum ScreenInstruction { MoveFocusRightOrNextTab, Exit, ScrollUp, + ScrollUpAt(Position), ScrollDown, + ScrollDownAt(Position), PageScrollUp, PageScrollDown, ClearScroll, @@ -68,6 +70,10 @@ pub(crate) enum ScreenInstruction { UpdateTabName(Vec), TerminalResize(PositionAndSize), ChangeMode(ModeInfo), + LeftClick(Position), + MouseRelease(Position), + MouseHold(Position), + Copy, } impl From<&ScreenInstruction> for ScreenContext { @@ -119,6 +125,12 @@ impl From<&ScreenInstruction> for ScreenContext { ScreenInstruction::TerminalResize(_) => ScreenContext::TerminalResize, ScreenInstruction::ChangeMode(_) => ScreenContext::ChangeMode, ScreenInstruction::ToggleActiveSyncTab => ScreenContext::ToggleActiveSyncTab, + ScreenInstruction::ScrollUpAt(_) => ScreenContext::ScrollUpAt, + ScreenInstruction::ScrollDownAt(_) => ScreenContext::ScrollDownAt, + ScreenInstruction::LeftClick(_) => ScreenContext::LeftClick, + ScreenInstruction::MouseRelease(_) => ScreenContext::MouseRelease, + ScreenInstruction::MouseHold(_) => ScreenContext::MouseHold, + ScreenInstruction::Copy => ScreenContext::Copy, } } } @@ -393,6 +405,16 @@ impl Screen { tab.mode_info = self.mode_info.clone(); } } + pub fn move_focus_left_or_previous_tab(&mut self) { + if !self.get_active_tab_mut().unwrap().move_focus_left() { + self.switch_tab_prev(); + } + } + pub fn move_focus_right_or_next_tab(&mut self) { + if !self.get_active_tab_mut().unwrap().move_focus_right() { + self.switch_tab_next(); + } + } } // The box is here in order to make the @@ -507,9 +529,7 @@ pub(crate) fn screen_thread_main( screen.get_active_tab_mut().unwrap().move_focus_left(); } ScreenInstruction::MoveFocusLeftOrPreviousTab => { - if !screen.get_active_tab_mut().unwrap().move_focus_left() { - screen.switch_tab_prev(); - } + screen.move_focus_left_or_previous_tab(); screen .bus .senders @@ -523,9 +543,7 @@ pub(crate) fn screen_thread_main( screen.get_active_tab_mut().unwrap().move_focus_right(); } ScreenInstruction::MoveFocusRightOrNextTab => { - if !screen.get_active_tab_mut().unwrap().move_focus_right() { - screen.switch_tab_next(); - } + screen.move_focus_right_or_next_tab(); screen .bus .senders @@ -541,12 +559,24 @@ pub(crate) fn screen_thread_main( .unwrap() .scroll_active_terminal_up(); } + ScreenInstruction::ScrollUpAt(point) => { + screen + .get_active_tab_mut() + .unwrap() + .scroll_terminal_up(&point, 3); + } ScreenInstruction::ScrollDown => { screen .get_active_tab_mut() .unwrap() .scroll_active_terminal_down(); } + ScreenInstruction::ScrollDownAt(point) => { + screen + .get_active_tab_mut() + .unwrap() + .scroll_terminal_down(&point, 3); + } ScreenInstruction::PageScrollUp => { screen .get_active_tab_mut() @@ -668,9 +698,34 @@ pub(crate) fn screen_thread_main( .toggle_sync_panes_is_active(); screen.update_tabs(); } + ScreenInstruction::LeftClick(point) => { + screen + .get_active_tab_mut() + .unwrap() + .handle_left_click(&point); + } + ScreenInstruction::MouseRelease(point) => { + screen + .get_active_tab_mut() + .unwrap() + .handle_mouse_release(&point); + } + ScreenInstruction::MouseHold(point) => { + screen + .get_active_tab_mut() + .unwrap() + .handle_mouse_hold(&point); + } + ScreenInstruction::Copy => { + screen.get_active_tab().unwrap().copy_selection(); + } ScreenInstruction::Exit => { break; } } } } + +#[cfg(test)] +#[path = "./unit/screen_tests.rs"] +mod screen_tests; diff --git a/zellij-server/src/tab.rs b/zellij-server/src/tab.rs index fbcb5ada..68e7b7a6 100644 --- a/zellij-server/src/tab.rs +++ b/zellij-server/src/tab.rs @@ -1,7 +1,7 @@ //! `Tab`s holds multiple panes. It tracks their coordinates (x/y) and size, //! as well as how they should be resized -use zellij_utils::{serde, zellij_tile}; +use zellij_utils::{position::Position, serde, zellij_tile}; #[cfg(not(feature = "parametric_resize_beta"))] use crate::ui::pane_resizer::PaneResizer; @@ -143,6 +143,19 @@ pub trait Pane { fn cursor_shape_csi(&self) -> String { "\u{1b}[0 q".to_string() // default to non blinking block } + fn contains(&self, position: &Position) -> bool { + match self.position_and_size_override() { + Some(position_and_size) => position_and_size.contains(position), + None => self.position_and_size().contains(position), + } + } + fn start_selection(&mut self, _start: &Position) {} + fn update_selection(&mut self, _position: &Position) {} + fn end_selection(&mut self, _end: Option<&Position>) {} + fn reset_selection(&mut self) {} + fn get_selected_text(&self) -> Option { + None + } fn right_boundary_x_coords(&self) -> usize { self.x() + self.columns() @@ -223,6 +236,12 @@ pub trait Pane { vec![] } fn render_full_viewport(&mut self) {} + fn relative_position(&self, position: &Position) -> Position { + match self.position_and_size_override() { + Some(position_and_size) => position.relative_to(&position_and_size), + None => position.relative_to(&self.position_and_size()), + } + } } impl Tab { @@ -2271,4 +2290,99 @@ impl Tab { active_terminal.clear_scroll(); } } + pub fn scroll_terminal_up(&mut self, point: &Position, lines: usize) { + if let Some(pane) = self.get_pane_at(point) { + pane.scroll_up(lines); + self.render(); + } + } + pub fn scroll_terminal_down(&mut self, point: &Position, lines: usize) { + if let Some(pane) = self.get_pane_at(point) { + pane.scroll_down(lines); + self.render(); + } + } + fn get_pane_at(&mut self, point: &Position) -> Option<&mut Box> { + if let Some(pane_id) = self.get_pane_id_at(point) { + self.panes.get_mut(&pane_id) + } else { + None + } + } + fn get_pane_id_at(&self, point: &Position) -> Option { + if self.fullscreen_is_active { + return self.get_active_pane_id(); + } + + self.get_selectable_panes() + .find(|(_, p)| p.contains(point)) + .map(|(&id, _)| id) + } + pub fn handle_left_click(&mut self, position: &Position) { + self.focus_pane_at(position); + + if let Some(pane) = self.get_pane_at(position) { + let relative_position = pane.relative_position(position); + pane.start_selection(&relative_position); + self.render(); + }; + } + fn focus_pane_at(&mut self, point: &Position) { + if let Some(clicked_pane) = self.get_pane_id_at(point) { + self.active_terminal = Some(clicked_pane); + self.render(); + } + } + pub fn handle_mouse_release(&mut self, position: &Position) { + let active_pane_id = self.get_active_pane_id(); + // on release, get the selected text from the active pane, and reset it's selection + let mut selected_text = None; + if active_pane_id != self.get_pane_id_at(position) { + if let Some(active_pane_id) = active_pane_id { + if let Some(active_pane) = self.panes.get_mut(&active_pane_id) { + active_pane.end_selection(None); + selected_text = active_pane.get_selected_text(); + active_pane.reset_selection(); + self.render(); + } + } + } else if let Some(pane) = self.get_pane_at(position) { + let relative_position = pane.relative_position(position); + pane.end_selection(Some(&relative_position)); + selected_text = pane.get_selected_text(); + pane.reset_selection(); + self.render(); + } + + if let Some(selected_text) = selected_text { + self.write_selection_to_clipboard(&selected_text); + } + } + pub fn handle_mouse_hold(&mut self, position: &Position) { + if let Some(active_pane_id) = self.get_active_pane_id() { + if let Some(active_pane) = self.panes.get_mut(&active_pane_id) { + let relative_position = active_pane.relative_position(position); + active_pane.update_selection(&relative_position); + } + } + self.render(); + } + + pub fn copy_selection(&self) { + let selected_text = self.get_active_pane().and_then(|p| p.get_selected_text()); + if let Some(selected_text) = selected_text { + self.write_selection_to_clipboard(&selected_text); + } + } + + fn write_selection_to_clipboard(&self, selection: &str) { + let output = format!("\u{1b}]52;c;{}\u{1b}\\", base64::encode(selection)); + self.senders + .send_to_server(ServerInstruction::Render(Some(output))) + .unwrap(); + } } + +#[cfg(test)] +#[path = "./unit/tab_tests.rs"] +mod tab_tests; diff --git a/zellij-server/src/thread_bus.rs b/zellij-server/src/thread_bus.rs index f7c1c1eb..c7262993 100644 --- a/zellij-server/src/thread_bus.rs +++ b/zellij-server/src/thread_bus.rs @@ -7,12 +7,15 @@ use crate::{ use zellij_utils::{channels, channels::SenderWithContext, errors::ErrorContext}; /// A container for senders to the different threads in zellij on the server side -#[derive(Clone)] +#[derive(Default, Clone)] pub(crate) struct ThreadSenders { pub to_screen: Option>, pub to_pty: Option>, pub to_plugin: Option>, pub to_server: Option>, + // this is a convenience for the unit tests + // it's not advisable to set it to true in production code + pub should_silently_fail: bool, } impl ThreadSenders { @@ -20,32 +23,75 @@ impl ThreadSenders { &self, instruction: ScreenInstruction, ) -> Result<(), channels::SendError<(ScreenInstruction, ErrorContext)>> { - self.to_screen.as_ref().unwrap().send(instruction) + if self.should_silently_fail { + let _ = self + .to_screen + .as_ref() + .map(|sender| sender.send(instruction)) + .unwrap_or_else(|| Ok(())); + Ok(()) + } else { + self.to_screen.as_ref().unwrap().send(instruction) + } } pub fn send_to_pty( &self, instruction: PtyInstruction, ) -> Result<(), channels::SendError<(PtyInstruction, ErrorContext)>> { - self.to_pty.as_ref().unwrap().send(instruction) + if self.should_silently_fail { + let _ = self + .to_pty + .as_ref() + .map(|sender| sender.send(instruction)) + .unwrap_or_else(|| Ok(())); + Ok(()) + } else { + self.to_pty.as_ref().unwrap().send(instruction) + } } pub fn send_to_plugin( &self, instruction: PluginInstruction, ) -> Result<(), channels::SendError<(PluginInstruction, ErrorContext)>> { - self.to_plugin.as_ref().unwrap().send(instruction) + if self.should_silently_fail { + let _ = self + .to_plugin + .as_ref() + .map(|sender| sender.send(instruction)) + .unwrap_or_else(|| Ok(())); + Ok(()) + } else { + self.to_plugin.as_ref().unwrap().send(instruction) + } } pub fn send_to_server( &self, instruction: ServerInstruction, ) -> Result<(), channels::SendError<(ServerInstruction, ErrorContext)>> { - self.to_server.as_ref().unwrap().send(instruction) + if self.should_silently_fail { + let _ = self + .to_server + .as_ref() + .map(|sender| sender.send(instruction)) + .unwrap_or_else(|| Ok(())); + Ok(()) + } else { + self.to_server.as_ref().unwrap().send(instruction) + } + } + #[allow(unused)] + pub fn silently_fail_on_send(mut self) -> Self { + // this is mostly used for the tests, see struct + self.should_silently_fail = true; + self } } /// A container for a receiver, OS input and the senders to a given thread +#[derive(Default)] pub(crate) struct Bus { receivers: Vec>, pub senders: ThreadSenders, @@ -68,10 +114,26 @@ impl Bus { to_pty: to_pty.cloned(), to_plugin: to_plugin.cloned(), to_server: to_server.cloned(), + should_silently_fail: false, }, os_input: os_input.clone(), } } + #[allow(unused)] + pub fn empty() -> Self { + // this is mostly used for the tests + Bus { + receivers: vec![], + senders: ThreadSenders { + to_screen: None, + to_pty: None, + to_plugin: None, + to_server: None, + should_silently_fail: true, + }, + os_input: None, + } + } pub fn recv(&self) -> Result<(T, ErrorContext), channels::RecvError> { let mut selector = channels::Select::new(); diff --git a/zellij-server/src/unit/screen_tests.rs b/zellij-server/src/unit/screen_tests.rs new file mode 100644 index 00000000..173e2ccc --- /dev/null +++ b/zellij-server/src/unit/screen_tests.rs @@ -0,0 +1,257 @@ +use super::{Screen, ScreenInstruction}; +use crate::zellij_tile::data::{InputMode, ModeInfo, Palette}; +use crate::{ + os_input_output::{AsyncReader, Pid, ServerOsApi}, + thread_bus::Bus, + SessionState, +}; +use std::sync::{Arc, RwLock}; +use zellij_utils::{input::command::TerminalAction, pane_size::PositionAndSize}; + +use std::os::unix::io::RawFd; + +use zellij_utils::ipc::ClientAttributes; +use zellij_utils::nix; + +use zellij_utils::{ + errors::ErrorContext, + interprocess::local_socket::LocalSocketStream, + ipc::{ClientToServerMsg, ServerToClientMsg}, +}; + +#[derive(Clone)] +struct FakeInputOutput {} + +impl ServerOsApi for FakeInputOutput { + fn set_terminal_size_using_fd(&self, _fd: RawFd, _cols: u16, _rows: u16) { + // noop + } + fn spawn_terminal(&self, _file_to_open: Option) -> (RawFd, Pid) { + unimplemented!() + } + fn read_from_tty_stdout(&self, _fd: RawFd, _buf: &mut [u8]) -> Result { + unimplemented!() + } + fn async_file_reader(&self, _fd: RawFd) -> Box { + unimplemented!() + } + fn write_to_tty_stdin(&self, _fd: RawFd, _buf: &[u8]) -> Result { + unimplemented!() + } + fn tcdrain(&self, _fd: RawFd) -> Result<(), nix::Error> { + unimplemented!() + } + fn box_clone(&self) -> Box { + Box::new((*self).clone()) + } + fn force_kill(&self, _pid: Pid) -> Result<(), nix::Error> { + unimplemented!() + } + fn kill(&self, _pid: Pid) -> Result<(), nix::Error> { + unimplemented!() + } + fn recv_from_client(&self) -> (ClientToServerMsg, ErrorContext) { + unimplemented!() + } + fn send_to_client(&self, _msg: ServerToClientMsg) { + unimplemented!() + } + fn add_client_sender(&self) { + unimplemented!() + } + fn send_to_temp_client(&self, _msg: ServerToClientMsg) { + unimplemented!() + } + fn remove_client_sender(&self) { + unimplemented!() + } + fn update_receiver(&mut self, _stream: LocalSocketStream) { + unimplemented!() + } + fn load_palette(&self) -> Palette { + unimplemented!() + } +} + +fn create_new_screen(position_and_size: PositionAndSize) -> Screen { + let mut bus: Bus = Bus::empty(); + let fake_os_input = FakeInputOutput {}; + bus.os_input = Some(Box::new(fake_os_input)); + let mut client_attributes = ClientAttributes::default(); + client_attributes.position_and_size = position_and_size; + let max_panes = None; + let mode_info = ModeInfo::default(); + let input_mode = InputMode::Normal; + let session_state = Arc::new(RwLock::new(SessionState::Attached)); + Screen::new( + bus, + &client_attributes, + max_panes, + mode_info, + input_mode, + session_state, + ) +} + +#[test] +fn open_new_tab() { + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut screen = create_new_screen(position_and_size); + + screen.new_tab(1); + screen.new_tab(2); + + assert_eq!(screen.tabs.len(), 2, "Screen now has two tabs"); + assert_eq!( + screen.get_active_tab().unwrap().position, + 1, + "Active tab switched to new tab" + ); +} + +#[test] +pub fn switch_to_prev_tab() { + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut screen = create_new_screen(position_and_size); + + screen.new_tab(1); + screen.new_tab(2); + screen.switch_tab_prev(); + + assert_eq!( + screen.get_active_tab().unwrap().position, + 0, + "Active tab switched to previous tab" + ); +} + +#[test] +pub fn switch_to_next_tab() { + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut screen = create_new_screen(position_and_size); + + screen.new_tab(1); + screen.new_tab(2); + screen.switch_tab_prev(); + screen.switch_tab_next(); + + assert_eq!( + screen.get_active_tab().unwrap().position, + 1, + "Active tab switched to next tab" + ); +} + +#[test] +pub fn close_tab() { + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut screen = create_new_screen(position_and_size); + + screen.new_tab(1); + screen.new_tab(2); + screen.close_tab(); + + assert_eq!(screen.tabs.len(), 1, "Only one tab left"); + assert_eq!( + screen.get_active_tab().unwrap().position, + 0, + "Active tab switched to previous tab" + ); +} + +#[test] +pub fn close_the_middle_tab() { + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut screen = create_new_screen(position_and_size); + + screen.new_tab(1); + screen.new_tab(2); + screen.new_tab(3); + screen.switch_tab_prev(); + screen.close_tab(); + + assert_eq!(screen.tabs.len(), 2, "Two tabs left"); + assert_eq!( + screen.get_active_tab().unwrap().position, + 0, + "Active tab switched to previous tab" + ); +} + +#[test] +fn move_focus_left_at_left_screen_edge_changes_tab() { + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut screen = create_new_screen(position_and_size); + + screen.new_tab(1); + screen.new_tab(2); + screen.new_tab(3); + screen.switch_tab_prev(); + screen.move_focus_left_or_previous_tab(); + + assert_eq!( + screen.get_active_tab().unwrap().position, + 0, + "Active tab switched to previous" + ); +} + +#[test] +fn move_focus_right_at_right_screen_edge_changes_tab() { + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut screen = create_new_screen(position_and_size); + + screen.new_tab(1); + screen.new_tab(2); + screen.new_tab(3); + screen.switch_tab_prev(); + screen.move_focus_right_or_next_tab(); + + assert_eq!( + screen.get_active_tab().unwrap().position, + 2, + "Active tab switched to next" + ); +} diff --git a/zellij-server/src/unit/tab_tests.rs b/zellij-server/src/unit/tab_tests.rs new file mode 100644 index 00000000..c19c41ce --- /dev/null +++ b/zellij-server/src/unit/tab_tests.rs @@ -0,0 +1,11843 @@ +use super::Tab; +use crate::zellij_tile::data::{InputMode, ModeInfo, Palette}; +use crate::{ + os_input_output::{AsyncReader, Pid, ServerOsApi}, + panes::PaneId, + thread_bus::ThreadSenders, + SessionState, +}; +use std::sync::{Arc, RwLock}; +use zellij_utils::pane_size::PositionAndSize; + +use std::os::unix::io::RawFd; + +use zellij_utils::nix; + +use zellij_utils::{ + errors::ErrorContext, + input::command::TerminalAction, + interprocess::local_socket::LocalSocketStream, + ipc::{ClientToServerMsg, ServerToClientMsg}, +}; + +struct FakeInputOutput {} + +impl ServerOsApi for FakeInputOutput { + fn set_terminal_size_using_fd(&self, _fd: RawFd, _cols: u16, _rows: u16) { + // noop + } + fn spawn_terminal(&self, _file_to_open: Option) -> (RawFd, Pid) { + unimplemented!() + } + fn read_from_tty_stdout(&self, _fd: RawFd, _buf: &mut [u8]) -> Result { + unimplemented!() + } + fn async_file_reader(&self, _fd: RawFd) -> Box { + unimplemented!() + } + fn write_to_tty_stdin(&self, _fd: RawFd, _buf: &[u8]) -> Result { + unimplemented!() + } + fn tcdrain(&self, _fd: RawFd) -> Result<(), nix::Error> { + unimplemented!() + } + fn box_clone(&self) -> Box { + unimplemented!() + } + fn force_kill(&self, _pid: Pid) -> Result<(), nix::Error> { + unimplemented!() + } + fn kill(&self, _pid: Pid) -> Result<(), nix::Error> { + unimplemented!() + } + fn recv_from_client(&self) -> (ClientToServerMsg, ErrorContext) { + unimplemented!() + } + fn send_to_client(&self, _msg: ServerToClientMsg) { + unimplemented!() + } + fn add_client_sender(&self) { + unimplemented!() + } + fn send_to_temp_client(&self, _msg: ServerToClientMsg) { + unimplemented!() + } + fn remove_client_sender(&self) { + unimplemented!() + } + fn update_receiver(&mut self, _stream: LocalSocketStream) { + unimplemented!() + } + fn load_palette(&self) -> Palette { + unimplemented!() + } +} + +fn create_new_tab(position_and_size: PositionAndSize) -> Tab { + let index = 0; + let position = 0; + let name = String::new(); + let os_api = Box::new(FakeInputOutput {}); + let senders = ThreadSenders::default().silently_fail_on_send(); + let max_panes = None; + let first_pane_id = Some(PaneId::Terminal(1)); + let mode_info = ModeInfo::default(); + let input_mode = InputMode::Normal; + let colors = Palette::default(); + let session_state = Arc::new(RwLock::new(SessionState::Attached)); + Tab::new( + index, + position, + name, + &position_and_size, + os_api, + senders, + max_panes, + first_pane_id, + mode_info, + input_mode, + colors, + session_state, + ) +} + +#[test] +fn split_panes_vertically() { + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + let new_pane_id = PaneId::Terminal(2); + tab.vertical_split(new_pane_id); + assert_eq!(tab.panes.len(), 2, "The tab has two panes"); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "first pane x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "first pane y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 60, + "first pane column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 20, + "first pane row count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 61, + "second pane x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 0, + "second pane y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 60, + "second pane column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 20, + "second pane row count" + ); +} + +#[test] +fn split_panes_horizontally() { + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + let new_pane_id = PaneId::Terminal(2); + tab.horizontal_split(new_pane_id); + assert_eq!(tab.panes.len(), 2, "The tab has two panes"); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "first pane x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "first pane y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 121, + "first pane column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 10, + "first pane row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 0, + "second pane x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 11, + "second pane y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 121, + "second pane column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 9, + "second pane row count" + ); +} + +#[test] +fn split_largest_pane() { + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + for i in 2..5 { + let new_pane_id = PaneId::Terminal(i); + tab.new_pane(new_pane_id); + } + assert_eq!(tab.panes.len(), 4, "The tab has four panes"); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "first pane x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "first pane y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 60, + "first pane column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 10, + "first pane row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 61, + "second pane x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 0, + "second pane y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 60, + "second pane column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 10, + "second pane row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .x, + 0, + "third pane x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .y, + 11, + "third pane y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .cols, + 60, + "third pane column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .rows, + 9, + "third pane row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .x, + 61, + "fourth pane x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .y, + 11, + "fourth pane y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .cols, + 60, + "fourth pane column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .rows, + 9, + "fourth pane row count" + ); +} + +#[test] +pub fn cannot_split_panes_vertically_when_active_terminal_is_too_small() { + let position_and_size = PositionAndSize { + cols: 8, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.vertical_split(PaneId::Terminal(2)); + assert_eq!(tab.panes.len(), 1, "Tab still has only one pane"); +} + +#[test] +pub fn cannot_split_panes_vertically_when_active_pane_is_too_small() { + let position_and_size = PositionAndSize { + cols: 8, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.vertical_split(PaneId::Terminal(2)); + assert_eq!(tab.panes.len(), 1, "Tab still has only one pane"); +} + +#[test] +pub fn cannot_split_panes_horizontally_when_active_pane_is_too_small() { + let position_and_size = PositionAndSize { + cols: 121, + rows: 4, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.horizontal_split(PaneId::Terminal(2)); + assert_eq!(tab.panes.len(), 1, "Tab still has only one pane"); +} + +#[test] +pub fn cannot_split_largest_pane_when_there_is_no_room() { + let position_and_size = PositionAndSize { + cols: 8, + rows: 4, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.new_pane(PaneId::Terminal(2)); + assert_eq!(tab.panes.len(), 1, "Tab still has only one pane"); +} + +#[test] +pub fn toggle_focused_pane_fullscreen() { + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + for i in 2..5 { + let new_pane_id = PaneId::Terminal(i); + tab.new_pane(new_pane_id); + } + tab.toggle_active_pane_fullscreen(); + assert_eq!( + tab.panes.get(&PaneId::Terminal(4)).unwrap().x(), + 0, + "Pane x is on screen edge" + ); + assert_eq!( + tab.panes.get(&PaneId::Terminal(4)).unwrap().y(), + 0, + "Pane y is on screen edge" + ); + assert_eq!( + tab.panes.get(&PaneId::Terminal(4)).unwrap().columns(), + 121, + "Pane cols match fullscreen cols" + ); + assert_eq!( + tab.panes.get(&PaneId::Terminal(4)).unwrap().rows(), + 20, + "Pane rows match fullscreen rows" + ); + tab.toggle_active_pane_fullscreen(); + assert_eq!( + tab.panes.get(&PaneId::Terminal(4)).unwrap().x(), + 61, + "Pane x is on screen edge" + ); + assert_eq!( + tab.panes.get(&PaneId::Terminal(4)).unwrap().y(), + 11, + "Pane y is on screen edge" + ); + assert_eq!( + tab.panes.get(&PaneId::Terminal(4)).unwrap().columns(), + 60, + "Pane cols match fullscreen cols" + ); + assert_eq!( + tab.panes.get(&PaneId::Terminal(4)).unwrap().rows(), + 9, + "Pane rows match fullscreen rows" + ); + // we don't test if all other panes are hidden because this logic is done in the render + // function and we already test that in the e2e tests +} + +#[test] +pub fn move_focus_is_disabled_in_fullscreen() { + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + for i in 2..5 { + let new_pane_id = PaneId::Terminal(i); + tab.new_pane(new_pane_id); + } + tab.toggle_active_pane_fullscreen(); + tab.move_focus_left(); + assert_eq!( + tab.panes.get(&PaneId::Terminal(4)).unwrap().x(), + 0, + "Pane x is on screen edge" + ); + assert_eq!( + tab.panes.get(&PaneId::Terminal(4)).unwrap().y(), + 0, + "Pane y is on screen edge" + ); + assert_eq!( + tab.panes.get(&PaneId::Terminal(4)).unwrap().columns(), + 121, + "Pane cols match fullscreen cols" + ); + assert_eq!( + tab.panes.get(&PaneId::Terminal(4)).unwrap().rows(), + 20, + "Pane rows match fullscreen rows" + ); +} + +#[test] +pub fn close_pane_with_another_pane_above_it() { + // ┌───────────┐ ┌───────────┐ + // │xxxxxxxxxxx│ │xxxxxxxxxxx│ + // │xxxxxxxxxxx│ │xxxxxxxxxxx│ + // ├───────────┤ ==close==> │xxxxxxxxxxx│ + // │███████████│ │xxxxxxxxxxx│ + // │███████████│ │xxxxxxxxxxx│ + // └───────────┘ └───────────┘ + // █ == pane being closed + + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + let new_pane_id = PaneId::Terminal(2); + tab.horizontal_split(new_pane_id); + tab.close_focused_pane(); + assert_eq!(tab.panes.len(), 1, "One pane left in tab"); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "remaining pane x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "remaining pane y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 121, + "remaining pane column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 20, + "remaining pane row count" + ); +} + +#[test] +pub fn close_pane_with_another_pane_below_it() { + // ┌───────────┐ ┌───────────┐ + // │███████████│ │xxxxxxxxxxx│ + // │███████████│ │xxxxxxxxxxx│ + // ├───────────┤ ==close==> │xxxxxxxxxxx│ + // │xxxxxxxxxxx│ │xxxxxxxxxxx│ + // │xxxxxxxxxxx│ │xxxxxxxxxxx│ + // └───────────┘ └───────────┘ + // █ == pane being closed + + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + let new_pane_id = PaneId::Terminal(2); + tab.horizontal_split(new_pane_id); + tab.move_focus_up(); + tab.close_focused_pane(); + assert_eq!(tab.panes.len(), 1, "One pane left in tab"); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 0, + "remaining pane x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 0, + "remaining pane y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 121, + "remaining pane column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 20, + "remaining pane row count" + ); +} + +#[test] +pub fn close_pane_with_another_pane_to_the_left() { + // ┌─────┬─────┐ ┌──────────┐ + // │xxxxx│█████│ │xxxxxxxxxx│ + // │xxxxx│█████│ ==close==> │xxxxxxxxxx│ + // │xxxxx│█████│ │xxxxxxxxxx│ + // └─────┴─────┘ └──────────┘ + // █ == pane being closed + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + let new_pane_id = PaneId::Terminal(2); + tab.vertical_split(new_pane_id); + tab.close_focused_pane(); + assert_eq!(tab.panes.len(), 1, "One pane left in tab"); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "remaining pane x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "remaining pane y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 121, + "remaining pane column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 20, + "remaining pane row count" + ); +} + +#[test] +pub fn close_pane_with_another_pane_to_the_right() { + // ┌─────┬─────┐ ┌──────────┐ + // │█████│xxxxx│ │xxxxxxxxxx│ + // │█████│xxxxx│ ==close==> │xxxxxxxxxx│ + // │█████│xxxxx│ │xxxxxxxxxx│ + // └─────┴─────┘ └──────────┘ + // █ == pane being closed + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + let new_pane_id = PaneId::Terminal(2); + tab.vertical_split(new_pane_id); + tab.move_focus_left(); + tab.close_focused_pane(); + assert_eq!(tab.panes.len(), 1, "One pane left in tab"); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 0, + "remaining pane x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 0, + "remaining pane y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 121, + "remaining pane column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 20, + "remaining pane row count" + ); +} + +#[test] +pub fn close_pane_with_multiple_panes_above_it() { + // ┌─────┬─────┐ ┌─────┬─────┐ + // │xxxxx│xxxxx│ │xxxxx│xxxxx│ + // │xxxxx│xxxxx│ │xxxxx│xxxxx│ + // ├─────┴─────┤ ==close==> │xxxxx│xxxxx│ + // │███████████│ │xxxxx│xxxxx│ + // │███████████│ │xxxxx│xxxxx│ + // └───────────┘ └─────┴─────┘ + // █ == pane being closed + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + let new_pane_id_1 = PaneId::Terminal(2); + let new_pane_id_2 = PaneId::Terminal(3); + tab.horizontal_split(new_pane_id_1); + tab.move_focus_up(); + tab.vertical_split(new_pane_id_2); + tab.move_focus_down(); + tab.close_focused_pane(); + assert_eq!(tab.panes.len(), 2, "Two panes left in tab"); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "first remaining pane x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "first remaining pane y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 60, + "first remaining pane column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 20, + "first remaining pane row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .x, + 61, + "second remaining pane x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .y, + 0, + "second remaining pane y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .cols, + 60, + "second remaining pane column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .rows, + 20, + "second remaining pane row count" + ); +} + +#[test] +pub fn close_pane_with_multiple_panes_below_it() { + // ┌───────────┐ ┌─────┬─────┐ + // │███████████│ │xxxxx│xxxxx│ + // │███████████│ │xxxxx│xxxxx│ + // ├─────┬─────┤ ==close==> │xxxxx│xxxxx│ + // │xxxxx│xxxxx│ │xxxxx│xxxxx│ + // │xxxxx│xxxxx│ │xxxxx│xxxxx│ + // └─────┴─────┘ └─────┴─────┘ + // █ == pane being closed + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + let new_pane_id_1 = PaneId::Terminal(2); + let new_pane_id_2 = PaneId::Terminal(3); + tab.horizontal_split(new_pane_id_1); + tab.vertical_split(new_pane_id_2); + tab.move_focus_up(); + tab.close_focused_pane(); + assert_eq!(tab.panes.len(), 2, "Two panes left in tab"); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 0, + "first remaining pane x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 0, + "first remaining pane y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 60, + "first remaining pane column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 20, + "first remaining pane row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .x, + 61, + "second remaining pane x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .y, + 0, + "second remaining pane y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .cols, + 60, + "second remaining pane column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .rows, + 20, + "second remaining pane row count" + ); +} + +#[test] +pub fn close_pane_with_multiple_panes_to_the_left() { + // ┌─────┬─────┐ ┌──────────┐ + // │xxxxx│█████│ │xxxxxxxxxx│ + // │xxxxx│█████│ │xxxxxxxxxx│ + // ├─────┤█████│ ==close==> ├──────────┤ + // │xxxxx│█████│ │xxxxxxxxxx│ + // │xxxxx│█████│ │xxxxxxxxxx│ + // └─────┴─────┘ └──────────┘ + // █ == pane being closed + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + let new_pane_id_1 = PaneId::Terminal(2); + let new_pane_id_2 = PaneId::Terminal(3); + tab.vertical_split(new_pane_id_1); + tab.move_focus_left(); + tab.horizontal_split(new_pane_id_2); + tab.move_focus_right(); + tab.close_focused_pane(); + assert_eq!(tab.panes.len(), 2, "Two panes left in tab"); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "first remaining pane x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "first remaining pane y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 121, + "first remaining pane column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 10, + "first remaining pane row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .x, + 0, + "second remaining pane x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .y, + 11, + "second remaining pane y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .cols, + 121, + "second remaining pane column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .rows, + 9, + "second remaining pane row count" + ); +} + +#[test] +pub fn close_pane_with_multiple_panes_to_the_right() { + // ┌─────┬─────┐ ┌──────────┐ + // │█████│xxxxx│ │xxxxxxxxxx│ + // │█████│xxxxx│ │xxxxxxxxxx│ + // │█████├─────┤ ==close==> ├──────────┤ + // │█████│xxxxx│ │xxxxxxxxxx│ + // │█████│xxxxx│ │xxxxxxxxxx│ + // └─────┴─────┘ └──────────┘ + // █ == pane being closed + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + let new_pane_id_1 = PaneId::Terminal(2); + let new_pane_id_2 = PaneId::Terminal(3); + tab.vertical_split(new_pane_id_1); + tab.horizontal_split(new_pane_id_2); + tab.move_focus_left(); + tab.close_focused_pane(); + assert_eq!(tab.panes.len(), 2, "Two panes left in tab"); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 0, + "first remaining pane x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 0, + "first remaining pane y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 121, + "first remaining pane column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 10, + "first remaining pane row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .x, + 0, + "second remaining pane x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .y, + 11, + "second remaining pane y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .cols, + 121, + "second remaining pane column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .rows, + 9, + "second remaining pane row count" + ); +} + +#[test] +pub fn close_pane_with_multiple_panes_above_it_away_from_screen_edges() { + // ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ + // │xxx│xxx│xxx│xxx│ │xxx│xxx│xxx│xxx│ + // ├───┤xxx│xxx├───┤ ├───┤xxx│xxx├───┤ + // │xxx├───┴───┤xxx│ ==close==> │xxx│xxx│xxx│xxx│ + // │xxx│███████│xxx│ │xxx│xxx│xxx│xxx│ + // │xxx│███████│xxx│ │xxx│xxx│xxx│xxx│ + // └───┴───────┴───┘ └───┴───┴───┴───┘ + // █ == pane being closed + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + let new_pane_id_1 = PaneId::Terminal(2); + let new_pane_id_2 = PaneId::Terminal(3); + let new_pane_id_3 = PaneId::Terminal(4); + let new_pane_id_4 = PaneId::Terminal(5); + let new_pane_id_5 = PaneId::Terminal(6); + let new_pane_id_6 = PaneId::Terminal(7); + + tab.vertical_split(new_pane_id_1); + tab.vertical_split(new_pane_id_2); + tab.move_focus_left(); + tab.move_focus_left(); + tab.horizontal_split(new_pane_id_3); + tab.move_focus_right(); + tab.horizontal_split(new_pane_id_4); + tab.move_focus_right(); + tab.horizontal_split(new_pane_id_5); + tab.move_focus_left(); + tab.move_focus_up(); + tab.resize_down(); + tab.vertical_split(new_pane_id_6); + tab.move_focus_down(); + tab.close_focused_pane(); + + assert_eq!(tab.panes.len(), 6, "Six panes left in tab"); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "first remaining pane x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "first remaining pane y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 60, + "first remaining pane column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 10, + "first remaining pane row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 61, + "second remaining pane x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 0, + "second remaining pane y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 15, + "second remaining pane column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 20, + "second remaining pane row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .x, + 92, + "third remaining pane x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .y, + 0, + "third remaining pane y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .cols, + 29, + "third remaining pane column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .rows, + 10, + "third remaining pane row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .x, + 0, + "fourth remaining pane x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .y, + 11, + "fourth remaining pane y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .cols, + 60, + "fourth remaining pane column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .rows, + 9, + "fourth remaining pane row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .x, + 92, + "sixths remaining pane x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .y, + 11, + "sixths remaining pane y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .cols, + 29, + "sixths remaining pane column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .rows, + 9, + "sixths remaining pane row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .x, + 77, + "seventh remaining pane x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .y, + 0, + "seventh remaining pane y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .cols, + 14, + "seventh remaining pane column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .rows, + 20, + "seventh remaining pane row count" + ); +} + +#[test] +pub fn close_pane_with_multiple_panes_below_it_away_from_screen_edges() { + // ┌───┬───────┬───┐ ┌───┬───┬───┬───┐ + // │xxx│███████│xxx│ │xxx│xxx│xxx│xxx│ + // │xxx│███████│xxx│ │xxx│xxx│xxx│xxx│ + // │xxx├───┬───┤xxx│ ==close==> │xxx│xxx│xxx│xxx│ + // ├───┤xxx│xxx├───┤ ├───┤xxx│xxx├───┤ + // │xxx│xxx│xxx│xxx│ │xxx│xxx│xxx│xxx│ + // └───┴───┴───┴───┘ └───┴───┴───┴───┘ + // █ == pane being closed + + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + let new_pane_id_1 = PaneId::Terminal(2); + let new_pane_id_2 = PaneId::Terminal(3); + let new_pane_id_3 = PaneId::Terminal(4); + let new_pane_id_4 = PaneId::Terminal(5); + let new_pane_id_5 = PaneId::Terminal(6); + let new_pane_id_6 = PaneId::Terminal(7); + + tab.vertical_split(new_pane_id_1); + tab.vertical_split(new_pane_id_2); + tab.move_focus_left(); + tab.move_focus_left(); + tab.horizontal_split(new_pane_id_3); + tab.move_focus_right(); + tab.horizontal_split(new_pane_id_4); + tab.move_focus_right(); + tab.horizontal_split(new_pane_id_5); + tab.move_focus_left(); + tab.resize_up(); + tab.vertical_split(new_pane_id_6); + tab.move_focus_up(); + tab.close_focused_pane(); + + assert_eq!(tab.panes.len(), 6, "Six panes left in tab"); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "first remaining pane x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "first remaining pane y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 60, + "first remaining pane column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 10, + "first remaining pane row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .x, + 92, + "third remaining pane x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .y, + 0, + "third remaining pane y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .cols, + 29, + "third remaining pane column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .rows, + 10, + "third remaining pane row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .x, + 0, + "fourth remaining pane x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .y, + 11, + "fourth remaining pane y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .cols, + 60, + "fourth remaining pane column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .rows, + 9, + "fourth remaining pane row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .x, + 61, + "second remaining pane x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .y, + 0, + "second remaining pane y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .cols, + 15, + "second remaining pane column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .rows, + 20, + "second remaining pane row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .x, + 92, + "sixths remaining pane x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .y, + 11, + "sixths remaining pane y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .cols, + 29, + "sixths remaining pane column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .rows, + 9, + "sixths remaining pane row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .x, + 77, + "seventh remaining pane x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .y, + 0, + "seventh remaining pane y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .cols, + 14, + "seventh remaining pane column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .rows, + 20, + "seventh remaining pane row count" + ); +} + +#[test] +pub fn close_pane_with_multiple_panes_to_the_left_away_from_screen_edges() { + // ┌────┬──────┐ ┌────┬──────┐ + // │xxxx│xxxxxx│ │xxxx│xxxxxx│ + // ├────┴┬─────┤ ├────┴──────┤ + // │xxxxx│█████│ │xxxxxxxxxxx│ + // ├─────┤█████│ ==close==> ├───────────┤ + // │xxxxx│█████│ │xxxxxxxxxxx│ + // ├────┬┴─────┤ ├────┬──────┤ + // │xxxx│xxxxxx│ │xxxx│xxxxxx│ + // └────┴──────┘ └────┴──────┘ + // █ == pane being closed + + let position_and_size = PositionAndSize { + cols: 121, + rows: 30, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + let new_pane_id_1 = PaneId::Terminal(2); + let new_pane_id_2 = PaneId::Terminal(3); + let new_pane_id_3 = PaneId::Terminal(4); + let new_pane_id_4 = PaneId::Terminal(5); + let new_pane_id_5 = PaneId::Terminal(6); + let new_pane_id_6 = PaneId::Terminal(7); + + tab.horizontal_split(new_pane_id_1); + tab.horizontal_split(new_pane_id_2); + tab.move_focus_up(); + tab.move_focus_up(); + tab.vertical_split(new_pane_id_3); + tab.move_focus_down(); + tab.vertical_split(new_pane_id_4); + tab.move_focus_down(); + tab.vertical_split(new_pane_id_5); + tab.move_focus_up(); + tab.move_focus_left(); + tab.resize_right(); + tab.horizontal_split(new_pane_id_6); + tab.move_focus_right(); + tab.close_focused_pane(); + + assert_eq!(tab.panes.len(), 6, "Six panes left in tab"); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "first remaining pane x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "first remaining pane y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 60, + "first remaining pane column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 15, + "first remaining pane row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 0, + "third remaining pane x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 16, + "third remaining pane y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 121, + "third remaining pane column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 3, + "third remaining pane row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .x, + 0, + "fourth remaining pane x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .y, + 24, + "fourth remaining pane y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .cols, + 60, + "fourth remaining pane column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .rows, + 6, + "fourth remaining pane row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .x, + 61, + "second remaining pane x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .y, + 0, + "second remaining pane y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .cols, + 60, + "second remaining pane column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .rows, + 15, + "second remaining pane row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .x, + 61, + "sixths remaining pane x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .y, + 24, + "sixths remaining pane y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .cols, + 60, + "sixths remaining pane column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .rows, + 6, + "sixths remaining pane row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .x, + 0, + "seventh remaining pane x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .y, + 20, + "seventh remaining pane y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .cols, + 121, + "seventh remaining pane column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .rows, + 3, + "seventh remaining pane row count" + ); +} + +#[test] +pub fn close_pane_with_multiple_panes_to_the_right_away_from_screen_edges() { + // ┌────┬──────┐ ┌────┬──────┐ + // │xxxx│xxxxxx│ │xxxx│xxxxxx│ + // ├────┴┬─────┤ ├────┴──────┤ + // │█████│xxxxx│ │xxxxxxxxxxx│ + // │█████├─────┤ ==close==> ├───────────┤ + // │█████│xxxxx│ │xxxxxxxxxxx│ + // ├────┬┴─────┤ ├────┬──────┤ + // │xxxx│xxxxxx│ │xxxx│xxxxxx│ + // └────┴──────┘ └────┴──────┘ + // █ == pane being closed + + let position_and_size = PositionAndSize { + cols: 121, + rows: 30, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + let new_pane_id_1 = PaneId::Terminal(2); + let new_pane_id_2 = PaneId::Terminal(3); + let new_pane_id_3 = PaneId::Terminal(4); + let new_pane_id_4 = PaneId::Terminal(5); + let new_pane_id_5 = PaneId::Terminal(6); + let new_pane_id_6 = PaneId::Terminal(7); + + tab.horizontal_split(new_pane_id_1); + tab.horizontal_split(new_pane_id_2); + tab.move_focus_up(); + tab.move_focus_up(); + tab.vertical_split(new_pane_id_3); + tab.move_focus_down(); + tab.vertical_split(new_pane_id_4); + tab.move_focus_down(); + tab.vertical_split(new_pane_id_5); + tab.move_focus_up(); + tab.resize_left(); + tab.horizontal_split(new_pane_id_6); + tab.move_focus_left(); + tab.close_focused_pane(); + + assert_eq!(tab.panes.len(), 6, "Six panes left in tab"); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "first remaining pane x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "first remaining pane y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 60, + "first remaining pane column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 15, + "first remaining pane row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .x, + 0, + "fourth remaining pane x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .y, + 24, + "fourth remaining pane y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .cols, + 60, + "fourth remaining pane column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .rows, + 6, + "fourth remaining pane row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .x, + 61, + "second remaining pane x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .y, + 0, + "second remaining pane y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .cols, + 60, + "second remaining pane column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .rows, + 15, + "second remaining pane row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .x, + 0, + "third remaining pane x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .y, + 16, + "third remaining pane y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .cols, + 121, + "third remaining pane column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .rows, + 3, + "third remaining pane row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .x, + 61, + "sixths remaining pane x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .y, + 24, + "sixths remaining pane y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .cols, + 60, + "sixths remaining pane column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .rows, + 6, + "sixths remaining pane row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .x, + 0, + "seventh remaining pane x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .y, + 20, + "seventh remaining pane y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .cols, + 121, + "seventh remaining pane column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .rows, + 3, + "seventh remaining pane row count" + ); +} + +#[test] +pub fn move_focus_down() { + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + let new_pane_id = PaneId::Terminal(2); + + tab.horizontal_split(new_pane_id); + tab.move_focus_up(); + tab.move_focus_down(); + + assert_eq!( + tab.get_active_pane().unwrap().y(), + 11, + "Active pane is the bottom one" + ); +} + +#[test] +pub fn move_focus_down_to_the_most_recently_used_pane() { + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + let new_pane_id_1 = PaneId::Terminal(2); + let new_pane_id_2 = PaneId::Terminal(3); + let new_pane_id_3 = PaneId::Terminal(4); + + tab.horizontal_split(new_pane_id_1); + tab.vertical_split(new_pane_id_2); + tab.vertical_split(new_pane_id_3); + tab.move_focus_up(); + tab.move_focus_down(); + + assert_eq!( + tab.get_active_pane().unwrap().y(), + 11, + "Active pane y position" + ); + assert_eq!( + tab.get_active_pane().unwrap().x(), + 92, + "Active pane x position" + ); +} + +#[test] +pub fn move_focus_up() { + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + let new_pane_id = PaneId::Terminal(2); + + tab.horizontal_split(new_pane_id); + tab.move_focus_up(); + + assert_eq!( + tab.get_active_pane().unwrap().y(), + 0, + "Active pane is the top one" + ); +} + +#[test] +pub fn move_focus_up_to_the_most_recently_used_pane() { + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + let new_pane_id_1 = PaneId::Terminal(2); + let new_pane_id_2 = PaneId::Terminal(3); + let new_pane_id_3 = PaneId::Terminal(4); + + tab.horizontal_split(new_pane_id_1); + tab.move_focus_up(); + tab.vertical_split(new_pane_id_2); + tab.vertical_split(new_pane_id_3); + tab.move_focus_down(); + tab.move_focus_up(); + + assert_eq!( + tab.get_active_pane().unwrap().y(), + 0, + "Active pane y position" + ); + assert_eq!( + tab.get_active_pane().unwrap().x(), + 92, + "Active pane x position" + ); +} + +#[test] +pub fn move_focus_left() { + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + let new_pane_id = PaneId::Terminal(2); + + tab.vertical_split(new_pane_id); + tab.move_focus_left(); + + assert_eq!( + tab.get_active_pane().unwrap().x(), + 0, + "Active pane is the left one" + ); +} + +#[test] +pub fn move_focus_left_to_the_most_recently_used_pane() { + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + let new_pane_id_1 = PaneId::Terminal(2); + let new_pane_id_2 = PaneId::Terminal(3); + let new_pane_id_3 = PaneId::Terminal(4); + + tab.vertical_split(new_pane_id_1); + tab.move_focus_left(); + tab.horizontal_split(new_pane_id_2); + tab.horizontal_split(new_pane_id_3); + tab.move_focus_right(); + tab.move_focus_left(); + + assert_eq!( + tab.get_active_pane().unwrap().y(), + 16, + "Active pane y position" + ); + assert_eq!( + tab.get_active_pane().unwrap().x(), + 0, + "Active pane x position" + ); +} + +#[test] +pub fn move_focus_right() { + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + let new_pane_id = PaneId::Terminal(2); + + tab.vertical_split(new_pane_id); + tab.move_focus_left(); + tab.move_focus_right(); + + assert_eq!( + tab.get_active_pane().unwrap().x(), + 61, + "Active pane is the right one" + ); +} + +#[test] +pub fn move_focus_right_to_the_most_recently_used_pane() { + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + let new_pane_id_1 = PaneId::Terminal(2); + let new_pane_id_2 = PaneId::Terminal(3); + let new_pane_id_3 = PaneId::Terminal(4); + + tab.vertical_split(new_pane_id_1); + tab.horizontal_split(new_pane_id_2); + tab.horizontal_split(new_pane_id_3); + tab.move_focus_left(); + tab.move_focus_right(); + + assert_eq!( + tab.get_active_pane().unwrap().y(), + 16, + "Active pane y position" + ); + assert_eq!( + tab.get_active_pane().unwrap().x(), + 61, + "Active pane x position" + ); +} + +#[test] +pub fn resize_down_with_pane_above() { + // ┌───────────┐ ┌───────────┐ + // │ │ │ │ + // │ │ │ │ + // ├───────────┤ ==resize=down==> │ │ + // │███████████│ ├───────────┤ + // │███████████│ │███████████│ + // │███████████│ │███████████│ + // └───────────┘ └───────────┘ + // █ == focused pane + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + let new_pane_id = PaneId::Terminal(2); + tab.horizontal_split(new_pane_id); + tab.resize_down(); + + assert_eq!( + tab.panes.get(&new_pane_id).unwrap().position_and_size().x, + 0, + "focused pane x position" + ); + assert_eq!( + tab.panes.get(&new_pane_id).unwrap().position_and_size().y, + 13, + "focused pane y position" + ); + assert_eq!( + tab.panes + .get(&new_pane_id) + .unwrap() + .position_and_size() + .cols, + 121, + "focused pane column count" + ); + assert_eq!( + tab.panes + .get(&new_pane_id) + .unwrap() + .position_and_size() + .rows, + 7, + "focused pane row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "pane above x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "pane above y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 121, + "pane above column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 12, + "pane above row count" + ); +} + +#[test] +pub fn resize_down_with_pane_below() { + // ┌───────────┐ ┌───────────┐ + // │███████████│ │███████████│ + // │███████████│ │███████████│ + // ├───────────┤ ==resize=down==> │███████████│ + // │ │ ├───────────┤ + // │ │ │ │ + // └───────────┘ └───────────┘ + // █ == focused pane + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + let new_pane_id = PaneId::Terminal(2); + tab.horizontal_split(new_pane_id); + tab.move_focus_up(); + tab.resize_down(); + + assert_eq!( + tab.panes.get(&new_pane_id).unwrap().position_and_size().x, + 0, + "pane below x position" + ); + assert_eq!( + tab.panes.get(&new_pane_id).unwrap().position_and_size().y, + 13, + "pane below y position" + ); + assert_eq!( + tab.panes + .get(&new_pane_id) + .unwrap() + .position_and_size() + .cols, + 121, + "pane below column count" + ); + assert_eq!( + tab.panes + .get(&new_pane_id) + .unwrap() + .position_and_size() + .rows, + 7, + "pane below row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "focused pane x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "focused pane y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 121, + "focused pane column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 12, + "focused pane row count" + ); +} + +#[test] +pub fn resize_down_with_panes_above_and_below() { + // ┌───────────┐ ┌───────────┐ + // │ │ │ │ + // │ │ │ │ + // ├───────────┤ ├───────────┤ + // │███████████│ ==resize=down==> │███████████│ + // │███████████│ │███████████│ + // │███████████│ │███████████│ + // ├───────────┤ │███████████│ + // │ │ ├───────────┤ + // │ │ │ │ + // └───────────┘ └───────────┘ + // █ == focused pane + let position_and_size = PositionAndSize { + cols: 121, + rows: 30, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + let first_pane_id = PaneId::Terminal(1); + let new_pane_id_1 = PaneId::Terminal(2); + let new_pane_id_2 = PaneId::Terminal(3); + tab.horizontal_split(new_pane_id_1); + tab.horizontal_split(new_pane_id_2); + tab.move_focus_up(); + tab.resize_down(); + + assert_eq!( + tab.panes.get(&new_pane_id_1).unwrap().position_and_size().x, + 0, + "focused pane x position" + ); + assert_eq!( + tab.panes.get(&new_pane_id_1).unwrap().position_and_size().y, + 16, + "focused pane y position" + ); + assert_eq!( + tab.panes + .get(&new_pane_id_1) + .unwrap() + .position_and_size() + .cols, + 121, + "focused pane column count" + ); + assert_eq!( + tab.panes + .get(&new_pane_id_1) + .unwrap() + .position_and_size() + .rows, + 9, + "focused pane row count" + ); + + assert_eq!( + tab.panes.get(&new_pane_id_2).unwrap().position_and_size().x, + 0, + "pane below x position" + ); + assert_eq!( + tab.panes.get(&new_pane_id_2).unwrap().position_and_size().y, + 26, + "pane below y position" + ); + assert_eq!( + tab.panes + .get(&new_pane_id_2) + .unwrap() + .position_and_size() + .cols, + 121, + "pane below column count" + ); + assert_eq!( + tab.panes + .get(&new_pane_id_2) + .unwrap() + .position_and_size() + .rows, + 4, + "pane below row count" + ); + + assert_eq!( + tab.panes.get(&first_pane_id).unwrap().position_and_size().x, + 0, + "pane above x position" + ); + assert_eq!( + tab.panes.get(&first_pane_id).unwrap().position_and_size().y, + 0, + "pane above y position" + ); + assert_eq!( + tab.panes + .get(&first_pane_id) + .unwrap() + .position_and_size() + .cols, + 121, + "pane above column count" + ); + assert_eq!( + tab.panes + .get(&first_pane_id) + .unwrap() + .position_and_size() + .rows, + 15, + "pane above row count" + ); +} + +#[test] +pub fn resize_down_with_multiple_panes_above() { + // + // ┌─────┬─────┐ ┌─────┬─────┐ + // │ │ │ │ │ │ + // ├─────┴─────┤ ==resize=down==> │ │ │ + // │███████████│ ├─────┴─────┤ + // │███████████│ │███████████│ + // └───────────┘ └───────────┘ + // █ == focused pane + let position_and_size = PositionAndSize { + cols: 121, + rows: 30, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + let first_pane_id = PaneId::Terminal(1); + let new_pane_id_1 = PaneId::Terminal(2); + let new_pane_id_2 = PaneId::Terminal(3); + tab.horizontal_split(new_pane_id_1); + tab.move_focus_up(); + tab.vertical_split(new_pane_id_2); + tab.move_focus_down(); + tab.resize_down(); + + assert_eq!( + tab.panes.get(&new_pane_id_1).unwrap().position_and_size().x, + 0, + "focused pane x position" + ); + assert_eq!( + tab.panes.get(&new_pane_id_1).unwrap().position_and_size().y, + 18, + "focused pane y position" + ); + assert_eq!( + tab.panes + .get(&new_pane_id_1) + .unwrap() + .position_and_size() + .cols, + 121, + "focused pane column count" + ); + assert_eq!( + tab.panes + .get(&new_pane_id_1) + .unwrap() + .position_and_size() + .rows, + 12, + "focused pane row count" + ); + + assert_eq!( + tab.panes.get(&new_pane_id_2).unwrap().position_and_size().x, + 61, + "first pane above x position" + ); + assert_eq!( + tab.panes.get(&new_pane_id_2).unwrap().position_and_size().y, + 0, + "first pane above y position" + ); + assert_eq!( + tab.panes + .get(&new_pane_id_2) + .unwrap() + .position_and_size() + .cols, + 60, + "first pane above column count" + ); + assert_eq!( + tab.panes + .get(&new_pane_id_2) + .unwrap() + .position_and_size() + .rows, + 17, + "first pane above row count" + ); + + assert_eq!( + tab.panes.get(&first_pane_id).unwrap().position_and_size().x, + 0, + "second pane above x position" + ); + assert_eq!( + tab.panes.get(&first_pane_id).unwrap().position_and_size().y, + 0, + "second pane above y position" + ); + assert_eq!( + tab.panes + .get(&first_pane_id) + .unwrap() + .position_and_size() + .cols, + 60, + "second pane above column count" + ); + assert_eq!( + tab.panes + .get(&first_pane_id) + .unwrap() + .position_and_size() + .rows, + 17, + "second pane above row count" + ); +} + +#[test] +pub fn resize_down_with_panes_above_aligned_left_with_current_pane() { + // ┌─────┬─────┐ ┌─────┬─────┐ + // │ │ │ │ │ │ + // │ │ │ │ │ │ + // ├─────┼─────┤ ==resize=down==> ├─────┤ │ + // │ │█████│ │ ├─────┤ + // │ │█████│ │ │█████│ + // └─────┴─────┘ └─────┴─────┘ + // █ == focused pane + let position_and_size = PositionAndSize { + cols: 121, + rows: 30, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + let pane_above_and_left = PaneId::Terminal(1); + let pane_to_the_left = PaneId::Terminal(2); + let focused_pane = PaneId::Terminal(3); + let pane_above = PaneId::Terminal(4); + tab.horizontal_split(pane_to_the_left); + tab.vertical_split(focused_pane); + tab.move_focus_up(); + tab.vertical_split(pane_above); + tab.move_focus_down(); + tab.resize_down(); + + assert_eq!( + tab.panes.get(&focused_pane).unwrap().position_and_size().x, + 61, + "focused pane x position" + ); + assert_eq!( + tab.panes.get(&focused_pane).unwrap().position_and_size().y, + 18, + "focused pane y position" + ); + assert_eq!( + tab.panes + .get(&focused_pane) + .unwrap() + .position_and_size() + .cols, + 60, + "focused pane column count" + ); + assert_eq!( + tab.panes + .get(&focused_pane) + .unwrap() + .position_and_size() + .rows, + 12, + "focused pane row count" + ); + + assert_eq!( + tab.panes + .get(&pane_above_and_left) + .unwrap() + .position_and_size() + .x, + 0, + "pane above and to the left x position" + ); + assert_eq!( + tab.panes + .get(&pane_above_and_left) + .unwrap() + .position_and_size() + .y, + 0, + "pane above and to the left y position" + ); + assert_eq!( + tab.panes + .get(&pane_above_and_left) + .unwrap() + .position_and_size() + .cols, + 60, + "pane above and to the left column count" + ); + assert_eq!( + tab.panes + .get(&pane_above_and_left) + .unwrap() + .position_and_size() + .rows, + 15, + "pane above and to the left row count" + ); + + assert_eq!( + tab.panes.get(&pane_above).unwrap().position_and_size().x, + 61, + "pane above x position" + ); + assert_eq!( + tab.panes.get(&pane_above).unwrap().position_and_size().y, + 0, + "pane above y position" + ); + assert_eq!( + tab.panes.get(&pane_above).unwrap().position_and_size().cols, + 60, + "pane above column count" + ); + assert_eq!( + tab.panes.get(&pane_above).unwrap().position_and_size().rows, + 17, + "pane above row count" + ); + + assert_eq!( + tab.panes + .get(&pane_to_the_left) + .unwrap() + .position_and_size() + .x, + 0, + "pane to the left x position" + ); + assert_eq!( + tab.panes + .get(&pane_to_the_left) + .unwrap() + .position_and_size() + .y, + 16, + "pane to the left y position" + ); + assert_eq!( + tab.panes + .get(&pane_to_the_left) + .unwrap() + .position_and_size() + .cols, + 60, + "pane to the left column count" + ); + assert_eq!( + tab.panes + .get(&pane_to_the_left) + .unwrap() + .position_and_size() + .rows, + 14, + "pane to the left row count" + ); +} + +#[test] +pub fn resize_down_with_panes_below_aligned_left_with_current_pane() { + // ┌─────┬─────┐ ┌─────┬─────┐ + // │ │█████│ │ │█████│ + // │ │█████│ │ │█████│ + // ├─────┼─────┤ ==resize=down==> ├─────┤█████│ + // │ │ │ │ ├─────┤ + // │ │ │ │ │ │ + // └─────┴─────┘ └─────┴─────┘ + // █ == focused pane + + let position_and_size = PositionAndSize { + cols: 121, + rows: 30, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + let pane_to_the_left = PaneId::Terminal(1); + let pane_below_and_left = PaneId::Terminal(2); + let pane_below = PaneId::Terminal(3); + let focused_pane = PaneId::Terminal(4); + tab.horizontal_split(pane_below_and_left); + tab.vertical_split(pane_below); + tab.move_focus_up(); + tab.vertical_split(focused_pane); + tab.resize_down(); + + assert_eq!( + tab.panes.get(&focused_pane).unwrap().position_and_size().x, + 61, + "focused pane x position" + ); + assert_eq!( + tab.panes.get(&focused_pane).unwrap().position_and_size().y, + 0, + "focused pane y position" + ); + assert_eq!( + tab.panes + .get(&focused_pane) + .unwrap() + .position_and_size() + .cols, + 60, + "focused pane column count" + ); + assert_eq!( + tab.panes + .get(&focused_pane) + .unwrap() + .position_and_size() + .rows, + 17, + "focused pane row count" + ); + + assert_eq!( + tab.panes + .get(&pane_to_the_left) + .unwrap() + .position_and_size() + .x, + 0, + "pane above and to the left x position" + ); + assert_eq!( + tab.panes + .get(&pane_to_the_left) + .unwrap() + .position_and_size() + .y, + 0, + "pane above and to the left y position" + ); + assert_eq!( + tab.panes + .get(&pane_to_the_left) + .unwrap() + .position_and_size() + .cols, + 60, + "pane above and to the left column count" + ); + assert_eq!( + tab.panes + .get(&pane_to_the_left) + .unwrap() + .position_and_size() + .rows, + 15, + "pane above and to the left row count" + ); + + assert_eq!( + tab.panes.get(&pane_below).unwrap().position_and_size().x, + 61, + "pane above x position" + ); + assert_eq!( + tab.panes.get(&pane_below).unwrap().position_and_size().y, + 18, + "pane above y position" + ); + assert_eq!( + tab.panes.get(&pane_below).unwrap().position_and_size().cols, + 60, + "pane above column count" + ); + assert_eq!( + tab.panes.get(&pane_below).unwrap().position_and_size().rows, + 12, + "pane above row count" + ); + + assert_eq!( + tab.panes + .get(&pane_below_and_left) + .unwrap() + .position_and_size() + .x, + 0, + "pane to the left x position" + ); + assert_eq!( + tab.panes + .get(&pane_below_and_left) + .unwrap() + .position_and_size() + .y, + 16, + "pane to the left y position" + ); + assert_eq!( + tab.panes + .get(&pane_below_and_left) + .unwrap() + .position_and_size() + .cols, + 60, + "pane to the left column count" + ); + assert_eq!( + tab.panes + .get(&pane_below_and_left) + .unwrap() + .position_and_size() + .rows, + 14, + "pane to the left row count" + ); +} + +#[test] +pub fn resize_down_with_panes_above_aligned_right_with_current_pane() { + // ┌─────┬─────┐ ┌─────┬─────┐ + // │ │ │ │ │ │ + // │ │ │ │ │ │ + // ├─────┼─────┤ ==resize=down==> │ ├─────┤ + // │█████│ │ ├─────┤ │ + // │█████│ │ │█████│ │ + // └─────┴─────┘ └─────┴─────┘ + // █ == focused pane + + let position_and_size = PositionAndSize { + cols: 121, + rows: 30, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + let pane_above = PaneId::Terminal(1); + let focused_pane = PaneId::Terminal(2); + let pane_to_the_right = PaneId::Terminal(3); + let pane_above_and_right = PaneId::Terminal(4); + tab.horizontal_split(focused_pane); + tab.vertical_split(pane_to_the_right); + tab.move_focus_up(); + tab.vertical_split(pane_above_and_right); + tab.move_focus_down(); + tab.move_focus_left(); + tab.resize_down(); + + assert_eq!( + tab.panes.get(&focused_pane).unwrap().position_and_size().x, + 0, + "focused pane x position" + ); + assert_eq!( + tab.panes.get(&focused_pane).unwrap().position_and_size().y, + 18, + "focused pane y position" + ); + assert_eq!( + tab.panes + .get(&focused_pane) + .unwrap() + .position_and_size() + .cols, + 60, + "focused pane column count" + ); + assert_eq!( + tab.panes + .get(&focused_pane) + .unwrap() + .position_and_size() + .rows, + 12, + "focused pane row count" + ); + + assert_eq!( + tab.panes.get(&pane_above).unwrap().position_and_size().x, + 0, + "pane above x position" + ); + assert_eq!( + tab.panes.get(&pane_above).unwrap().position_and_size().y, + 0, + "pane above y position" + ); + assert_eq!( + tab.panes.get(&pane_above).unwrap().position_and_size().cols, + 60, + "pane above column count" + ); + assert_eq!( + tab.panes.get(&pane_above).unwrap().position_and_size().rows, + 17, + "pane above row count" + ); + + assert_eq!( + tab.panes + .get(&pane_to_the_right) + .unwrap() + .position_and_size() + .x, + 61, + "pane to the right x position" + ); + assert_eq!( + tab.panes + .get(&pane_to_the_right) + .unwrap() + .position_and_size() + .y, + 16, + "pane to the right y position" + ); + assert_eq!( + tab.panes + .get(&pane_to_the_right) + .unwrap() + .position_and_size() + .cols, + 60, + "pane to the right column count" + ); + assert_eq!( + tab.panes + .get(&pane_to_the_right) + .unwrap() + .position_and_size() + .rows, + 14, + "pane to the right row count" + ); + + assert_eq!( + tab.panes + .get(&pane_above_and_right) + .unwrap() + .position_and_size() + .x, + 61, + "pane above and to the right x position" + ); + assert_eq!( + tab.panes + .get(&pane_above_and_right) + .unwrap() + .position_and_size() + .y, + 0, + "pane above and to the right y position" + ); + assert_eq!( + tab.panes + .get(&pane_above_and_right) + .unwrap() + .position_and_size() + .cols, + 60, + "pane above and to the right column count" + ); + assert_eq!( + tab.panes + .get(&pane_above_and_right) + .unwrap() + .position_and_size() + .rows, + 15, + "pane above and to the right row count" + ); +} + +#[test] +pub fn resize_down_with_panes_below_aligned_right_with_current_pane() { + // ┌─────┬─────┐ ┌─────┬─────┐ + // │█████│ │ │█████│ │ + // │█████│ │ │█████│ │ + // ├─────┼─────┤ ==resize=down==> │█████├─────┤ + // │ │ │ ├─────┤ │ + // │ │ │ │ │ │ + // └─────┴─────┘ └─────┴─────┘ + // █ == focused pane + + let position_and_size = PositionAndSize { + cols: 121, + rows: 30, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + let focused_pane = PaneId::Terminal(1); + let pane_below = PaneId::Terminal(2); + let pane_below_and_right = PaneId::Terminal(3); + let pane_to_the_right = PaneId::Terminal(4); + tab.horizontal_split(pane_below); + tab.vertical_split(pane_below_and_right); + tab.move_focus_up(); + tab.vertical_split(pane_to_the_right); + tab.move_focus_left(); + tab.resize_down(); + + assert_eq!( + tab.panes.get(&focused_pane).unwrap().position_and_size().x, + 0, + "focused pane x position" + ); + assert_eq!( + tab.panes.get(&focused_pane).unwrap().position_and_size().y, + 0, + "focused pane y position" + ); + assert_eq!( + tab.panes + .get(&focused_pane) + .unwrap() + .position_and_size() + .cols, + 60, + "focused pane column count" + ); + assert_eq!( + tab.panes + .get(&focused_pane) + .unwrap() + .position_and_size() + .rows, + 17, + "focused pane row count" + ); + + assert_eq!( + tab.panes.get(&pane_below).unwrap().position_and_size().x, + 0, + "pane below x position" + ); + assert_eq!( + tab.panes.get(&pane_below).unwrap().position_and_size().y, + 18, + "pane below y position" + ); + assert_eq!( + tab.panes.get(&pane_below).unwrap().position_and_size().cols, + 60, + "pane below column count" + ); + assert_eq!( + tab.panes.get(&pane_below).unwrap().position_and_size().rows, + 12, + "pane below row count" + ); + + assert_eq!( + tab.panes + .get(&pane_below_and_right) + .unwrap() + .position_and_size() + .x, + 61, + "pane below and to the right x position" + ); + assert_eq!( + tab.panes + .get(&pane_below_and_right) + .unwrap() + .position_and_size() + .y, + 16, + "pane below and to the right y position" + ); + assert_eq!( + tab.panes + .get(&pane_below_and_right) + .unwrap() + .position_and_size() + .cols, + 60, + "pane below and to the right column count" + ); + assert_eq!( + tab.panes + .get(&pane_below_and_right) + .unwrap() + .position_and_size() + .rows, + 14, + "pane below and to the right row count" + ); + + assert_eq!( + tab.panes + .get(&pane_to_the_right) + .unwrap() + .position_and_size() + .x, + 61, + "pane to the right x position" + ); + assert_eq!( + tab.panes + .get(&pane_to_the_right) + .unwrap() + .position_and_size() + .y, + 0, + "pane to the right y position" + ); + assert_eq!( + tab.panes + .get(&pane_to_the_right) + .unwrap() + .position_and_size() + .cols, + 60, + "pane to the right column count" + ); + assert_eq!( + tab.panes + .get(&pane_to_the_right) + .unwrap() + .position_and_size() + .rows, + 15, + "pane to the right row count" + ); +} + +#[test] +pub fn resize_down_with_panes_above_aligned_left_and_right_with_current_pane() { + // ┌───┬───┬───┐ ┌───┬───┬───┐ + // │ │ │ │ │ │ │ │ + // │ │ │ │ │ │ │ │ + // ├───┼───┼───┤ ==resize=down==> ├───┤ ├───┤ + // │ │███│ │ │ ├───┤ │ + // │ │███│ │ │ │███│ │ + // └───┴───┴───┘ └───┴───┴───┘ + // █ == focused pane + + let position_and_size = PositionAndSize { + cols: 121, + rows: 30, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.horizontal_split(PaneId::Terminal(2)); + tab.vertical_split(PaneId::Terminal(3)); + tab.vertical_split(PaneId::Terminal(4)); + tab.move_focus_up(); + tab.vertical_split(PaneId::Terminal(5)); + tab.vertical_split(PaneId::Terminal(6)); + tab.move_focus_left(); + tab.move_focus_down(); + tab.resize_down(); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 1 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 1 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 1 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 15, + "pane 1 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 2 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 16, + "pane 2 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 2 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 14, + "pane 2 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 3 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .y, + 18, + "pane 3 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .cols, + 30, + "pane 3 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .rows, + 12, + "pane 3 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .x, + 92, + "pane 4 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .y, + 16, + "pane 4 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .cols, + 29, + "pane 4 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .rows, + 14, + "pane 4 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 5 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 5 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .cols, + 30, + "pane 5 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .rows, + 17, + "pane 5 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .x, + 92, + "pane 6 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 6 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .cols, + 29, + "pane 6 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .rows, + 15, + "pane 6 row count" + ); +} + +#[test] +pub fn resize_down_with_panes_below_aligned_left_and_right_with_current_pane() { + // ┌───┬───┬───┐ ┌───┬───┬───┐ + // │ │███│ │ │ │███│ │ + // │ │███│ │ │ │███│ │ + // ├───┼───┼───┤ ==resize=down==> ├───┤███├───┤ + // │ │ │ │ │ ├───┤ │ + // │ │ │ │ │ │ │ │ + // └───┴───┴───┘ └───┴───┴───┘ + // █ == focused pane + + let position_and_size = PositionAndSize { + cols: 121, + rows: 30, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.horizontal_split(PaneId::Terminal(2)); + tab.vertical_split(PaneId::Terminal(3)); + tab.vertical_split(PaneId::Terminal(4)); + tab.move_focus_up(); + tab.vertical_split(PaneId::Terminal(5)); + tab.vertical_split(PaneId::Terminal(6)); + tab.move_focus_left(); + tab.resize_down(); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 1 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 1 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 1 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 15, + "pane 1 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 2 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 16, + "pane 2 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 2 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 14, + "pane 2 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 3 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .y, + 18, + "pane 3 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .cols, + 30, + "pane 3 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .rows, + 12, + "pane 3 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .x, + 92, + "pane 4 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .y, + 16, + "pane 4 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .cols, + 29, + "pane 4 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .rows, + 14, + "pane 4 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 5 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 5 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .cols, + 30, + "pane 5 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .rows, + 17, + "pane 5 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .x, + 92, + "pane 6 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 6 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .cols, + 29, + "pane 6 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .rows, + 15, + "pane 6 row count" + ); +} + +#[test] +pub fn resize_down_with_panes_above_aligned_left_and_right_with_panes_to_the_left_and_right() { + // ┌─┬───────┬─┐ ┌─┬───────┬─┐ + // │ │ │ │ │ │ │ │ + // │ │ │ │ │ │ │ │ + // ├─┼─┬───┬─┼─┤ ==resize=down==> ├─┤ ├─┤ + // │ │ │███│ │ │ │ ├─┬───┬─┤ │ + // │ │ │███│ │ │ │ │ │███│ │ │ + // └─┴─┴───┴─┴─┘ └─┴─┴───┴─┴─┘ + // █ == focused pane + + let position_and_size = PositionAndSize { + cols: 121, + rows: 30, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.horizontal_split(PaneId::Terminal(2)); + tab.move_focus_up(); + tab.vertical_split(PaneId::Terminal(3)); + tab.vertical_split(PaneId::Terminal(4)); + tab.move_focus_down(); + tab.vertical_split(PaneId::Terminal(5)); + tab.vertical_split(PaneId::Terminal(6)); + tab.move_focus_left(); + tab.vertical_split(PaneId::Terminal(7)); + tab.vertical_split(PaneId::Terminal(8)); + tab.move_focus_left(); + tab.resize_down(); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 1 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 1 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 1 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 15, + "pane 1 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 2 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 16, + "pane 2 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 2 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 14, + "pane 2 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 3 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 3 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .cols, + 30, + "pane 3 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .rows, + 17, + "pane 3 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .x, + 92, + "pane 4 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 4 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .cols, + 29, + "pane 4 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .rows, + 15, + "pane 4 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 5 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .y, + 18, + "pane 5 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .cols, + 15, + "pane 5 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .rows, + 12, + "pane 5 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .x, + 92, + "pane 6 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .y, + 16, + "pane 6 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .cols, + 29, + "pane 6 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .rows, + 14, + "pane 6 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .x, + 77, + "pane 7 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .y, + 18, + "pane 7 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .cols, + 7, + "pane 7 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .rows, + 12, + "pane 7 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(8)) + .unwrap() + .position_and_size() + .x, + 85, + "pane 8 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(8)) + .unwrap() + .position_and_size() + .y, + 18, + "pane 8 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(8)) + .unwrap() + .position_and_size() + .cols, + 6, + "pane 8 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(8)) + .unwrap() + .position_and_size() + .rows, + 12, + "pane 8 row count" + ); +} + +#[test] +pub fn resize_down_with_panes_below_aligned_left_and_right_with_to_the_left_and_right() { + // ┌─┬─┬───┬─┬─┐ ┌─┬─┬───┬─┬─┐ + // │ │ │███│ │ │ │ │ │███│ │ │ + // │ │ │███│ │ │ │ │ │███│ │ │ + // ├─┼─┴───┴─┼─┤ ==resize=down==> ├─┤ │███│ ├─┤ + // │ │ │ │ │ ├─┴───┴─┤ │ + // │ │ │ │ │ │ │ │ + // └─┴───────┴─┘ └─┴───────┴─┘ + // █ == focused pane + + let position_and_size = PositionAndSize { + cols: 121, + rows: 30, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.horizontal_split(PaneId::Terminal(2)); + tab.move_focus_up(); + tab.vertical_split(PaneId::Terminal(3)); + tab.vertical_split(PaneId::Terminal(4)); + tab.move_focus_left(); + tab.vertical_split(PaneId::Terminal(5)); + tab.vertical_split(PaneId::Terminal(6)); + tab.move_focus_down(); + tab.vertical_split(PaneId::Terminal(7)); + tab.vertical_split(PaneId::Terminal(8)); + tab.move_focus_left(); + tab.move_focus_up(); + tab.move_focus_left(); + tab.resize_down(); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 1 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 1 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 1 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 15, + "pane 1 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 2 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 16, + "pane 2 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 2 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 14, + "pane 2 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 3 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 3 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .cols, + 15, + "pane 3 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .rows, + 17, + "pane 3 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .x, + 92, + "pane 4 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 4 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .cols, + 29, + "pane 4 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .rows, + 15, + "pane 4 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .x, + 77, + "pane 5 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 5 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .cols, + 7, + "pane 5 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .rows, + 17, + "pane 5 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .x, + 85, + "pane 6 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 6 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .cols, + 6, + "pane 6 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .rows, + 17, + "pane 6 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 7 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .y, + 18, + "pane 7 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .cols, + 30, + "pane 7 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .rows, + 12, + "pane 7 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(8)) + .unwrap() + .position_and_size() + .x, + 92, + "pane 8 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(8)) + .unwrap() + .position_and_size() + .y, + 16, + "pane 8 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(8)) + .unwrap() + .position_and_size() + .cols, + 29, + "pane 8 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(8)) + .unwrap() + .position_and_size() + .rows, + 14, + "pane 8 row count" + ); +} + +#[test] +pub fn cannot_resize_down_when_pane_below_is_at_minimum_height() { + // ┌───────────┐ ┌───────────┐ + // │███████████│ │███████████│ + // ├───────────┤ ==resize=down==> ├───────────┤ + // │ │ │ │ + // └───────────┘ └───────────┘ + // █ == focused pane + + let position_and_size = PositionAndSize { + cols: 121, + rows: 7, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.horizontal_split(PaneId::Terminal(2)); + tab.move_focus_up(); + tab.resize_down(); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 3, + "pane 1 height stayed the same" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 3, + "pane 2 height stayed the same" + ); +} + +#[test] +pub fn resize_left_with_pane_to_the_left() { + // ┌─────┬─────┐ ┌───┬───────┐ + // │ │█████│ │ │███████│ + // │ │█████│ ==resize=left==> │ │███████│ + // │ │█████│ │ │███████│ + // └─────┴─────┘ └───┴───────┘ + // █ == focused pane + + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.vertical_split(PaneId::Terminal(2)); + tab.resize_left(); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 1 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 1 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 50, + "pane 1 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 20, + "pane 1 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 51, + "pane 2 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 2 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 70, + "pane 2 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 20, + "pane 2 row count" + ); +} + +#[test] +pub fn resize_left_with_pane_to_the_right() { + // ┌─────┬─────┐ ┌───┬───────┐ + // │█████│ │ │███│ │ + // │█████│ │ ==resize=left==> │███│ │ + // │█████│ │ │███│ │ + // └─────┴─────┘ └───┴───────┘ + // █ == focused pane + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.vertical_split(PaneId::Terminal(2)); + tab.move_focus_left(); + tab.resize_left(); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 1 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 1 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 50, + "pane 1 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 20, + "pane 1 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 51, + "pane 2 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 2 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 70, + "pane 2 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 20, + "pane 2 row count" + ); +} + +#[test] +pub fn resize_left_with_panes_to_the_left_and_right() { + // ┌─────┬─────┬─────┐ ┌─────┬───┬───────┐ + // │ │█████│ │ │ │███│ │ + // │ │█████│ │ ==resize=left==> │ │███│ │ + // │ │█████│ │ │ │███│ │ + // └─────┴─────┴─────┘ └─────┴───┴───────┘ + // █ == focused pane + + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.vertical_split(PaneId::Terminal(2)); + tab.vertical_split(PaneId::Terminal(3)); + tab.move_focus_left(); + tab.resize_left(); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 1 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 1 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 50, + "pane 1 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 20, + "pane 1 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 51, + "pane 2 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 2 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 40, + "pane 2 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 20, + "pane 2 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .x, + 92, + "pane 2 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 2 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .cols, + 29, + "pane 2 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .rows, + 20, + "pane 2 row count" + ); +} + +#[test] +pub fn resize_left_with_multiple_panes_to_the_left() { + // ┌─────┬─────┐ ┌───┬───────┐ + // │ │█████│ │ │███████│ + // ├─────┤█████│ ==resize=left==> ├───┤███████│ + // │ │█████│ │ │███████│ + // └─────┴─────┘ └───┴───────┘ + // █ == focused pane + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.vertical_split(PaneId::Terminal(2)); + tab.move_focus_left(); + tab.horizontal_split(PaneId::Terminal(3)); + tab.move_focus_right(); + tab.resize_left(); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 1 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 1 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 50, + "pane 1 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 10, + "pane 1 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 51, + "pane 2 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 2 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 70, + "pane 2 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 20, + "pane 2 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 2 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .y, + 11, + "pane 2 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .cols, + 50, + "pane 2 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .rows, + 9, + "pane 2 row count" + ); +} + +#[test] +pub fn resize_left_with_panes_to_the_left_aligned_top_with_current_pane() { + // ┌─────┬─────┐ ┌─────┬─────┐ + // │ │ │ │ │ │ + // ├─────┼─────┤ ==resize=left==> ├───┬─┴─────┤ + // │ │█████│ │ │███████│ + // └─────┴─────┘ └───┴───────┘ + // █ == focused pane + + let position_and_size = PositionAndSize { + cols: 121, + rows: 30, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.horizontal_split(PaneId::Terminal(2)); + tab.vertical_split(PaneId::Terminal(3)); + tab.move_focus_up(); + tab.vertical_split(PaneId::Terminal(4)); + tab.move_focus_down(); + tab.resize_left(); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 1 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 1 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 1 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 15, + "pane 1 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 2 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 16, + "pane 2 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 50, + "pane 2 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 14, + "pane 2 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .x, + 51, + "pane 3 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .y, + 16, + "pane 3 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .cols, + 70, + "pane 3 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .rows, + 14, + "pane 3 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 4 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 4 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 4 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .rows, + 15, + "pane 4 row count" + ); +} + +#[test] +pub fn resize_left_with_panes_to_the_right_aligned_top_with_current_pane() { + // ┌─────┬─────┐ ┌─────┬─────┐ + // │ │ │ │ │ │ + // ├─────┼─────┤ ==resize=left==> ├───┬─┴─────┤ + // │█████│ │ │███│ │ + // └─────┴─────┘ └───┴───────┘ + // █ == focused pane + + let position_and_size = PositionAndSize { + cols: 121, + rows: 30, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.horizontal_split(PaneId::Terminal(2)); + tab.vertical_split(PaneId::Terminal(3)); + tab.move_focus_up(); + tab.vertical_split(PaneId::Terminal(4)); + tab.move_focus_down(); + tab.move_focus_left(); + tab.resize_left(); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 1 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 1 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 1 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 15, + "pane 1 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 2 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 16, + "pane 2 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 50, + "pane 2 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 14, + "pane 2 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .x, + 51, + "pane 3 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .y, + 16, + "pane 3 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .cols, + 70, + "pane 3 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .rows, + 14, + "pane 3 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 4 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 4 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 4 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .rows, + 15, + "pane 4 row count" + ); +} + +#[test] +pub fn resize_left_with_panes_to_the_left_aligned_bottom_with_current_pane() { + // ┌─────┬─────┐ ┌───┬───────┐ + // │ │█████│ │ │███████│ + // ├─────┼─────┤ ==resize=left==> ├───┴─┬─────┤ + // │ │ │ │ │ │ + // └─────┴─────┘ └─────┴─────┘ + // █ == focused pane + + let position_and_size = PositionAndSize { + cols: 121, + rows: 30, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.horizontal_split(PaneId::Terminal(2)); + tab.vertical_split(PaneId::Terminal(3)); + tab.move_focus_up(); + tab.vertical_split(PaneId::Terminal(4)); + tab.resize_left(); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 1 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 1 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 50, + "pane 1 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 15, + "pane 1 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 2 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 16, + "pane 2 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 2 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 14, + "pane 2 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 3 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .y, + 16, + "pane 3 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 3 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .rows, + 14, + "pane 3 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .x, + 51, + "pane 4 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 4 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .cols, + 70, + "pane 4 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .rows, + 15, + "pane 4 row count" + ); +} + +#[test] +pub fn resize_left_with_panes_to_the_right_aligned_bottom_with_current_pane() { + // ┌─────┬─────┐ ┌───┬───────┐ + // │█████│ │ │███│ │ + // ├─────┼─────┤ ==resize=left==> ├───┴─┬─────┤ + // │ │ │ │ │ │ + // └─────┴─────┘ └─────┴─────┘ + // █ == focused pane + + let position_and_size = PositionAndSize { + cols: 121, + rows: 30, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.horizontal_split(PaneId::Terminal(2)); + tab.vertical_split(PaneId::Terminal(3)); + tab.move_focus_up(); + tab.vertical_split(PaneId::Terminal(4)); + tab.move_focus_left(); + tab.resize_left(); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 1 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 1 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 50, + "pane 1 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 15, + "pane 1 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 2 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 16, + "pane 2 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 2 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 14, + "pane 2 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 3 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .y, + 16, + "pane 3 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 3 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .rows, + 14, + "pane 3 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .x, + 51, + "pane 4 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 4 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .cols, + 70, + "pane 4 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .rows, + 15, + "pane 4 row count" + ); +} + +#[test] +pub fn resize_left_with_panes_to_the_left_aligned_top_and_bottom_with_current_pane() { + // ┌─────┬─────┐ ┌─────┬─────┐ + // │ │ │ │ │ │ + // ├─────┼─────┤ ├───┬─┴─────┤ + // │ │█████│ ==resize=left==> │ │███████│ + // ├─────┼─────┤ ├───┴─┬─────┤ + // │ │ │ │ │ │ + // └─────┴─────┘ └─────┴─────┘ + // █ == focused pane + + let position_and_size = PositionAndSize { + cols: 121, + rows: 30, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.horizontal_split(PaneId::Terminal(2)); + tab.horizontal_split(PaneId::Terminal(3)); + tab.vertical_split(PaneId::Terminal(4)); + tab.move_focus_up(); + tab.vertical_split(PaneId::Terminal(5)); + tab.move_focus_up(); + tab.vertical_split(PaneId::Terminal(6)); + tab.move_focus_down(); + tab.resize_left(); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 1 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 1 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 1 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 15, + "pane 1 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 2 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 16, + "pane 2 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 50, + "pane 2 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 7, + "pane 2 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 3 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .y, + 24, + "pane 3 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 3 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .rows, + 6, + "pane 3 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 4 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .y, + 24, + "pane 4 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 4 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .rows, + 6, + "pane 4 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .x, + 51, + "pane 5 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .y, + 16, + "pane 5 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .cols, + 70, + "pane 5 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .rows, + 7, + "pane 5 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 6 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 6 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 6 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .rows, + 15, + "pane 6 row count" + ); +} + +#[test] +pub fn resize_left_with_panes_to_the_right_aligned_top_and_bottom_with_current_pane() { + // ┌─────┬─────┐ ┌─────┬─────┐ + // │ │ │ │ │ │ + // ├─────┼─────┤ ├───┬─┴─────┤ + // │█████│ │ ==resize=left==> │███│ │ + // ├─────┼─────┤ ├───┴─┬─────┤ + // │ │ │ │ │ │ + // └─────┴─────┘ └─────┴─────┘ + // █ == focused pane + + let position_and_size = PositionAndSize { + cols: 121, + rows: 30, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.horizontal_split(PaneId::Terminal(2)); + tab.horizontal_split(PaneId::Terminal(3)); + tab.vertical_split(PaneId::Terminal(4)); + tab.move_focus_up(); + tab.vertical_split(PaneId::Terminal(5)); + tab.move_focus_up(); + tab.vertical_split(PaneId::Terminal(6)); + tab.move_focus_down(); + tab.move_focus_left(); + tab.resize_left(); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 1 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 1 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 1 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 15, + "pane 1 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 2 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 16, + "pane 2 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 50, + "pane 2 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 7, + "pane 2 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 3 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .y, + 24, + "pane 3 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 3 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .rows, + 6, + "pane 3 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 4 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .y, + 24, + "pane 4 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 4 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .rows, + 6, + "pane 4 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .x, + 51, + "pane 5 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .y, + 16, + "pane 5 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .cols, + 70, + "pane 5 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .rows, + 7, + "pane 5 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 6 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 6 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 6 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .rows, + 15, + "pane 6 row count" + ); +} + +#[test] +pub fn resize_left_with_panes_to_the_left_aligned_top_and_bottom_with_panes_above_and_below() { + // ┌─────┬─────┐ ┌─────┬─────┐ + // ├─────┼─────┤ ├───┬─┴─────┤ + // │ ├─────┤ │ ├───────┤ + // │ │█████│ ==resize=left==> │ │███████│ + // │ ├─────┤ │ ├───────┤ + // ├─────┼─────┤ ├───┴─┬─────┤ + // └─────┴─────┘ └─────┴─────┘ + // █ == focused pane + + let position_and_size = PositionAndSize { + cols: 121, + rows: 70, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.horizontal_split(PaneId::Terminal(2)); + tab.horizontal_split(PaneId::Terminal(3)); + tab.vertical_split(PaneId::Terminal(4)); + tab.move_focus_up(); + tab.move_focus_up(); + tab.vertical_split(PaneId::Terminal(5)); + tab.move_focus_down(); + tab.vertical_split(PaneId::Terminal(6)); + tab.horizontal_split(PaneId::Terminal(7)); + tab.horizontal_split(PaneId::Terminal(8)); + tab.move_focus_up(); + tab.resize_left(); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 1 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 1 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 1 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 35, + "pane 1 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 2 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 36, + "pane 2 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 50, + "pane 2 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 17, + "pane 2 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 3 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .y, + 54, + "pane 3 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 3 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .rows, + 16, + "pane 3 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 4 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .y, + 54, + "pane 4 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 4 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .rows, + 16, + "pane 4 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 5 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 5 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 5 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .rows, + 35, + "pane 5 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .x, + 51, + "pane 6 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .y, + 36, + "pane 6 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .cols, + 70, + "pane 6 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .rows, + 8, + "pane 6 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .x, + 51, + "pane 7 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .y, + 45, + "pane 7 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .cols, + 70, + "pane 7 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .rows, + 4, + "pane 7 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(8)) + .unwrap() + .position_and_size() + .x, + 51, + "pane 8 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(8)) + .unwrap() + .position_and_size() + .y, + 50, + "pane 8 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(8)) + .unwrap() + .position_and_size() + .cols, + 70, + "pane 8 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(8)) + .unwrap() + .position_and_size() + .rows, + 3, + "pane 8 row count" + ); +} + +#[test] +pub fn resize_left_with_panes_to_the_right_aligned_top_and_bottom_with_panes_above_and_below() { + // ┌─────┬─────┐ ┌─────┬─────┐ + // ├─────┼─────┤ ├───┬─┴─────┤ + // ├─────┤ │ ├───┤ │ + // │█████│ │ ==resize=left==> │███│ │ + // ├─────┤ │ ├───┤ │ + // ├─────┼─────┤ ├───┴─┬─────┤ + // └─────┴─────┘ └─────┴─────┘ + // █ == focused pane + + let position_and_size = PositionAndSize { + cols: 121, + rows: 70, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.horizontal_split(PaneId::Terminal(2)); + tab.horizontal_split(PaneId::Terminal(3)); + tab.vertical_split(PaneId::Terminal(4)); + tab.move_focus_up(); + tab.move_focus_up(); + tab.vertical_split(PaneId::Terminal(5)); + tab.move_focus_down(); + tab.vertical_split(PaneId::Terminal(6)); + tab.move_focus_left(); + tab.horizontal_split(PaneId::Terminal(7)); + tab.horizontal_split(PaneId::Terminal(8)); + tab.move_focus_up(); + tab.resize_left(); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 1 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 1 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 1 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 35, + "pane 1 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 2 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 36, + "pane 2 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 50, + "pane 2 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 8, + "pane 2 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 3 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .y, + 54, + "pane 3 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 3 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .rows, + 16, + "pane 3 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 4 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .y, + 54, + "pane 4 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 4 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .rows, + 16, + "pane 4 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 5 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 5 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 5 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .rows, + 35, + "pane 5 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .x, + 51, + "pane 6 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .y, + 36, + "pane 6 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .cols, + 70, + "pane 6 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .rows, + 17, + "pane 6 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 7 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .y, + 45, + "pane 7 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .cols, + 50, + "pane 7 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .rows, + 4, + "pane 7 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(8)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 8 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(8)) + .unwrap() + .position_and_size() + .y, + 50, + "pane 8 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(8)) + .unwrap() + .position_and_size() + .cols, + 50, + "pane 8 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(8)) + .unwrap() + .position_and_size() + .rows, + 3, + "pane 8 row count" + ); +} + +#[test] +pub fn cannot_resize_left_when_pane_to_the_left_is_at_minimum_width() { + // ┌─┬─┐ ┌─┬─┐ + // │ │█│ │ │█│ + // │ │█│ ==resize=left==> │ │█│ + // │ │█│ │ │█│ + // └─┴─┘ └─┴─┘ + // █ == focused pane + + let position_and_size = PositionAndSize { + cols: 9, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.vertical_split(PaneId::Terminal(2)); + tab.resize_left(); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 4, + "pane 1 columns stayed the same" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 4, + "pane 2 columns stayed the same" + ); +} + +#[test] +pub fn resize_right_with_pane_to_the_left() { + // ┌─────┬─────┐ ┌───────┬───┐ + // │ │█████│ │ │███│ + // │ │█████│ ==resize=right==> │ │███│ + // │ │█████│ │ │███│ + // └─────┴─────┘ └───────┴───┘ + // █ == focused pane + + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.vertical_split(PaneId::Terminal(2)); + tab.resize_right(); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 1 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 1 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 70, + "pane 1 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 20, + "pane 1 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 71, + "pane 2 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 2 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 50, + "pane 2 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 20, + "pane 2 row count" + ); +} + +#[test] +pub fn resize_right_with_pane_to_the_right() { + // ┌─────┬─────┐ ┌───────┬───┐ + // │█████│ │ │███████│ │ + // │█████│ │ ==resize=right==> │███████│ │ + // │█████│ │ │███████│ │ + // └─────┴─────┘ └───────┴───┘ + // █ == focused pane + + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.vertical_split(PaneId::Terminal(2)); + tab.move_focus_left(); + tab.resize_right(); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 1 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 1 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 70, + "pane 1 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 20, + "pane 1 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 71, + "pane 2 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 2 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 50, + "pane 2 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 20, + "pane 2 row count" + ); +} + +#[test] +pub fn resize_right_with_panes_to_the_left_and_right() { + // ┌─────┬─────┬─────┐ ┌─────┬───────┬───┐ + // │ │█████│ │ │ │███████│ │ + // │ │█████│ │ ==resize=right==> │ │███████│ │ + // │ │█████│ │ │ │███████│ │ + // └─────┴─────┴─────┘ └─────┴───────┴───┘ + // █ == focused pane + + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.vertical_split(PaneId::Terminal(2)); + tab.vertical_split(PaneId::Terminal(3)); + tab.move_focus_left(); + tab.resize_right(); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 1 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 1 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 1 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 20, + "pane 1 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 2 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 2 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 40, + "pane 2 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 20, + "pane 2 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .x, + 102, + "pane 2 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 2 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .cols, + 19, + "pane 2 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .rows, + 20, + "pane 2 row count" + ); +} + +#[test] +pub fn resize_right_with_multiple_panes_to_the_left() { + // ┌─────┬─────┐ ┌───────┬───┐ + // │ │█████│ │ │███│ + // ├─────┤█████│ ==resize=right==> ├───────┤███│ + // │ │█████│ │ │███│ + // └─────┴─────┘ └───────┴───┘ + // █ == focused pane + + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.vertical_split(PaneId::Terminal(2)); + tab.move_focus_left(); + tab.horizontal_split(PaneId::Terminal(3)); + tab.move_focus_right(); + tab.resize_right(); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 1 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 1 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 70, + "pane 1 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 10, + "pane 1 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 71, + "pane 2 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 2 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 50, + "pane 2 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 20, + "pane 2 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 3 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .y, + 11, + "pane 3 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .cols, + 70, + "pane 3 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .rows, + 9, + "pane 3 row count" + ); +} + +#[test] +pub fn resize_right_with_panes_to_the_left_aligned_top_with_current_pane() { + // ┌─────┬─────┐ ┌─────┬─────┐ + // │ │ │ │ │ │ + // ├─────┼─────┤ ==resize=right==> ├─────┴─┬───┤ + // │ │█████│ │ │███│ + // └─────┴─────┘ └───────┴───┘ + // █ == focused pane + + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.vertical_split(PaneId::Terminal(2)); + tab.move_focus_left(); + tab.horizontal_split(PaneId::Terminal(3)); + tab.move_focus_right(); + tab.horizontal_split(PaneId::Terminal(4)); + tab.resize_right(); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 1 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 1 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 1 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 10, + "pane 1 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 2 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 2 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 2 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 10, + "pane 2 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 3 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .y, + 11, + "pane 3 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .cols, + 70, + "pane 3 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .rows, + 9, + "pane 3 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .x, + 71, + "pane 4 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .y, + 11, + "pane 4 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .cols, + 50, + "pane 4 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .rows, + 9, + "pane 4 row count" + ); +} + +#[test] +pub fn resize_right_with_panes_to_the_right_aligned_top_with_current_pane() { + // ┌─────┬─────┐ ┌─────┬─────┐ + // │ │ │ │ │ │ + // ├─────┼─────┤ ==resize=right==> ├─────┴─┬───┤ + // │█████│ │ │███████│ │ + // └─────┴─────┘ └───────┴───┘ + // █ == focused pane + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.vertical_split(PaneId::Terminal(2)); + tab.move_focus_left(); + tab.horizontal_split(PaneId::Terminal(3)); + tab.move_focus_right(); + tab.horizontal_split(PaneId::Terminal(4)); + tab.move_focus_left(); + tab.resize_right(); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 1 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 1 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 1 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 10, + "pane 1 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 2 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 2 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 2 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 10, + "pane 2 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 3 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .y, + 11, + "pane 3 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .cols, + 70, + "pane 3 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .rows, + 9, + "pane 3 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .x, + 71, + "pane 4 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .y, + 11, + "pane 4 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .cols, + 50, + "pane 4 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .rows, + 9, + "pane 4 row count" + ); +} + +#[test] +pub fn resize_right_with_panes_to_the_left_aligned_bottom_with_current_pane() { + // ┌─────┬─────┐ ┌───────┬───┐ + // │ │█████│ │ │███│ + // ├─────┼─────┤ ==resize=right==> ├─────┬─┴───┤ + // │ │ │ │ │ │ + // └─────┴─────┘ └─────┴─────┘ + // █ == focused pane + + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.vertical_split(PaneId::Terminal(2)); + tab.move_focus_left(); + tab.horizontal_split(PaneId::Terminal(3)); + tab.move_focus_right(); + tab.horizontal_split(PaneId::Terminal(4)); + tab.move_focus_up(); + tab.resize_right(); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 1 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 1 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 70, + "pane 1 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 10, + "pane 1 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 71, + "pane 2 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 2 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 50, + "pane 2 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 10, + "pane 2 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 3 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .y, + 11, + "pane 3 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 3 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .rows, + 9, + "pane 3 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 4 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .y, + 11, + "pane 4 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 4 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .rows, + 9, + "pane 4 row count" + ); +} + +#[test] +pub fn resize_right_with_panes_to_the_right_aligned_bottom_with_current_pane() { + // ┌─────┬─────┐ ┌───────┬───┐ + // │█████│ │ │███████│ │ + // ├─────┼─────┤ ==resize=right==> ├─────┬─┴───┤ + // │ │ │ │ │ │ + // └─────┴─────┘ └─────┴─────┘ + // █ == focused pane + + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.vertical_split(PaneId::Terminal(2)); + tab.move_focus_left(); + tab.horizontal_split(PaneId::Terminal(3)); + tab.move_focus_right(); + tab.horizontal_split(PaneId::Terminal(4)); + tab.move_focus_up(); + tab.move_focus_left(); + tab.resize_right(); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 1 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 1 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 70, + "pane 1 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 10, + "pane 1 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 71, + "pane 2 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 2 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 50, + "pane 2 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 10, + "pane 2 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 3 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .y, + 11, + "pane 3 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 3 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .rows, + 9, + "pane 3 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 4 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .y, + 11, + "pane 4 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 4 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .rows, + 9, + "pane 4 row count" + ); +} + +#[test] +pub fn resize_right_with_panes_to_the_left_aligned_top_and_bottom_with_current_pane() { + // ┌─────┬─────┐ ┌─────┬─────┐ + // │ │ │ │ │ │ + // ├─────┼─────┤ ├─────┴─┬───┤ + // │ │█████│ ==resize=right==> │ │███│ + // ├─────┼─────┤ ├─────┬─┴───┤ + // │ │ │ │ │ │ + // └─────┴─────┘ └─────┴─────┘ + // █ == focused pane + + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.horizontal_split(PaneId::Terminal(2)); + tab.horizontal_split(PaneId::Terminal(3)); + tab.vertical_split(PaneId::Terminal(4)); + tab.move_focus_up(); + tab.vertical_split(PaneId::Terminal(5)); + tab.move_focus_up(); + tab.vertical_split(PaneId::Terminal(6)); + tab.move_focus_down(); + tab.resize_right(); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 1 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 1 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 1 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 10, + "pane 1 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 2 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 11, + "pane 2 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 70, + "pane 2 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 4, + "pane 2 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 3 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .y, + 16, + "pane 3 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 3 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .rows, + 4, + "pane 3 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 4 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .y, + 16, + "pane 4 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 4 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .rows, + 4, + "pane 4 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .x, + 71, + "pane 5 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .y, + 11, + "pane 5 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .cols, + 50, + "pane 5 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .rows, + 4, + "pane 5 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 6 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 6 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 6 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .rows, + 10, + "pane 6 row count" + ); +} + +#[test] +pub fn resize_right_with_panes_to_the_right_aligned_top_and_bottom_with_current_pane() { + // ┌─────┬─────┐ ┌─────┬─────┐ + // │ │ │ │ │ │ + // ├─────┼─────┤ ├─────┴─┬───┤ + // │█████│ │ ==resize=right==> │███████│ │ + // ├─────┼─────┤ ├─────┬─┴───┤ + // │ │ │ │ │ │ + // └─────┴─────┘ └─────┴─────┘ + // █ == focused pane + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.horizontal_split(PaneId::Terminal(2)); + tab.horizontal_split(PaneId::Terminal(3)); + tab.vertical_split(PaneId::Terminal(4)); + tab.move_focus_up(); + tab.vertical_split(PaneId::Terminal(5)); + tab.move_focus_up(); + tab.vertical_split(PaneId::Terminal(6)); + tab.move_focus_down(); + tab.move_focus_left(); + tab.resize_right(); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 1 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 1 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 1 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 10, + "pane 1 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 2 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 11, + "pane 2 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 70, + "pane 2 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 4, + "pane 2 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 3 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .y, + 16, + "pane 3 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 3 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .rows, + 4, + "pane 3 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 4 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .y, + 16, + "pane 4 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 4 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .rows, + 4, + "pane 4 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .x, + 71, + "pane 5 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .y, + 11, + "pane 5 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .cols, + 50, + "pane 5 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .rows, + 4, + "pane 5 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 6 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 6 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 6 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .rows, + 10, + "pane 6 row count" + ); +} + +#[test] +pub fn resize_right_with_panes_to_the_left_aligned_top_and_bottom_with_panes_above_and_below() { + // ┌─────┬─────┐ ┌─────┬─────┐ + // ├─────┼─────┤ ├─────┴─┬───┤ + // │ ├─────┤ │ ├───┤ + // │ │█████│ ==resize=right==> │ │███│ + // │ ├─────┤ │ ├───┤ + // ├─────┼─────┤ ├─────┬─┴───┤ + // └─────┴─────┘ └─────┴─────┘ + // █ == focused pane + let position_and_size = PositionAndSize { + cols: 121, + rows: 70, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.horizontal_split(PaneId::Terminal(2)); + tab.horizontal_split(PaneId::Terminal(3)); + tab.vertical_split(PaneId::Terminal(4)); + tab.move_focus_up(); + tab.move_focus_up(); + tab.vertical_split(PaneId::Terminal(5)); + tab.move_focus_down(); + tab.vertical_split(PaneId::Terminal(6)); + tab.horizontal_split(PaneId::Terminal(7)); + tab.horizontal_split(PaneId::Terminal(8)); + tab.move_focus_up(); + tab.resize_right(); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 1 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 1 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 1 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 35, + "pane 1 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 2 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 36, + "pane 2 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 70, + "pane 2 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 17, + "pane 2 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 3 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .y, + 54, + "pane 3 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 3 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .rows, + 16, + "pane 3 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 4 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .y, + 54, + "pane 4 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 4 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .rows, + 16, + "pane 4 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 5 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 5 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 5 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .rows, + 35, + "pane 5 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .x, + 71, + "pane 6 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .y, + 36, + "pane 6 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .cols, + 50, + "pane 6 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .rows, + 8, + "pane 6 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .x, + 71, + "pane 7 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .y, + 45, + "pane 7 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .cols, + 50, + "pane 7 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .rows, + 4, + "pane 7 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(8)) + .unwrap() + .position_and_size() + .x, + 71, + "pane 8 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(8)) + .unwrap() + .position_and_size() + .y, + 50, + "pane 8 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(8)) + .unwrap() + .position_and_size() + .cols, + 50, + "pane 8 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(8)) + .unwrap() + .position_and_size() + .rows, + 3, + "pane 8 row count" + ); +} + +#[test] +pub fn resize_right_with_panes_to_the_right_aligned_top_and_bottom_with_panes_above_and_below() { + // ┌─────┬─────┐ ┌─────┬─────┐ + // ├─────┼─────┤ ├─────┴─┬───┤ + // ├─────┤ │ ├───────┤ │ + // │█████│ │ ==resize=right==> │███████│ │ + // ├─────┤ │ ├───────┤ │ + // ├─────┼─────┤ ├─────┬─┴───┤ + // └─────┴─────┘ └─────┴─────┘ + // █ == focused pane + let position_and_size = PositionAndSize { + cols: 121, + rows: 70, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.horizontal_split(PaneId::Terminal(2)); + tab.horizontal_split(PaneId::Terminal(3)); + tab.vertical_split(PaneId::Terminal(4)); + tab.move_focus_up(); + tab.move_focus_up(); + tab.vertical_split(PaneId::Terminal(5)); + tab.move_focus_down(); + tab.vertical_split(PaneId::Terminal(6)); + tab.move_focus_left(); + tab.horizontal_split(PaneId::Terminal(7)); + tab.horizontal_split(PaneId::Terminal(8)); + tab.move_focus_up(); + tab.resize_right(); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 1 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 1 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 1 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 35, + "pane 1 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 2 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 36, + "pane 2 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 70, + "pane 2 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 8, + "pane 2 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 3 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .y, + 54, + "pane 3 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 3 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .rows, + 16, + "pane 3 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 4 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .y, + 54, + "pane 4 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 4 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .rows, + 16, + "pane 4 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 5 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 5 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 5 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .rows, + 35, + "pane 5 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .x, + 71, + "pane 6 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .y, + 36, + "pane 6 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .cols, + 50, + "pane 6 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .rows, + 17, + "pane 6 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 7 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .y, + 45, + "pane 7 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .cols, + 70, + "pane 7 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .rows, + 4, + "pane 7 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(8)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 8 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(8)) + .unwrap() + .position_and_size() + .y, + 50, + "pane 8 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(8)) + .unwrap() + .position_and_size() + .cols, + 70, + "pane 8 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(8)) + .unwrap() + .position_and_size() + .rows, + 3, + "pane 8 row count" + ); +} + +#[test] +pub fn cannot_resize_right_when_pane_to_the_left_is_at_minimum_width() { + // ┌─┬─┐ ┌─┬─┐ + // │ │█│ │ │█│ + // │ │█│ ==resize=right==> │ │█│ + // │ │█│ │ │█│ + // └─┴─┘ └─┴─┘ + // █ == focused pane + let position_and_size = PositionAndSize { + cols: 9, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.vertical_split(PaneId::Terminal(2)); + tab.resize_right(); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 4, + "pane 1 columns stayed the same" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 4, + "pane 2 columns stayed the same" + ); +} + +#[test] +pub fn resize_up_with_pane_above() { + // ┌───────────┐ ┌───────────┐ + // │ │ │ │ + // │ │ ├───────────┤ + // ├───────────┤ ==resize=up==> │███████████│ + // │███████████│ │███████████│ + // │███████████│ │███████████│ + // └───────────┘ └───────────┘ + // █ == focused pane + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.horizontal_split(PaneId::Terminal(2)); + tab.resize_up(); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 1 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 1 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 121, + "pane 1 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 8, + "pane 1 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 2 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 9, + "pane 2 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 121, + "pane 2 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 11, + "pane 2 row count" + ); +} + +#[test] +pub fn resize_up_with_pane_below() { + // ┌───────────┐ ┌───────────┐ + // │███████████│ │███████████│ + // │███████████│ ├───────────┤ + // ├───────────┤ ==resize=up==> │ │ + // │ │ │ │ + // │ │ │ │ + // └───────────┘ └───────────┘ + // █ == focused pane + let position_and_size = PositionAndSize { + cols: 121, + rows: 20, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.horizontal_split(PaneId::Terminal(2)); + tab.move_focus_up(); + tab.resize_up(); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 1 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 1 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 121, + "pane 1 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 8, + "pane 1 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 2 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 9, + "pane 2 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 121, + "pane 2 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 11, + "pane 2 row count" + ); +} + +#[test] +pub fn resize_up_with_panes_above_and_below() { + // ┌───────────┐ ┌───────────┐ + // │ │ │ │ + // │ │ ├───────────┤ + // ├───────────┤ │███████████│ + // │███████████│ ==resize=up==> │███████████│ + // │███████████│ │███████████│ + // ├───────────┤ ├───────────┤ + // │ │ │ │ + // │ │ │ │ + // └───────────┘ └───────────┘ + // █ == focused pane + let position_and_size = PositionAndSize { + cols: 121, + rows: 30, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.horizontal_split(PaneId::Terminal(2)); + tab.horizontal_split(PaneId::Terminal(3)); + tab.move_focus_up(); + tab.resize_up(); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 1 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 1 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 121, + "pane 1 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 13, + "pane 1 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 2 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 14, + "pane 2 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 121, + "pane 2 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 9, + "pane 2 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 3 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .y, + 24, + "pane 3 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .cols, + 121, + "pane 3 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .rows, + 6, + "pane 3 row count" + ); +} + +#[test] +pub fn resize_up_with_multiple_panes_above() { + // + // ┌─────┬─────┐ ┌─────┬─────┐ + // │ │ │ ├─────┴─────┤ + // ├─────┴─────┤ ==resize=up==> │███████████│ + // │███████████│ │███████████│ + // └───────────┘ └───────────┘ + // █ == focused pane + let position_and_size = PositionAndSize { + cols: 121, + rows: 30, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.horizontal_split(PaneId::Terminal(2)); + tab.move_focus_up(); + tab.vertical_split(PaneId::Terminal(3)); + tab.move_focus_down(); + tab.resize_up(); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 1 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 1 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 1 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 13, + "pane 1 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 2 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 14, + "pane 2 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 121, + "pane 2 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 16, + "pane 2 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 3 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 3 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 3 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .rows, + 13, + "pane 3 row count" + ); +} + +#[test] +pub fn resize_up_with_panes_above_aligned_left_with_current_pane() { + // ┌─────┬─────┐ ┌─────┬─────┐ + // │ │ │ │ ├─────┤ + // ├─────┼─────┤ ==resize=up==> ├─────┤█████│ + // │ │█████│ │ │█████│ + // └─────┴─────┘ └─────┴─────┘ + // █ == focused pane + let position_and_size = PositionAndSize { + cols: 121, + rows: 30, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.horizontal_split(PaneId::Terminal(2)); + tab.move_focus_up(); + tab.vertical_split(PaneId::Terminal(3)); + tab.move_focus_down(); + tab.vertical_split(PaneId::Terminal(4)); + tab.resize_up(); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 1 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 1 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 1 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 15, + "pane 1 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 2 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 16, + "pane 2 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 2 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 14, + "pane 2 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 3 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 3 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 3 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .rows, + 13, + "pane 3 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 4 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .y, + 14, + "pane 4 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 4 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .rows, + 16, + "pane 4 row count" + ); +} + +#[test] +pub fn resize_up_with_panes_below_aligned_left_with_current_pane() { + // ┌─────┬─────┐ ┌─────┬─────┐ + // │ │█████│ │ │█████│ + // │ │█████│ │ ├─────┤ + // ├─────┼─────┤ ==resize=up==> ├─────┤ │ + // │ │ │ │ │ │ + // │ │ │ │ │ │ + // └─────┴─────┘ └─────┴─────┘ + // █ == focused pane + let position_and_size = PositionAndSize { + cols: 121, + rows: 30, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.horizontal_split(PaneId::Terminal(2)); + tab.move_focus_up(); + tab.vertical_split(PaneId::Terminal(3)); + tab.move_focus_down(); + tab.vertical_split(PaneId::Terminal(4)); + tab.move_focus_up(); + tab.resize_up(); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 1 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 1 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 1 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 15, + "pane 1 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 2 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 16, + "pane 2 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 2 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 14, + "pane 2 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 3 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 3 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 3 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .rows, + 13, + "pane 3 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 4 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .y, + 14, + "pane 4 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 4 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .rows, + 16, + "pane 4 row count" + ); +} + +#[test] +pub fn resize_up_with_panes_above_aligned_right_with_current_pane() { + // ┌─────┬─────┐ ┌─────┬─────┐ + // │ │ │ │ │ │ + // │ │ │ ├─────┤ │ + // ├─────┼─────┤ ==resize=up==> │█████├─────┤ + // │█████│ │ │█████│ │ + // │█████│ │ │█████│ │ + // └─────┴─────┘ └─────┴─────┘ + // █ == focused pane + let position_and_size = PositionAndSize { + cols: 121, + rows: 30, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.horizontal_split(PaneId::Terminal(2)); + tab.move_focus_up(); + tab.vertical_split(PaneId::Terminal(3)); + tab.move_focus_down(); + tab.vertical_split(PaneId::Terminal(4)); + tab.move_focus_left(); + tab.resize_up(); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 1 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 1 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 1 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 13, + "pane 1 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 2 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 14, + "pane 2 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 2 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 16, + "pane 2 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 3 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 3 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 3 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .rows, + 15, + "pane 3 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 4 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .y, + 16, + "pane 4 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 4 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .rows, + 14, + "pane 4 row count" + ); +} + +#[test] +pub fn resize_up_with_panes_below_aligned_right_with_current_pane() { + // ┌─────┬─────┐ ┌─────┬─────┐ + // │█████│ │ │█████│ │ + // │█████│ │ ├─────┤ │ + // ├─────┼─────┤ ==resize=up==> │ ├─────┤ + // │ │ │ │ │ │ + // │ │ │ │ │ │ + // └─────┴─────┘ └─────┴─────┘ + // █ == focused pane + let position_and_size = PositionAndSize { + cols: 121, + rows: 30, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.horizontal_split(PaneId::Terminal(2)); + tab.move_focus_up(); + tab.vertical_split(PaneId::Terminal(3)); + tab.move_focus_down(); + tab.vertical_split(PaneId::Terminal(4)); + tab.move_focus_left(); + tab.move_focus_up(); + tab.resize_up(); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 1 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 1 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 1 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 13, + "pane 1 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 2 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 14, + "pane 2 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 2 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 16, + "pane 2 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 3 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 3 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 3 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .rows, + 15, + "pane 3 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 4 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .y, + 16, + "pane 4 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 4 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .rows, + 14, + "pane 4 row count" + ); +} + +#[test] +pub fn resize_up_with_panes_above_aligned_left_and_right_with_current_pane() { + // ┌───┬───┬───┐ ┌───┬───┬───┐ + // │ │ │ │ │ │ │ │ + // │ │ │ │ │ ├───┤ │ + // ├───┼───┼───┤ ==resize=up==> ├───┤███├───┤ + // │ │███│ │ │ │███│ │ + // │ │███│ │ │ │███│ │ + // └───┴───┴───┘ └───┴───┴───┘ + // █ == focused pane + let position_and_size = PositionAndSize { + cols: 121, + rows: 30, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.horizontal_split(PaneId::Terminal(2)); + tab.vertical_split(PaneId::Terminal(3)); + tab.vertical_split(PaneId::Terminal(4)); + tab.move_focus_up(); + tab.vertical_split(PaneId::Terminal(5)); + tab.vertical_split(PaneId::Terminal(6)); + tab.move_focus_left(); + tab.resize_up(); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 1 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 1 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 1 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 15, + "pane 1 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 2 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 16, + "pane 2 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 2 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 14, + "pane 2 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 3 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .y, + 14, + "pane 3 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .cols, + 30, + "pane 3 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .rows, + 16, + "pane 3 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .x, + 92, + "pane 4 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .y, + 16, + "pane 4 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .cols, + 29, + "pane 4 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .rows, + 14, + "pane 4 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 5 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 5 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .cols, + 30, + "pane 5 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .rows, + 13, + "pane 5 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .x, + 92, + "pane 6 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 6 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .cols, + 29, + "pane 6 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .rows, + 15, + "pane 6 row count" + ); +} + +#[test] +pub fn resize_up_with_panes_below_aligned_left_and_right_with_current_pane() { + // ┌───┬───┬───┐ ┌───┬───┬───┐ + // │ │███│ │ │ │███│ │ + // │ │███│ │ │ ├───┤ │ + // ├───┼───┼───┤ ==resize=up==> ├───┤ ├───┤ + // │ │ │ │ │ │ │ │ + // │ │ │ │ │ │ │ │ + // └───┴───┴───┘ └───┴───┴───┘ + // █ == focused pane + let position_and_size = PositionAndSize { + cols: 121, + rows: 30, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.horizontal_split(PaneId::Terminal(2)); + tab.vertical_split(PaneId::Terminal(3)); + tab.vertical_split(PaneId::Terminal(4)); + tab.move_focus_up(); + tab.vertical_split(PaneId::Terminal(5)); + tab.vertical_split(PaneId::Terminal(6)); + tab.move_focus_left(); + tab.move_focus_up(); + tab.resize_up(); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 1 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 1 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 1 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 15, + "pane 1 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 2 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 16, + "pane 2 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 2 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 14, + "pane 2 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 3 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .y, + 14, + "pane 3 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .cols, + 30, + "pane 3 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .rows, + 16, + "pane 3 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .x, + 92, + "pane 4 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .y, + 16, + "pane 4 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .cols, + 29, + "pane 4 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .rows, + 14, + "pane 4 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 5 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 5 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .cols, + 30, + "pane 5 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .rows, + 13, + "pane 5 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .x, + 92, + "pane 6 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 6 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .cols, + 29, + "pane 6 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .rows, + 15, + "pane 6 row count" + ); +} + +#[test] +pub fn resize_up_with_panes_above_aligned_left_and_right_with_panes_to_the_left_and_right() { + // ┌─┬───────┬─┐ ┌─┬───────┬─┐ + // │ │ │ │ │ │ │ │ + // │ │ │ │ │ ├─┬───┬─┤ │ + // ├─┼─┬───┬─┼─┤ ==resize=up==> ├─┤ │███│ ├─┤ + // │ │ │███│ │ │ │ │ │███│ │ │ + // │ │ │███│ │ │ │ │ │███│ │ │ + // └─┴─┴───┴─┴─┘ └─┴─┴───┴─┴─┘ + // █ == focused pane + let position_and_size = PositionAndSize { + cols: 121, + rows: 30, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.horizontal_split(PaneId::Terminal(2)); + tab.move_focus_up(); + tab.vertical_split(PaneId::Terminal(3)); + tab.vertical_split(PaneId::Terminal(4)); + tab.move_focus_down(); + tab.vertical_split(PaneId::Terminal(5)); + tab.vertical_split(PaneId::Terminal(6)); + tab.move_focus_left(); + tab.vertical_split(PaneId::Terminal(7)); + tab.vertical_split(PaneId::Terminal(8)); + tab.move_focus_left(); + tab.resize_up(); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 1 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 1 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 1 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 15, + "pane 1 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 2 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 16, + "pane 2 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 2 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 14, + "pane 2 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 3 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 3 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .cols, + 30, + "pane 3 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .rows, + 13, + "pane 3 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .x, + 92, + "pane 4 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 4 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .cols, + 29, + "pane 4 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .rows, + 15, + "pane 4 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 5 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .y, + 14, + "pane 5 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .cols, + 15, + "pane 5 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .rows, + 16, + "pane 5 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .x, + 92, + "pane 6 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .y, + 16, + "pane 6 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .cols, + 29, + "pane 6 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .rows, + 14, + "pane 6 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .x, + 77, + "pane 7 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .y, + 14, + "pane 7 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .cols, + 7, + "pane 7 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .rows, + 16, + "pane 7 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(8)) + .unwrap() + .position_and_size() + .x, + 85, + "pane 8 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(8)) + .unwrap() + .position_and_size() + .y, + 14, + "pane 8 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(8)) + .unwrap() + .position_and_size() + .cols, + 6, + "pane 8 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(8)) + .unwrap() + .position_and_size() + .rows, + 16, + "pane 8 row count" + ); +} + +#[test] +pub fn resize_up_with_panes_below_aligned_left_and_right_with_to_the_left_and_right() { + // ┌─┬─┬───┬─┬─┐ ┌─┬─┬───┬─┬─┐ + // │ │ │███│ │ │ │ │ │███│ │ │ + // │ │ │███│ │ │ │ ├─┴───┴─┤ │ + // ├─┼─┴───┴─┼─┤ ==resize=up==> ├─┤ ├─┤ + // │ │ │ │ │ │ │ │ + // │ │ │ │ │ │ │ │ + // └─┴───────┴─┘ └─┴───────┴─┘ + // █ == focused pane + let position_and_size = PositionAndSize { + cols: 121, + rows: 30, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.horizontal_split(PaneId::Terminal(2)); + tab.move_focus_up(); + tab.vertical_split(PaneId::Terminal(3)); + tab.vertical_split(PaneId::Terminal(4)); + tab.move_focus_down(); + tab.vertical_split(PaneId::Terminal(5)); + tab.vertical_split(PaneId::Terminal(6)); + tab.move_focus_up(); + tab.move_focus_left(); + tab.vertical_split(PaneId::Terminal(7)); + tab.vertical_split(PaneId::Terminal(8)); + tab.move_focus_left(); + tab.resize_up(); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 1 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 1 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 1 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 15, + "pane 1 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .x, + 0, + "pane 2 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .y, + 16, + "pane 2 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .cols, + 60, + "pane 2 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 14, + "pane 2 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 3 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 3 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .cols, + 15, + "pane 3 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(3)) + .unwrap() + .position_and_size() + .rows, + 13, + "pane 3 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .x, + 92, + "pane 4 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 4 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .cols, + 29, + "pane 4 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(4)) + .unwrap() + .position_and_size() + .rows, + 15, + "pane 4 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .x, + 61, + "pane 5 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .y, + 14, + "pane 5 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .cols, + 30, + "pane 5 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(5)) + .unwrap() + .position_and_size() + .rows, + 16, + "pane 5 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .x, + 92, + "pane 6 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .y, + 16, + "pane 6 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .cols, + 29, + "pane 6 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(6)) + .unwrap() + .position_and_size() + .rows, + 14, + "pane 6 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .x, + 77, + "pane 7 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 7 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .cols, + 7, + "pane 7 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(7)) + .unwrap() + .position_and_size() + .rows, + 13, + "pane 7 row count" + ); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(8)) + .unwrap() + .position_and_size() + .x, + 85, + "pane 8 x position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(8)) + .unwrap() + .position_and_size() + .y, + 0, + "pane 8 y position" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(8)) + .unwrap() + .position_and_size() + .cols, + 6, + "pane 8 column count" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(8)) + .unwrap() + .position_and_size() + .rows, + 13, + "pane 8 row count" + ); +} + +#[test] +pub fn cannot_resize_up_when_pane_above_is_at_minimum_height() { + // ┌───────────┐ ┌───────────┐ + // │ │ │ │ + // ├───────────┤ ==resize=up==> ├───────────┤ + // │███████████│ │███████████│ + // └───────────┘ └───────────┘ + // █ == focused pane + + let position_and_size = PositionAndSize { + cols: 121, + rows: 7, + x: 0, + y: 0, + ..Default::default() + }; + let mut tab = create_new_tab(position_and_size); + tab.horizontal_split(PaneId::Terminal(2)); + tab.resize_down(); + + assert_eq!( + tab.panes + .get(&PaneId::Terminal(1)) + .unwrap() + .position_and_size() + .rows, + 3, + "pane 1 height stayed the same" + ); + assert_eq!( + tab.panes + .get(&PaneId::Terminal(2)) + .unwrap() + .position_and_size() + .rows, + 3, + "pane 2 height stayed the same" + ); +} diff --git a/zellij-server/src/wasm_vm.rs b/zellij-server/src/wasm_vm.rs index fe8f5be7..eed7e935 100644 --- a/zellij-server/src/wasm_vm.rs +++ b/zellij-server/src/wasm_vm.rs @@ -8,8 +8,6 @@ use std::sync::{mpsc::Sender, Arc, Mutex}; use std::thread; use std::time::{Duration, Instant}; -use zellij_utils::{serde, zellij_tile}; - use serde::{de::DeserializeOwned, Serialize}; use wasmer::{ imports, ChainableNamedResolver, Function, ImportObject, Instance, Module, Store, Value, @@ -26,6 +24,7 @@ use crate::{ thread_bus::{Bus, ThreadSenders}, }; use zellij_utils::errors::{ContextType, PluginContext}; +use zellij_utils::{input::command::TerminalAction, serde, zellij_tile}; #[derive(Clone, Debug)] pub(crate) enum PluginInstruction { @@ -241,7 +240,9 @@ fn host_open_file(plugin_env: &PluginEnv) { let path: PathBuf = wasi_read_object(&plugin_env.wasi_env); plugin_env .senders - .send_to_pty(PtyInstruction::SpawnTerminal(Some(path))) + .send_to_pty(PtyInstruction::SpawnTerminal(Some( + TerminalAction::OpenFile(path), + ))) .unwrap(); } diff --git a/zellij-tile-utils/Cargo.toml b/zellij-tile-utils/Cargo.toml index 0d78aaae..9c8865a9 100644 --- a/zellij-tile-utils/Cargo.toml +++ b/zellij-tile-utils/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zellij-tile-utils" -version = "0.14.0" +version = "0.15.0" authors = ["denis "] edition = "2018" description = "A utility library for Zellij plugins" diff --git a/zellij-tile/Cargo.toml b/zellij-tile/Cargo.toml index f4c73367..3ae62576 100644 --- a/zellij-tile/Cargo.toml +++ b/zellij-tile/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zellij-tile" -version = "0.14.0" +version = "0.15.0" authors = ["Brooks J Rady "] edition = "2018" description = "A small client-side library for writing Zellij plugins" diff --git a/zellij-utils/Cargo.toml b/zellij-utils/Cargo.toml index bf7c60af..9520753b 100644 --- a/zellij-utils/Cargo.toml +++ b/zellij-utils/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zellij-utils" -version = "0.14.0" +version = "0.15.0" authors = ["Kunal Mohan "] edition = "2018" description = "A utility library for Zellij client and server" @@ -27,10 +27,11 @@ structopt = "0.3" strum = "0.20.0" termion = "1.5.0" vte = "0.10.1" -zellij-tile = { path = "../zellij-tile/", version = "0.14.0" } +zellij-tile = { path = "../zellij-tile/", version = "0.15.0" } log = "0.4.14" log4rs = "1.0.0" + [dependencies.async-std] version = "1.3.0" features = ["unstable"] @@ -38,5 +39,3 @@ features = ["unstable"] [dev-dependencies] tempfile = "3.2.0" -[features] -test = [] diff --git a/zellij-utils/src/errors.rs b/zellij-utils/src/errors.rs index b37a3a07..b32dd337 100644 --- a/zellij-utils/src/errors.rs +++ b/zellij-utils/src/errors.rs @@ -190,6 +190,7 @@ pub enum ScreenContext { SwitchFocus, FocusNextPane, FocusPreviousPane, + FocusPaneAt, MoveFocusLeft, MoveFocusLeftOrPreviousTab, MoveFocusDown, @@ -198,7 +199,9 @@ pub enum ScreenContext { MoveFocusRightOrNextTab, Exit, ScrollUp, + ScrollUpAt, ScrollDown, + ScrollDownAt, PageScrollUp, PageScrollDown, ClearScroll, @@ -219,6 +222,10 @@ pub enum ScreenContext { UpdateTabName, TerminalResize, ChangeMode, + LeftClick, + MouseRelease, + MouseHold, + Copy, } /// Stack call representations corresponding to the different types of [`PtyInstruction`]s. diff --git a/zellij-utils/src/input/actions.rs b/zellij-utils/src/input/actions.rs index 4e0ce0cb..ecd515a4 100644 --- a/zellij-utils/src/input/actions.rs +++ b/zellij-utils/src/input/actions.rs @@ -1,10 +1,13 @@ //! Definition of the actions that can be bound to keys. +use super::command::RunCommandAction; use serde::{Deserialize, Serialize}; use zellij_tile::data::InputMode; +use crate::position::Position; + /// The four directions (left, right, up, down). -#[derive(Clone, Debug, PartialEq, Deserialize, Serialize)] +#[derive(Eq, Clone, Debug, PartialEq, Deserialize, Serialize)] pub enum Direction { Left, Right, @@ -17,7 +20,7 @@ pub enum Direction { // They might need to be adjusted in the default config // as well `../../../assets/config/default.yaml` /// Actions that can be bound to keys. -#[derive(Clone, Debug, PartialEq, Deserialize, Serialize)] +#[derive(Eq, Clone, Debug, PartialEq, Deserialize, Serialize)] pub enum Action { /// Quit Zellij. Quit, @@ -38,8 +41,12 @@ pub enum Action { MoveFocusOrTab(Direction), /// Scroll up in focus pane. ScrollUp, + /// Scroll up at point + ScrollUpAt(Position), /// Scroll down in focus pane. ScrollDown, + /// Scroll down at point + ScrollDownAt(Position), /// Scroll up one page in focus pane. PageScrollUp, /// Scroll down one page in focus pane. @@ -65,6 +72,12 @@ pub enum Action { CloseTab, GoToTab(u32), TabNameInput(Vec), + /// Run speficied command in new pane. + Run(RunCommandAction), /// Detach session and exit Detach, + LeftClick(Position), + MouseRelease(Position), + MouseHold(Position), + Copy, } diff --git a/zellij-utils/src/input/command.rs b/zellij-utils/src/input/command.rs new file mode 100644 index 00000000..b66c7500 --- /dev/null +++ b/zellij-utils/src/input/command.rs @@ -0,0 +1,37 @@ +//! Trigger a command +use super::actions::Direction; +use serde::{Deserialize, Serialize}; +use std::path::PathBuf; + +#[derive(Debug, Clone)] +pub enum TerminalAction { + OpenFile(PathBuf), + RunCommand(RunCommand), +} + +#[derive(Clone, Debug, Deserialize, Default, Serialize, PartialEq, Eq)] +pub struct RunCommand { + pub command: PathBuf, + #[serde(default)] + pub args: Vec, +} + +/// Intermediate representation +#[derive(Clone, Debug, Deserialize, Default, Serialize, PartialEq, Eq)] +pub struct RunCommandAction { + #[serde(rename = "cmd")] + pub command: PathBuf, + #[serde(default)] + pub args: Vec, + #[serde(default)] + pub direction: Option, +} + +impl From for RunCommand { + fn from(action: RunCommandAction) -> Self { + RunCommand { + command: action.command, + args: action.args, + } + } +} diff --git a/zellij-utils/src/input/mod.rs b/zellij-utils/src/input/mod.rs index 9250cad5..11c5a843 100644 --- a/zellij-utils/src/input/mod.rs +++ b/zellij-utils/src/input/mod.rs @@ -1,9 +1,11 @@ //! The way terminal input is handled. pub mod actions; +pub mod command; pub mod config; pub mod keybinds; pub mod layout; +pub mod mouse; pub mod options; pub mod theme; diff --git a/zellij-utils/src/input/mouse.rs b/zellij-utils/src/input/mouse.rs new file mode 100644 index 00000000..d5dc4330 --- /dev/null +++ b/zellij-utils/src/input/mouse.rs @@ -0,0 +1,69 @@ +use serde::{Deserialize, Serialize}; + +use crate::position::Position; + +/// A mouse related event +#[derive(Debug, Copy, Clone, PartialEq, Eq, Deserialize, Serialize)] +pub enum MouseEvent { + /// A mouse button was pressed. + /// + /// The coordinates are zero-based. + Press(MouseButton, Position), + /// A mouse button was released. + /// + /// The coordinates are zero-based. + Release(Position), + /// A mouse button is held over the given coordinates. + /// + /// The coordinates are zero-based. + Hold(Position), +} + +impl From for MouseEvent { + fn from(event: termion::event::MouseEvent) -> Self { + match event { + termion::event::MouseEvent::Press(button, x, y) => Self::Press( + MouseButton::from(button), + Position::new((y.saturating_sub(1)) as i32, x.saturating_sub(1)), + ), + termion::event::MouseEvent::Release(x, y) => Self::Release(Position::new( + (y.saturating_sub(1)) as i32, + x.saturating_sub(1), + )), + termion::event::MouseEvent::Hold(x, y) => Self::Hold(Position::new( + (y.saturating_sub(1)) as i32, + x.saturating_sub(1), + )), + } + } +} + +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)] +pub enum MouseButton { + /// The left mouse button. + Left, + /// The right mouse button. + Right, + /// The middle mouse button. + Middle, + /// Mouse wheel is going up. + /// + /// This event is typically only used with Mouse::Press. + WheelUp, + /// Mouse wheel is going down. + /// + /// This event is typically only used with Mouse::Press. + WheelDown, +} + +impl From for MouseButton { + fn from(button: termion::event::MouseButton) -> Self { + match button { + termion::event::MouseButton::Left => Self::Left, + termion::event::MouseButton::Right => Self::Right, + termion::event::MouseButton::Middle => Self::Middle, + termion::event::MouseButton::WheelUp => Self::WheelUp, + termion::event::MouseButton::WheelDown => Self::WheelDown, + } + } +} diff --git a/zellij-utils/src/input/options.rs b/zellij-utils/src/input/options.rs index 4ebb5b86..2ba2be86 100644 --- a/zellij-utils/src/input/options.rs +++ b/zellij-utils/src/input/options.rs @@ -20,10 +20,16 @@ pub struct Options { /// Set the default mode #[structopt(long)] pub default_mode: Option, + /// Set the default shell + #[structopt(long, parse(from_os_str))] + pub default_shell: Option, /// Set the layout_dir, defaults to /// subdirectory of config dir #[structopt(long, parse(from_os_str))] pub layout_dir: Option, + #[structopt(long)] + #[serde(default)] + pub disable_mouse_mode: bool, } impl Options { @@ -50,6 +56,11 @@ impl Options { other => other, }; + let default_shell = match other.default_shell { + None => self.default_shell.clone(), + other => other, + }; + let layout_dir = match other.layout_dir { None => self.layout_dir.clone(), other => other, @@ -60,11 +71,19 @@ impl Options { other => other, }; + let disable_mouse_mode = if other.disable_mouse_mode { + true + } else { + self.disable_mouse_mode + }; + Options { simplified_ui, theme, default_mode, + default_shell, layout_dir, + disable_mouse_mode, } } diff --git a/zellij-utils/src/ipc.rs b/zellij-utils/src/ipc.rs index 3fd2b243..cf952bdc 100644 --- a/zellij-utils/src/ipc.rs +++ b/zellij-utils/src/ipc.rs @@ -35,7 +35,7 @@ pub enum ClientType { Writer, } -#[derive(Serialize, Deserialize, Debug, Clone, Copy)] +#[derive(Default, Serialize, Deserialize, Debug, Clone, Copy)] pub struct ClientAttributes { pub position_and_size: PositionAndSize, pub palette: Palette, diff --git a/zellij-utils/src/lib.rs b/zellij-utils/src/lib.rs index 6285047f..0aa95830 100644 --- a/zellij-utils/src/lib.rs +++ b/zellij-utils/src/lib.rs @@ -6,6 +6,7 @@ pub mod input; pub mod ipc; pub mod logging; pub mod pane_size; +pub mod position; pub mod setup; pub mod shared; diff --git a/zellij-utils/src/pane_size.rs b/zellij-utils/src/pane_size.rs index 8a939381..da165d4e 100644 --- a/zellij-utils/src/pane_size.rs +++ b/zellij-utils/src/pane_size.rs @@ -1,6 +1,8 @@ use nix::pty::Winsize; use serde::{Deserialize, Serialize}; +use crate::position::Position; + /// Contains the position and size of a [`Pane`], or more generally of any terminal, measured /// in character rows and columns. #[derive(Clone, Copy, Debug, Default, Serialize, Deserialize)] @@ -25,3 +27,11 @@ impl From for PositionAndSize { } } } + +impl PositionAndSize { + pub fn contains(&self, point: &Position) -> bool { + let col = point.column.0 as usize; + let row = point.line.0 as usize; + self.x <= col && col < self.x + self.cols && self.y <= row && row < self.y + self.rows + } +} diff --git a/zellij-utils/src/position.rs b/zellij-utils/src/position.rs new file mode 100644 index 00000000..71547424 --- /dev/null +++ b/zellij-utils/src/position.rs @@ -0,0 +1,30 @@ +use serde::{Deserialize, Serialize}; + +use crate::pane_size::PositionAndSize; + +#[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Deserialize, Serialize)] +pub struct Position { + pub line: Line, + pub column: Column, +} + +impl Position { + pub fn new(line: i32, column: u16) -> Self { + Self { + line: Line(line as isize), + column: Column(column as usize), + } + } + + pub fn relative_to(&self, position_and_size: &PositionAndSize) -> Self { + Self { + line: Line(self.line.0 - position_and_size.y as isize), + column: Column(self.column.0.saturating_sub(position_and_size.x)), + } + } +} + +#[derive(Debug, Copy, Clone, PartialEq, Eq, Deserialize, Serialize, PartialOrd)] +pub struct Line(pub isize); +#[derive(Debug, Copy, Clone, PartialEq, Eq, Deserialize, Serialize, PartialOrd)] +pub struct Column(pub usize); diff --git a/zellij-utils/src/setup.rs b/zellij-utils/src/setup.rs index f9613c0f..61c330cd 100644 --- a/zellij-utils/src/setup.rs +++ b/zellij-utils/src/setup.rs @@ -2,17 +2,17 @@ use crate::cli::CliArgs; use crate::consts::{ FEATURES, SYSTEM_DEFAULT_CONFIG_DIR, SYSTEM_DEFAULT_DATA_DIR_PREFIX, VERSION, ZELLIJ_PROJ_DIR, }; +use crate::input::options::Options; use directories_next::BaseDirs; use serde::{Deserialize, Serialize}; -use std::io::Write; -use std::{path::Path, path::PathBuf}; +use std::{io::Write, path::Path, path::PathBuf}; use structopt::StructOpt; const CONFIG_LOCATION: &str = ".config/zellij"; const CONFIG_NAME: &str = "config.yaml"; static ARROW_SEPARATOR: &str = ""; -#[cfg(not(any(feature = "test", test)))] +#[cfg(not(test))] /// Goes through a predefined list and checks for an already /// existing config directory, returns the first match pub fn find_default_config_dir() -> Option { @@ -23,7 +23,7 @@ pub fn find_default_config_dir() -> Option { .flatten() } -#[cfg(any(feature = "test", test))] +#[cfg(test)] pub fn find_default_config_dir() -> Option { None } @@ -117,13 +117,14 @@ pub struct Setup { #[structopt(long)] pub check: bool, + /// Generates completion for the specified shell #[structopt(long)] pub generate_completion: Option, } impl Setup { /// Entrypoint from main - pub fn from_cli(&self, opts: &CliArgs) -> std::io::Result<()> { + pub fn from_cli(&self, opts: &CliArgs, config_options: &Options) -> std::io::Result<()> { if self.clean { return Ok(()); } @@ -134,7 +135,7 @@ impl Setup { } if self.check { - Setup::check_defaults_config(opts)?; + Setup::check_defaults_config(opts, config_options)?; std::process::exit(0); } @@ -146,11 +147,14 @@ impl Setup { Ok(()) } - pub fn check_defaults_config(opts: &CliArgs) -> std::io::Result<()> { + pub fn check_defaults_config(opts: &CliArgs, config_options: &Options) -> std::io::Result<()> { let data_dir = opts.data_dir.clone().unwrap_or_else(get_default_data_dir); let config_dir = opts.config_dir.clone().or_else(find_default_config_dir); let plugin_dir = data_dir.join("plugins"); - let layout_dir = data_dir.join("layouts"); + let layout_dir = config_options + .layout_dir + .clone() + .or_else(|| get_layout_dir(config_dir.clone())); let system_data_dir = PathBuf::from(SYSTEM_DEFAULT_DATA_DIR_PREFIX).join("share/zellij"); let config_file = opts .config @@ -192,7 +196,11 @@ impl Setup { } message.push_str(&format!("[DATA DIR]: {:?}\n", data_dir)); message.push_str(&format!("[PLUGIN DIR]: {:?}\n", plugin_dir)); - message.push_str(&format!("[LAYOUT DIR]: {:?}\n", layout_dir)); + if let Some(layout_dir) = layout_dir { + message.push_str(&format!("[LAYOUT DIR]: {:?}\n", layout_dir)); + } else { + message.push_str("[CONFIG FILE]: Not Found\n"); + } message.push_str(&format!("[SYSTEM DATA DIR]: {:?}\n", system_data_dir)); message.push_str(&format!("[ARROW SEPARATOR]: {}\n", ARROW_SEPARATOR));