use mozart_core::console_format; #[test] fn plain_text_no_tags() { let result = console_format!("hello world"); assert_eq!(result, "hello world"); } #[test] fn plain_text_with_format_args() { let x = 42; let result = console_format!("value is {}", x); assert_eq!(result, "value is 42"); } #[test] fn single_info_tag() { // The output should contain the text (colored), verify it contains the raw text let result = console_format!("done"); assert!(result.contains("done"), "expected 'done' in: {result}"); } #[test] fn single_tag_with_format_arg() { let name = "foo"; let result = console_format!("Removing {name}"); assert!( result.contains("Removing foo"), "expected 'Removing foo' in: {result}" ); } #[test] fn multiple_tags() { let label = "pkg"; let version = "1.0"; let result = console_format!("{} : {}", label, version); assert!(result.contains("pkg"), "expected 'pkg' in: {result}"); assert!(result.contains("1.0"), "expected '1.0' in: {result}"); assert!(result.contains(" : "), "expected ' : ' in: {result}"); } #[test] fn comment_tag() { let result = console_format!("note"); assert!(result.contains("note")); } #[test] fn error_tag() { let result = console_format!("fail"); assert!(result.contains("fail")); } #[test] fn question_tag() { let result = console_format!("ask"); assert!(result.contains("ask")); } #[test] fn highlight_tag() { let result = console_format!("important"); assert!(result.contains("important")); } #[test] fn warning_tag() { let result = console_format!("caution"); assert!(result.contains("caution")); } #[test] fn escaped_braces() { let result = console_format!("{{literal}}"); assert!( result.contains("{literal}"), "expected '{{literal}}' in: {result}" ); } #[test] fn tag_with_plain_before_after() { let result = console_format!("before middle after"); assert!(result.contains("before ")); assert!(result.contains("middle")); assert!(result.contains(" after")); } #[test] fn unknown_tag_is_literal() { let result = console_format!("text"); assert_eq!(result, "text"); }