Fix expired ingest task stuck state

This commit is contained in:
2026-07-19 22:17:35 +08:00
parent 12b7e31783
commit 4327b94fd0
4 changed files with 26 additions and 4 deletions
@@ -8,6 +8,7 @@ import java.lang.reflect.Method;
import java.util.concurrent.atomic.AtomicBoolean;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@@ -159,4 +160,19 @@ class ProgressMessageMappingTest {
com.music.common.Result<?> result = controller.start(new com.music.dto.IngestRequest());
assertTrue(result.getCode() == 0);
}
@Test
void ingestControllerTreatsMissingStoppedTaskAsTerminal() throws Exception {
ConfigService cfgService = mock(ConfigService.class);
ProgressStore store = new ProgressStore();
com.music.controller.IngestController controller = new com.music.controller.IngestController(
mock(IngestService.class), store, cfgService);
com.music.common.Result<com.music.dto.IngestStatusResponse> result =
controller.statusById("expired-task");
assertFalse(result.getData().isRunning());
assertTrue(result.getData().isCompleted());
assertEquals("未找到任务或已过期", result.getData().getMessage());
}
}