use assert_cmd::cargo::cargo_bin_cmd;
use pretty_assertions::assert_eq;
#[test]
fn test_stdout_has_html() {
let stdout = cargo_bin_cmd!()
.args(["-O", "-", "-"]) .write_stdin(include_bytes!("samples/sample.gmi"))
.unwrap()
.stdout;
let expected = include_bytes!("samples/sample.br.html").trim_ascii_end();
assert_eq!(
String::from_utf8(stdout).unwrap(),
String::from_utf8(expected.to_vec()).unwrap()
);
}
#[test]
fn test_stdout_has_html_with_paragraph_breaks() {
let stdout = cargo_bin_cmd!()
.args(["-e", "p", "-O", "-", "-"]) .write_stdin(include_bytes!("samples/sample.gmi"))
.unwrap()
.stdout;
let expected = include_bytes!("samples/sample.p.html").trim_ascii_end();
assert_eq!(
String::from_utf8(stdout).unwrap(),
String::from_utf8(expected.to_vec()).unwrap()
);
}
#[test]
fn test_stdout_has_pre_blocks() {
let stdout = cargo_bin_cmd!()
.args(["-O", "-", "-"]) .write_stdin(include_bytes!("samples/pre_blocks.gmi"))
.unwrap()
.stdout;
let expected = include_bytes!("samples/pre_blocks.none.html").trim_ascii_end();
assert_eq!(
String::from_utf8(stdout).unwrap(),
String::from_utf8(expected.to_vec()).unwrap()
);
}
#[test]
fn test_stdout_has_html_with_closed_pre_blocks() {
let stdout = cargo_bin_cmd!()
.args(["-O", "-", "-"]) .write_stdin(include_bytes!("samples/no_close_pre.gmi"))
.unwrap()
.stdout;
let expected = include_bytes!("samples/no_close_pre.html").trim_ascii_end();
assert_eq!(
String::from_utf8(stdout).unwrap(),
String::from_utf8(expected.to_vec()).unwrap()
);
}
#[test]
fn test_stdout_has_pre_blocks_with_forgejo_copy_button() {
let stdout = cargo_bin_cmd!()
.args(["-c", "forgejo", "-O", "-", "-"]) .write_stdin(include_bytes!("samples/pre_blocks.gmi"))
.unwrap()
.stdout;
let expected = include_bytes!("samples/pre_blocks.forgejo.html").trim_ascii_end();
assert_eq!(
String::from_utf8(stdout).unwrap(),
String::from_utf8(expected.to_vec()).unwrap()
);
}
#[test]
fn test_omits_preamble_on_request() {
let stdout = cargo_bin_cmd!()
.args(["-nO", "-", "-"]) .write_stdin(include_bytes!("samples/no_preamble.gmi"))
.unwrap()
.stdout;
let expected = include_bytes!("samples/no_preamble.html").trim_ascii_end();
assert_eq!(
String::from_utf8(stdout).unwrap(),
String::from_utf8(expected.to_vec()).unwrap()
);
}
#[test]
fn test_prints_license() {
let stdout = cargo_bin_cmd!().arg("--license").unwrap().stdout;
let expected = include_str!("../LICENSE");
assert_eq!(expected, String::from_utf8(stdout).unwrap());
}