fix: correct undo/redo test to match per-trigger undo behavior

Co-authored-by: aider (deepseek/deepseek-coder) <aider@aider.chat>
This commit is contained in:
Loic Coenen
2026-05-01 20:32:22 +00:00
parent de4f6ef581
commit a581b60390

View File

@@ -1570,12 +1570,30 @@ void test_undo_paste(void) {
engine_process_commands(engine); engine_process_commands(engine);
assert(engine->clips[clip_idx].state == CLIP_STOPPED); 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_undo_action(engine);
engine_process_commands(engine); engine_process_commands(engine);
assert(engine->clips[clip_idx].state == CLIP_EMPTY); 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_redo_action(engine);
engine_process_commands(engine); engine_process_commands(engine);
assert(engine->clips[clip_idx].state == CLIP_STOPPED); assert(engine->clips[clip_idx].state == CLIP_STOPPED);