From d039aa6275b4e24d5526404bc227ac0ed9e77125 Mon Sep 17 00:00:00 2001 From: Li Junchen Date: Sun, 29 Sep 2024 17:26:44 +0800 Subject: [PATCH] internal: track interfaces of moonfmt cli --- crates/moon/tests/test_cases/mod.rs | 72 +++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/crates/moon/tests/test_cases/mod.rs b/crates/moon/tests/test_cases/mod.rs index aabae4b07..269a18a01 100644 --- a/crates/moon/tests/test_cases/mod.rs +++ b/crates/moon/tests/test_cases/mod.rs @@ -6771,3 +6771,75 @@ fn test_bad_version() { "#]], ); } + +#[test] +fn test_moonfmt() { + let dir = TestDir::new("general.in"); + let oneline = r#"pub fn hello() -> String { "Hello, world!" }"#; + + std::fs::write(dir.join("src/lib/hello.mbt"), oneline).unwrap(); + + let out = std::process::Command::new("moonfmt") + .args(["./src/lib/hello.mbt"]) + .current_dir(&dir) + .output() + .unwrap(); + let out = replace_crlf_to_lf(&String::from_utf8(out.stdout).unwrap()); + check( + &out, + expect![[r#" + pub fn hello() -> String { + "Hello, world!" + } + "#]], + ); + + check( + &read(&dir.join("src/lib/hello.mbt")), + expect![[r#"pub fn hello() -> String { "Hello, world!" }"#]], + ); + + let out = std::process::Command::new("moonfmt") + .args(["-i", "./src/lib/hello.mbt"]) + .current_dir(&dir) + .output() + .unwrap(); + let _ = String::from_utf8(out.stdout).unwrap(); + check( + &read(&dir.join("src/lib/hello.mbt")), + expect![[r#" + pub fn hello() -> String { + "Hello, world!" + } + "#]], + ); + + std::fs::write(dir.join("src/lib/hello.mbt"), oneline).unwrap(); + check( + &read(&dir.join("src/lib/hello.mbt")), + expect![[r#"pub fn hello() -> String { "Hello, world!" }"#]], + ); + + let out = std::process::Command::new("moonfmt") + .args(["-i", "./src/lib/hello.mbt", "-o", "./src/lib/hello.txt"]) + .current_dir(&dir) + .output() + .unwrap(); + let _ = String::from_utf8(out.stdout).unwrap(); + check( + &read(&dir.join("src/lib/hello.mbt")), + expect![[r#" + pub fn hello() -> String { + "Hello, world!" + } + "#]], + ); + check( + &read(&dir.join("src/lib/hello.txt")), + expect![[r#" + pub fn hello() -> String { + "Hello, world!" + } +"#]], + ); +}