aboutsummaryrefslogtreecommitdiffstats
path: root/src/tests/integration/compatibility.rs
diff options
context:
space:
mode:
authorYutaka Kamei <kamei@yykamei.me>2021-04-30 23:35:12 +0900
committerYutaka Kamei <kamei@yykamei.me>2021-05-02 06:18:40 +0900
commit168deabea7825f1b2bf81ec79de9f4bfaab8413e (patch)
treedd413499bb1a77d1af25705217bfab86ce2f18b4 /src/tests/integration/compatibility.rs
parentDon't commit to master like an idiot... :( (diff)
downloadsl0ppij-168deabea7825f1b2bf81ec79de9f4bfaab8413e.tar.gz
sl0ppij-168deabea7825f1b2bf81ec79de9f4bfaab8413e.tar.xz
sl0ppij-168deabea7825f1b2bf81ec79de9f4bfaab8413e.zip
Load config before start()
Previously, a config file was loaded within `start()`, and if the config file is invalid, Zellij was supposed to show a user what's wrong with it. However, since `start()` starts setting up its terminal with an alternative screen buffer, neither standard output nor standard error could display such an error. This change intends to address this issue by making Zellij load a config file before `start()`. In addition, the patch also includes some refactorings: * Redefine `from_cli_config` with `TryFrom`, which was introduced in Rust 1.34 * Remove conditional declaration `cfg(not(test))` because `start()` now receive a `Config` as the third argument * Introduce [`tempfile`](https://crates.io/crates/tempfile) in order to run tests with actual files * Typo?: "Deserialisation" -> "Deserialization"
Diffstat (limited to 'src/tests/integration/compatibility.rs')
-rw-r--r--src/tests/integration/compatibility.rs121
1 files changed, 101 insertions, 20 deletions
diff --git a/src/tests/integration/compatibility.rs b/src/tests/integration/compatibility.rs
index 59c5c54d..ef93135e 100644
--- a/src/tests/integration/compatibility.rs
+++ b/src/tests/integration/compatibility.rs
@@ -7,6 +7,7 @@ use crate::tests::possible_tty_inputs::Bytes;
use crate::tests::utils::{get_next_to_last_snapshot, get_output_frame_snapshots};
use crate::{start, CliArgs};
+use crate::common::input::config::Config;
use crate::tests::utils::commands::QUIT;
/*
@@ -41,7 +42,11 @@ pub fn run_bandwhich_from_fish_shell() {
let fixture_name = "fish_and_bandwhich";
let mut fake_input_output = get_fake_os_input(&fake_win_size, fixture_name);
fake_input_output.add_terminal_input(&[&QUIT]);
- start(Box::new(fake_input_output.clone()), CliArgs::default());
+ start(
+ Box::new(fake_input_output.clone()),
+ CliArgs::default(),
+ Config::default(),
+ );
let output_frames = fake_input_output
.stdout_writer
.output_frames
@@ -65,7 +70,11 @@ pub fn fish_tab_completion_options() {
let fixture_name = "fish_tab_completion_options";
let mut fake_input_output = get_fake_os_input(&fake_win_size, fixture_name);
fake_input_output.add_terminal_input(&[&QUIT]);
- start(Box::new(fake_input_output.clone()), CliArgs::default());
+ start(
+ Box::new(fake_input_output.clone()),
+ CliArgs::default(),
+ Config::default(),
+ );
let output_frames = fake_input_output
.stdout_writer
.output_frames
@@ -94,7 +103,11 @@ pub fn fish_select_tab_completion_options() {
let fixture_name = "fish_select_tab_completion_options";
let mut fake_input_output = get_fake_os_input(&fake_win_size, fixture_name);
fake_input_output.add_terminal_input(&[&QUIT]);
- start(Box::new(fake_input_output.clone()), CliArgs::default());
+ start(
+ Box::new(fake_input_output.clone()),
+ CliArgs::default(),
+ Config::default(),
+ );
let output_frames = fake_input_output
.stdout_writer
.output_frames
@@ -127,7 +140,11 @@ pub fn vim_scroll_region_down() {
let fixture_name = "vim_scroll_region_down";
let mut fake_input_output = get_fake_os_input(&fake_win_size, fixture_name);
fake_input_output.add_terminal_input(&[&QUIT]); // quit (ctrl-q)
- start(Box::new(fake_input_output.clone()), CliArgs::default());
+ start(
+ Box::new(fake_input_output.clone()),
+ CliArgs::default(),
+ Config::default(),
+ );
let output_frames = fake_input_output
.stdout_writer
.output_frames
@@ -157,7 +174,11 @@ pub fn vim_ctrl_d() {
let fixture_name = "vim_ctrl_d";
let mut fake_input_output = get_fake_os_input(&fake_win_size, fixture_name);
fake_input_output.add_terminal_input(&[&QUIT]);
- start(Box::new(fake_input_output.clone()), CliArgs::default());
+ start(
+ Box::new(fake_input_output.clone()),
+ CliArgs::default(),
+ Config::default(),
+ );
let output_frames = fake_input_output
.stdout_writer
.output_frames
@@ -186,7 +207,11 @@ pub fn vim_ctrl_u() {
let fixture_name = "vim_ctrl_u";
let mut fake_input_output = get_fake_os_input(&fake_win_size, fixture_name);
fake_input_output.add_terminal_input(&[&QUIT]);
- start(Box::new(fake_input_output.clone()), CliArgs::default());
+ start(
+ Box::new(fake_input_output.clone()),
+ CliArgs::default(),
+ Config::default(),
+ );
let output_frames = fake_input_output
.stdout_writer
.output_frames
@@ -210,7 +235,11 @@ pub fn htop() {
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());
+ start(
+ Box::new(fake_input_output.clone()),
+ CliArgs::default(),
+ Config::default(),
+ );
let output_frames = fake_input_output
.stdout_writer
.output_frames
@@ -234,7 +263,11 @@ pub fn htop_scrolling() {
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());
+ start(
+ Box::new(fake_input_output.clone()),
+ CliArgs::default(),
+ Config::default(),
+ );
let output_frames = fake_input_output
.stdout_writer
.output_frames
@@ -258,7 +291,11 @@ pub fn htop_right_scrolling() {
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());
+ start(
+ Box::new(fake_input_output.clone()),
+ CliArgs::default(),
+ Config::default(),
+ );
let output_frames = fake_input_output
.stdout_writer
.output_frames
@@ -290,7 +327,11 @@ pub fn vim_overwrite() {
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());
+ start(
+ Box::new(fake_input_output.clone()),
+ CliArgs::default(),
+ Config::default(),
+ );
let output_frames = fake_input_output
.stdout_writer
.output_frames
@@ -317,7 +358,11 @@ pub fn clear_scroll_region() {
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());
+ start(
+ Box::new(fake_input_output.clone()),
+ CliArgs::default(),
+ Config::default(),
+ );
let output_frames = fake_input_output
.stdout_writer
.output_frames
@@ -341,7 +386,11 @@ pub fn display_tab_characters_properly() {
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());
+ start(
+ Box::new(fake_input_output.clone()),
+ CliArgs::default(),
+ Config::default(),
+ );
let output_frames = fake_input_output
.stdout_writer
.output_frames
@@ -365,7 +414,11 @@ pub fn neovim_insert_mode() {
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());
+ start(
+ Box::new(fake_input_output.clone()),
+ CliArgs::default(),
+ Config::default(),
+ );
let output_frames = fake_input_output
.stdout_writer
.output_frames
@@ -391,7 +444,11 @@ pub fn bash_cursor_linewrap() {
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());
+ start(
+ Box::new(fake_input_output.clone()),
+ CliArgs::default(),
+ Config::default(),
+ );
let output_frames = fake_input_output
.stdout_writer
.output_frames
@@ -417,7 +474,11 @@ pub fn fish_paste_multiline() {
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());
+ start(
+ Box::new(fake_input_output.clone()),
+ CliArgs::default(),
+ Config::default(),
+ );
let output_frames = fake_input_output
.stdout_writer
.output_frames
@@ -441,7 +502,11 @@ pub fn git_log() {
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());
+ start(
+ Box::new(fake_input_output.clone()),
+ CliArgs::default(),
+ Config::default(),
+ );
let output_frames = fake_input_output
.stdout_writer
.output_frames
@@ -467,7 +532,11 @@ pub fn git_diff_scrollup() {
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());
+ start(
+ Box::new(fake_input_output.clone()),
+ CliArgs::default(),
+ Config::default(),
+ );
let output_frames = fake_input_output
.stdout_writer
.output_frames
@@ -491,7 +560,11 @@ pub fn emacs_longbuf() {
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());
+ start(
+ Box::new(fake_input_output.clone()),
+ CliArgs::default(),
+ Config::default(),
+ );
let output_frames = fake_input_output
.stdout_writer
.output_frames
@@ -515,7 +588,11 @@ pub fn top_and_quit() {
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(&[&QUIT]);
- start(Box::new(fake_input_output.clone()), CliArgs::default());
+ start(
+ Box::new(fake_input_output.clone()),
+ CliArgs::default(),
+ Config::default(),
+ );
let output_frames = fake_input_output
.stdout_writer
.output_frames
@@ -545,7 +622,11 @@ pub fn exa_plus_omf_theme() {
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());
+ start(
+ Box::new(fake_input_output.clone()),
+ CliArgs::default(),
+ Config::default(),
+ );
let output_frames = fake_input_output
.stdout_writer
.output_frames