fix(run): makes run never prompt

`watch` and `verify` do prompt the user to actively move to the
next exercise. This change fixes `run` to never prompt. Previously
it was inconsistent between "test" and "compile" exercises.

BREAKING CHANGE: we again change the behavior of the `run` command
This commit is contained in:
Roberto Vidal
2019-11-12 11:35:40 +01:00
parent bc56788fe6
commit 4b26546589
8 changed files with 96 additions and 20 deletions

View File

@@ -0,0 +1,5 @@
// fake_exercise
fn main() {
}

View File

@@ -0,0 +1,11 @@
[[exercises]]
name = "pending_exercise"
path = "pending_exercise.rs"
mode = "compile"
hint = """"""
[[exercises]]
name = "pending_test_exercise"
path = "pending_test_exercise.rs"
mode = "test"
hint = """"""

View File

@@ -0,0 +1,4 @@
// I AM NOT DONE
#[test]
fn it_works() {}

View File

@@ -1,5 +1,6 @@
use assert_cmd::prelude::*;
use glob::glob;
use predicates::boolean::PredicateBooleanExt;
use std::fs::File;
use std::io::Read;
use std::process::Command;
@@ -136,3 +137,25 @@ fn all_exercises_require_confirmation() {
));
}
}
#[test]
fn run_compile_exercise_does_not_prompt() {
Command::cargo_bin("rustlings")
.unwrap()
.args(&["r", "pending_exercise"])
.current_dir("tests/fixture/state")
.assert()
.code(0)
.stdout(predicates::str::contains("I AM NOT DONE").not());
}
#[test]
fn run_test_exercise_does_not_prompt() {
Command::cargo_bin("rustlings")
.unwrap()
.args(&["r", "pending_test_exercise"])
.current_dir("tests/fixture/state")
.assert()
.code(0)
.stdout(predicates::str::contains("I AM NOT DONE").not());
}