#![allow(missing_docs)]
use predicates::prelude::*;
#[test]
fn test_regression_077_string_new() {
let script = r#"
let s = String::new();
println!("Success");
"#;
assert_cmd::cargo::cargo_bin_cmd!("ruchy")
.arg("-e")
.arg(script)
.timeout(std::time::Duration::from_secs(5))
.assert()
.success()
.stdout(predicate::str::contains("Success"));
}
#[test]
fn test_regression_077_string_from() {
let script = r#"
let s = String::from("test");
println!("Success");
"#;
assert_cmd::cargo::cargo_bin_cmd!("ruchy")
.arg("-e")
.arg(script)
.timeout(std::time::Duration::from_secs(5))
.assert()
.success()
.stdout(predicate::str::contains("Success"));
}
#[test]
fn test_regression_077_string_in_struct() {
let script = r#"
struct Logger {
prefix: String,
}
impl Logger {
fun new() -> Logger {
Logger {
prefix: String::new(),
}
}
}
let logger = Logger::new();
println!("Success");
"#;
assert_cmd::cargo::cargo_bin_cmd!("ruchy")
.arg("-e")
.arg(script)
.timeout(std::time::Duration::from_secs(5))
.assert()
.success()
.stdout(predicate::str::contains("Success"));
}
#[test]
fn test_regression_077_multiple_strings() {
let script = r#"
struct Schema {
table_name: String,
column_name: String,
}
impl Schema {
fun new() -> Schema {
Schema {
table_name: String::from("users"),
column_name: String::from("id"),
}
}
}
let schema = Schema::new();
println!("Success");
"#;
assert_cmd::cargo::cargo_bin_cmd!("ruchy")
.arg("-e")
.arg(script)
.timeout(std::time::Duration::from_secs(5))
.assert()
.success()
.stdout(predicate::str::contains("Success"));
}
#[test]
#[ignore = "RED phase: Vec::new() runtime support - REGRESSION-077"]
fn test_regression_077_vec_new_still_works() {
let script = r#"
let mut vec = Vec::new();
let mut i = 0;
while i < 10 {
vec.push(1.0);
i += 1;
}
println!("Success: {} elements", vec.len());
"#;
assert_cmd::cargo::cargo_bin_cmd!("ruchy")
.arg("-e")
.arg(script)
.timeout(std::time::Duration::from_secs(5))
.assert()
.success()
.stdout(predicate::str::contains("10"));
}