use super::*;
fn line_text(line: &Line<'static>) -> String {
line.spans.iter().map(|s| s.content.as_ref()).collect()
}
#[test]
fn model_cycle_brackets_the_active_option_only_on_focus() {
let arrow = Span::raw(" ");
let blurred = line_text(&model_cycle_line(arrow.clone(), "sonnet", false));
let focused = line_text(&model_cycle_line(arrow, "sonnet", true));
assert!(
blurred.contains("sonnet"),
"active preset renders when blurred: {blurred}"
);
assert!(!blurred.contains('['), "blurred stays bare: {blurred}");
assert!(
focused.contains("[sonnet]"),
"focused brackets the active preset: {focused}"
);
assert_eq!(
focused.chars().count(),
blurred.chars().count() + 2,
"the bracket pair is the only width change on focus"
);
}
#[test]
fn model_cycle_appends_a_custom_id_without_brackets() {
let arrow = Span::raw(" ");
let blurred = line_text(&model_cycle_line(arrow.clone(), "claude-fable-5", false));
let focused = line_text(&model_cycle_line(arrow, "claude-fable-5", true));
assert!(
blurred.contains("claude-fable-5"),
"custom id renders: {blurred}"
);
assert!(
!blurred.contains('['),
"no brackets on a custom id when blurred: {blurred}"
);
assert!(
!focused.contains("[claude-fable-5]"),
"a custom id is appended, not bracketed: {focused}"
);
}