summaryrefslogtreecommitdiff
path: root/tests/integration_tests.rs
diff options
context:
space:
mode:
authorlyn <819880950@qq.com>2019-03-20 21:05:45 +0100
committerlyn <819880950@qq.com>2019-03-20 21:05:45 +0100
commitf43cb124f6163216218fe397d78b00e2d3bda84c (patch)
tree06a6c5c4c7af2839c9f15ac5e1ddfde4e28e817b /tests/integration_tests.rs
parent11875aed6e6940231b711470c9a8d731a7ba6aa1 (diff)
add tests
Diffstat (limited to 'tests/integration_tests.rs')
-rw-r--r--tests/integration_tests.rs61
1 files changed, 61 insertions, 0 deletions
diff --git a/tests/integration_tests.rs b/tests/integration_tests.rs
new file mode 100644
index 0000000..bd5d92e
--- /dev/null
+++ b/tests/integration_tests.rs
@@ -0,0 +1,61 @@
+use std::process::Command;
+use assert_cmd::prelude::*;
+
+#[test]
+fn runs_without_arguments() {
+ let mut cmd = Command::cargo_bin("rustlings").unwrap();
+ cmd.assert().success();
+}
+
+#[test]
+fn fails_when_in_wrong_dir() {
+ Command::cargo_bin("rustlings").unwrap()
+ .current_dir("tests/")
+ .assert()
+ .failure();
+}
+
+#[test]
+fn verify_all_success() {
+ Command::cargo_bin("rustlings").unwrap()
+ .arg("v")
+ .current_dir("tests/fixture/")
+ .assert()
+ .success();
+}
+
+#[test]
+fn run_single_compile_success() {
+ Command::cargo_bin("rustlings").unwrap()
+ .args(&["r", "compSuccess.rs"])
+ .current_dir("tests/fixture/")
+ .assert()
+ .success();
+}
+
+#[test]
+fn run_single_test_success() {
+ Command::cargo_bin("rustlings").unwrap()
+ .args(&["r", "testSuccess.rs"])
+ .current_dir("tests/fixture/")
+ .assert()
+ .success();
+}
+
+#[test]
+fn run_single_test_no_filename() {
+ Command::cargo_bin("rustlings").unwrap()
+ .arg("r")
+ .current_dir("tests/fixture/")
+ .assert()
+ .failure();
+}
+
+#[test]
+fn run_single_test_no_exercise() {
+ Command::cargo_bin("rustlings").unwrap()
+ .args(&["r", "compNoExercise.rs"])
+ .current_dir("tests/fixture/")
+ .assert()
+ .failure();
+}