use super::super::common::*;
#[test]
fn test_channel_mode_with_channel_name() {
let mut tester = PtyTester::new();
let mut child = tester
.spawn_command_tui(tv_local_config_and_cable_with_args(&["dirs"]));
tester.assert_tui_frame_contains(
"╭────────────────────────── dirs ──────────────────────────╮",
);
tester.assert_tui_frame_contains("CHANNEL dirs");
tester.send(&ctrl('c'));
tester.assert_exit_ok(&mut child, DEFAULT_DELAY);
}
#[test]
fn test_channel_mode_with_channel_and_path() {
let mut tester = PtyTester::new();
let mut child =
tester.spawn_command_tui(tv_local_config_and_cable_with_args(&[
"dirs", "./cable/",
]));
tester.assert_tui_frame_contains(
"╭────────────────────────── dirs ──────────────────────────╮",
);
tester.assert_tui_frame_contains("CHANNEL dirs");
tester.assert_tui_frame_contains("unix/");
tester.send(&ctrl('c'));
tester.assert_exit_ok(&mut child, DEFAULT_DELAY);
}
#[test]
fn test_channel_mode_with_channel_and_overrides() {
let mut tester = PtyTester::new();
let mut cmd = tv_local_config_and_cable_with_args(&["files"]);
cmd.args(["--input-header", "UNIQUE16CHARID"]);
let mut child = tester.spawn_command_tui(cmd);
tester.assert_tui_frame_contains("UNIQUE16CHARID");
tester.send(&ctrl('c'));
tester.assert_exit_ok(&mut child, DEFAULT_DELAY);
}
#[test]
fn test_adhoc_mode_with_source_command() {
let mut tester = PtyTester::new();
let cmd = tv_local_config_and_cable_with_args(&["--source-command", "ls"]);
let mut child = tester.spawn_command_tui(cmd);
tester.assert_tui_frame_contains("CHANNEL Custom");
tester.send(&ctrl('c'));
tester.assert_exit_ok(&mut child, DEFAULT_DELAY);
}
#[test]
fn test_adhoc_mode_missing_source_command_errors() {
let mut tester = PtyTester::new();
let cmd = tv_local_config_and_cable_with_args(&["--source-display", "{}"]);
tester.spawn_command(cmd);
tester.assert_raw_output_contains(
"source-display requires a source command",
);
}
#[test]
fn test_smart_path_detection_switches_to_adhoc_mode() {
let mut tester = PtyTester::new();
let mut cmd = tv_local_config_and_cable_with_args(&["./cable/"]);
cmd.args(["--input", "files.toml"]);
let mut child = tester.spawn_command_tui(cmd);
tester.assert_tui_frame_contains("CHANNEL files");
tester.assert_tui_frame_contains("unix/files.toml");
tester.send(&ctrl('c'));
tester.assert_exit_ok(&mut child, DEFAULT_DELAY);
}
#[test]
fn test_no_arguments_uses_default_channel() {
let mut tester = PtyTester::new();
let mut child =
tester.spawn_command_tui(tv_local_config_and_cable_with_args(&[]));
tester.assert_tui_frame_contains("CHANNEL files");
tester.send(&ctrl('c'));
tester.assert_exit_ok(&mut child, DEFAULT_DELAY);
}