aboutsummaryrefslogtreecommitdiff
path: root/tests/tutorial
diff options
context:
space:
mode:
authorMelody Horn / boringcactus <melody@boringcactus.com>2021-06-13 21:05:56 -0600
committerMelody Horn / boringcactus <melody@boringcactus.com>2021-06-13 21:05:56 -0600
commit19b851c71ee8c7499046936771446e6ae6e60c16 (patch)
tree122233034491937ff3c5aaf0fb5fa344744d4397 /tests/tutorial
parentd30b5db6f3eabd2a550ef05e6203d3c7ef19e9c7 (diff)
downloadtosin-19b851c71ee8c7499046936771446e6ae6e60c16.tar.gz
tosin-19b851c71ee8c7499046936771446e6ae6e60c16.zip
finish passing the tutorial 1 tests
Diffstat (limited to 'tests/tutorial')
-rw-r--r--tests/tutorial/mod.rs35
1 files changed, 19 insertions, 16 deletions
diff --git a/tests/tutorial/mod.rs b/tests/tutorial/mod.rs
index 54f9c9f..71cba3d 100644
--- a/tests/tutorial/mod.rs
+++ b/tests/tutorial/mod.rs
@@ -87,15 +87,8 @@ pub fn step1(dest: &str) {
}
server.kill().unwrap();
- // could `cargo run start-app polls` or `tosin-admin start-app polls` so
- // flip a coin i guess
- if random() {
- let mut cmd = Command::new(CARGO);
- cmd.arg("run");
- cmd
- } else {
- Command::new(TOSIN_ADMIN)
- }
+ // tosin-admin start-app polls
+ Command::new(TOSIN_ADMIN)
.args(&["start-app", "polls"])
.status().unwrap().check();
assert!(fs::metadata("src/polls/mod.rs").is_ok());
@@ -147,22 +140,32 @@ tosin::main!(urls(), settings());
"#).unwrap();
// poke that new route
+ let port = thread_rng().gen_range(8081u16..9000u16);
let mut server = Command::new(CARGO)
- .args(&["run", "run-server", "8069"])
+ .args(&["run", "run-server", &format!("{}", port)])
+ .stdout(Stdio::piped())
.spawn()
.unwrap();
- let server_poke = get("http://127.0.0.1:8069/polls/");
+ let mut server_output = String::new();
+ let server_stdout = server.stdout.take().unwrap();
+ let mut server_stdout = BufReader::new(server_stdout);
+ server_stdout.read_line(&mut server_output).unwrap();
+ assert!(server_output.contains(&format!("http://127.0.0.1:{}", port)));
+ sleep(Duration::from_secs_f32(0.5));
+ let server_poke = get(&format!("http://127.0.0.1:{}/polls/", port));
assert_eq!(server_poke.0, hyper::StatusCode::OK);
assert_eq!(server_poke.1, "Hello, world. You're at the polls index.");
server.kill().unwrap();
// vibe check
+ let test_tutorial1 = Path::new("src");
let example_tutorial1 = Path::new(PROJECT_DIR).join("examples/tutorial01");
- for file in &["src/main.rs", "src/polls/mod.rs", "src/polls/urls.rs", "src/polls/views.rs"] {
- let this_file = fs::read_to_string(file).unwrap();
- let example_tutorial1_path = example_tutorial1.join(file);
- let example_tutorial1_file = fs::read_to_string(example_tutorial1_path).unwrap();
- assert_eq!(this_file.trim(), example_tutorial1_file.trim());
+ for file in &["main.rs", "polls/mod.rs", "polls/urls.rs", "polls/views.rs"] {
+ let test_path = test_tutorial1.join(file);
+ let test_file = fs::read_to_string(test_path).unwrap();
+ let example_path = example_tutorial1.join(file);
+ let example_file = fs::read_to_string(example_path).unwrap();
+ assert_eq!(test_file.trim(), example_file.trim());
}
}