zellij/src/tests/integration/move_focus_left.rs
categorille c74e2ef273
feat(input): new keybindings and persistent mode as default (#181)
* added some comments in the input module

* InputHandler now has InputState instead of separate InputMode and permanent bool

* keybinds are now associated with a Vec<Action> instead of a single Action

* removing "persistent" modes alltogether to reimplement the feature, help bar broken

* locked command mode by default, fixes #161, help bar still broken

* status bar fixed, still a few improvements/bugs to go

* better shortcut help bar contents

* fixed last bits and i think we are good

* modified tests according to new controls, not working

* Revert "modified tests according to new controls, not working"

This reverts commit f2d9421ff0169feb83dbd9b246e59b9244cafc16.

* basic.rs tests now pass, not the rest

* close_pane.rs tests pass, but very slowly?

* compatibility.rs tests pass, very slowly as well

* {layout, {move_focus_*}}.rs all working mildly slowly

* {resize_*}.rs should all work but very slowly and funky, see PR comments

* {tabs,toggle_fullscreen}.rs pass. Test performance issue yet to be fixed

* tests now work, with a hack :| ready for merge

* rustfmt + deleted references to InputState and mode persistency
2021-02-12 14:55:22 +01:00

77 lines
2.3 KiB
Rust

use ::insta::assert_snapshot;
use crate::panes::PositionAndSize;
use crate::tests::fakes::FakeInputOutput;
use crate::tests::utils::{get_next_to_last_snapshot, get_output_frame_snapshots};
use crate::{start, CliArgs};
use crate::tests::utils::commands::{
COMMAND_TOGGLE, MOVE_FOCUS_LEFT_IN_PANE_MODE, MOVE_FOCUS_RIGHT_IN_PANE_MODE, PANE_MODE, QUIT,
SPLIT_DOWN_IN_PANE_MODE, SPLIT_RIGHT_IN_PANE_MODE,
};
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 {
columns: 121,
rows: 20,
x: 0,
y: 0,
};
let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[
&COMMAND_TOGGLE,
&PANE_MODE,
&SPLIT_RIGHT_IN_PANE_MODE,
&MOVE_FOCUS_LEFT_IN_PANE_MODE,
&QUIT,
]);
start(Box::new(fake_input_output.clone()), CliArgs::default());
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_largest_overlap() {
let fake_win_size = PositionAndSize {
columns: 121,
rows: 20,
x: 0,
y: 0,
};
let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[
&COMMAND_TOGGLE,
&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());
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);
}