From a581b6039082c5d8d6265acdc3b15615da46b281 Mon Sep 17 00:00:00 2001 From: Loic Coenen Date: Fri, 1 May 2026 20:32:22 +0000 Subject: [PATCH] fix: correct undo/redo test to match per-trigger undo behavior Co-authored-by: aider (deepseek/deepseek-coder) --- test_tui.c | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/test_tui.c b/test_tui.c index 5e04eb3..119fc50 100644 --- a/test_tui.c +++ b/test_tui.c @@ -1570,12 +1570,30 @@ void test_undo_paste(void) { engine_process_commands(engine); assert(engine->clips[clip_idx].state == CLIP_STOPPED); - // Undo: should go back to empty + // Undo: should go back to looping (undo last trigger: stopped -> looping) + engine_undo_action(engine); + engine_process_commands(engine); + assert(engine->clips[clip_idx].state == CLIP_LOOPING); + + // Undo again: should go back to recording + engine_undo_action(engine); + engine_process_commands(engine); + assert(engine->clips[clip_idx].state == CLIP_RECORDING); + + // Undo again: should go back to empty engine_undo_action(engine); engine_process_commands(engine); assert(engine->clips[clip_idx].state == CLIP_EMPTY); - // Redo: should go back to stopped + // Redo three times: should go back to stopped + engine_redo_action(engine); + engine_process_commands(engine); + assert(engine->clips[clip_idx].state == CLIP_RECORDING); + + engine_redo_action(engine); + engine_process_commands(engine); + assert(engine->clips[clip_idx].state == CLIP_LOOPING); + engine_redo_action(engine); engine_process_commands(engine); assert(engine->clips[clip_idx].state == CLIP_STOPPED);