From ff6025a26312dd2e098fb2d6e3920eecffdad217 Mon Sep 17 00:00:00 2001 From: Justin Wernick Date: Tue, 21 Feb 2023 11:46:09 +0200 Subject: Prompt in a loop --- tests/cli.rs | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) (limited to 'tests') diff --git a/tests/cli.rs b/tests/cli.rs index 18d815e..a4d368f 100644 --- a/tests/cli.rs +++ b/tests/cli.rs @@ -1,7 +1,25 @@ -use assert_cmd::Command; +use assert_cmd::cargo::cargo_bin; +use rexpect::{session::PtySession, spawn}; +use std::error::Error; + +fn spawn_interactive_process() -> Result> { + let path = cargo_bin(env!("CARGO_PKG_NAME")); + let process = spawn(&path.display().to_string(), Some(3000))?; + Ok(process) +} + +#[test] +fn shows_a_prompt() -> Result<(), Box> { + let mut p = spawn_interactive_process()?; + p.exp_string("> ")?; + Ok(()) +} #[test] -fn shows_a_prompt() { - let mut cmd = Command::cargo_bin("shackle").unwrap(); - cmd.assert().success().stdout(">"); +fn does_nothing_after_receiving_whitespace_input() -> Result<(), Box> { + let mut p = spawn_interactive_process()?; + p.exp_string("> ")?; + p.send_line("")?; + p.exp_string("> ")?; + Ok(()) } -- cgit v1.2.3