use nu_test_support::nu; #[test] fn test_ansi_shows_error_on_escape() { let actual = nu!(r"ansi --escape \"); assert!(actual.err.contains("no need for escape characters")) } #[test] fn test_ansi_list_outputs_table() { let actual = nu!("ansi --list | length"); assert_eq!(actual.out, "425"); } #[test] fn test_ansi_codes() { let actual = nu!("$'(ansi clear_scrollback_buffer)'"); assert_eq!(actual.out, "\x1b[3J"); // Currently, bg is placed before fg in the results // It's okay if something internally changes this, but // if so, the test case will need to be updated to: // assert_eq!(actual.out, "\x1b[31;48;2;0;255;0mHello\x1b[0m"); let actual = nu!("$'(ansi { fg: red, bg: \"#00ff00\" })Hello(ansi reset)'"); assert_eq!(actual.out, "\x1b[48;2;0;255;0;31mHello\x1b[0m"); }