diff --git a/src/reader.rs b/src/reader.rs index e008f8f83c7f..c20143c23565 100644 --- a/src/reader.rs +++ b/src/reader.rs @@ -948,6 +948,8 @@ pub fn reader_showing_suggestion(parser: &Parser) -> bool { } if let Some(data) = current_data() { let reader = Reader { parser, data }; + // HACK: try to work around CI issues + std::thread::sleep(Duration::from_millis(100)); !reader.autosuggestion.is_empty() } else { false diff --git a/tests/pexpects/commandline.py b/tests/pexpects/commandline.py index 0b9a40be517f..571cec3097ab 100644 --- a/tests/pexpects/commandline.py +++ b/tests/pexpects/commandline.py @@ -12,6 +12,28 @@ ) expect_prompt() +# Test --showing-suggestion before we dirty the history +sendline("echo hello") +expect_prompt() +sendline("function debug; commandline --showing-suggestion; set -g cmd_status $status; end") +expect_prompt() +sendline("bind ctrl-p debug"); +expect_prompt() +send("echo hell") +sleep(0.1) # wait for suggestion to appear under CI +send(control("p")) +sendline("") +expect_prompt("hell") +sendline("echo cmd_status: $cmd_status") +expect_prompt("cmd_status: 0") +send("echo goodb") +sleep(0.1) # wait for suggestion to appear under CI +send(control("p")) +sendline("") +expect_prompt("goodb") +sendline("echo cmd_status: $cmd_status") +expect_prompt("cmd_status: 1") + sendline("bind '~' 'handle_tilde'") expect_prompt()