#![cfg(feature = "semantic")]
use std::fs;
use std::process::Command;
use tempfile::tempdir;
fn tldr_cmd() -> Command {
Command::new(assert_cmd::cargo::cargo_bin!("tldr"))
}
#[test]
fn test_semantic_langs_flag_does_not_panic() {
let tmp = tempdir().expect("create tempdir");
fs::write(tmp.path().join("a.rs"), "pub fn x() {}").expect("write fixture");
let output = tldr_cmd()
.arg("semantic")
.arg("any query")
.arg(tmp.path())
.arg("--langs")
.arg("rs")
.arg("--format")
.arg("json")
.arg("--quiet")
.output()
.expect("tldr semantic did not execute");
let stderr = String::from_utf8_lossy(&output.stderr);
assert!(
!stderr.contains("panicked at"),
"tldr semantic --langs rust panicked; stderr was:\n{stderr}"
);
assert!(
!stderr.contains("TypeId"),
"tldr semantic --langs rust hit a clap TypeId mismatch; stderr was:\n{stderr}"
);
}
#[test]
fn test_semantic_global_lang_flag_does_not_panic() {
let tmp = tempdir().expect("create tempdir");
fs::write(tmp.path().join("a.rs"), "pub fn x() {}").expect("write fixture");
let output = tldr_cmd()
.arg("semantic")
.arg("any query")
.arg(tmp.path())
.arg("--lang")
.arg("rust")
.arg("--format")
.arg("json")
.arg("--quiet")
.output()
.expect("tldr semantic did not execute");
let stderr = String::from_utf8_lossy(&output.stderr);
assert!(
!stderr.contains("panicked at"),
"tldr semantic --lang rust panicked; stderr was:\n{stderr}"
);
assert!(
!stderr.contains("TypeId"),
"tldr semantic --lang rust hit a clap TypeId mismatch; stderr was:\n{stderr}"
);
}
#[test]
fn test_embed_langs_flag_does_not_panic() {
let tmp = tempdir().expect("create tempdir");
fs::write(tmp.path().join("a.rs"), "pub fn x() {}").expect("write fixture");
let output = tldr_cmd()
.arg("embed")
.arg(tmp.path())
.arg("--langs")
.arg("rs")
.arg("--format")
.arg("json")
.arg("--quiet")
.arg("--no-cache")
.output()
.expect("tldr embed did not execute");
let stderr = String::from_utf8_lossy(&output.stderr);
assert!(
!stderr.contains("panicked at"),
"tldr embed --langs rust panicked; stderr was:\n{stderr}"
);
assert!(
!stderr.contains("TypeId"),
"tldr embed --langs rust hit a clap TypeId mismatch; stderr was:\n{stderr}"
);
}