use super::*;
#[tokio::test]
async fn poll_daemon_keeps_the_log_watermark_when_logs_tail_fails() {
let dir = tempfile::tempdir().expect("tempdir");
let socket = dir.path().join("absent.sock");
let mut client = SearchClient::new(&socket);
let mut state = SearchTuiState::new(socket.display().to_string());
poll_daemon(&mut state, &mut client).await;
assert!(!state.daemon_status.is_online(), "no daemon answers");
assert!(
state.log_first_poll,
"a failed tail must not end the first poll"
);
assert_eq!(state.log_watermark, None);
assert!(state.log.is_empty());
state.log_first_poll = false;
state.log_watermark = Some("line 2".into());
state.log.push_raw("line 1");
let before: Vec<String> = state.log.iter().cloned().collect();
poll_daemon(&mut state, &mut client).await;
assert!(!state.log_first_poll);
assert_eq!(state.log_watermark.as_deref(), Some("line 2"));
assert_eq!(state.log.iter().cloned().collect::<Vec<_>>(), before);
}