Metadata search timeout fix + test

This commit is contained in:
Brage Skjønborg 2026-01-02 17:59:16 +01:00
parent 8096a979ea
commit 6d615abb0d
2 changed files with 49 additions and 0 deletions

View File

@ -42,6 +42,7 @@ class MediaCreateMetadataSearchTaskListener: EventListener() {
scheduledExpiries.filter { it -> it.key in cancelKeys }.keys.forEach { key ->
scheduledExpiries.remove(key)?.cancel(true)
}
return null
}
val useEvent = event as? MediaParsedInfoEvent ?: return null

View File

@ -1,5 +1,6 @@
package no.iktdev.mediaprocessing.coordinator.listeners.events
import io.mockk.clearMocks
import io.mockk.slot
import io.mockk.verify
import no.iktdev.eventi.models.Event
@ -195,6 +196,53 @@ class MediaCreateMetadataSearchTaskListenerTest : TestBase() {
verify(exactly = 2) { TaskStore.persist(any<MetadataSearchTask>()) }
}
@DisplayName(
"""
Hvis MetadataSearchResultEvent mottas
Når onEvent kalles
:
Timeout slettes
"""
)
@Test
fun timeoutRemoval1() {
// Hvis
val listener = MediaCreateMetadataSearchTaskListener()
val started = defaultStartEvent()
val parsed = mediaParsedEvent(
"Baking Bread",
"Baking Bread - S01E01 - Flour",
MediaType.Serie
).derivedOf(started)
val history = listOf(started, parsed)
// Når
val result = listener.onEvent(parsed, history)
// Så
assertThat(result).isInstanceOf(MetadataSearchTaskCreatedEvent::class.java)
val slot = slot<MetadataSearchTask>()
verify(exactly = 1) { TaskStore.persist(capture(slot)) }
val taskId = slot.captured.taskId
assertThat(listener.scheduledExpiries).containsKey(taskId)
// Completed Event here
clearMocks(TaskStore, answers = false)
val resultEvent = MetadataSearchResultEvent(
status = TaskStatus.Completed,
results = emptyList()
).producedFrom(slot.captured)
val newHistory = history + listOf(resultEvent)
listener.onEvent(resultEvent, newHistory)
verify(exactly = 0) { TaskStore.persist(any()) }
assertThat(listener.scheduledExpiries).doesNotContainKey(taskId)
}