package org.dueattendant149.bookreader import org.dueattendant149.bookreader.paginatedreader.TtsChunk import org.dueattendant149.bookreader.shared.ReaderTtsReplacementPreferences import org.dueattendant149.bookreader.shared.ReaderTtsReplacementRule import org.junit.Assert.assertEquals import org.junit.Test class TtsReplacementChunkTest { @Test fun `tts chunk spoken text falls back to original text`() { val chunk = TtsChunk( text = "Dr. Smith", sourceCfi = "epubcfi(/6/2)", startOffsetInSource = 12 ) assertEquals("Dr. Smith", chunk.spokenText) } @Test fun `chunk preparation keeps original text and writes spoken text`() { val preferences = ReaderTtsReplacementPreferences( globalRules = listOf( ReaderTtsReplacementRule( id = "dr", from = "Dr.", to = "Doctor", wholeWord = false ) ) ) val chunk = TtsChunk( text = "Dr. Smith", sourceCfi = "epubcfi(/6/2)", startOffsetInSource = 12 ) val prepared = listOf(chunk).withTtsReplacements(preferences, "book").single() assertEquals("Dr. Smith", prepared.text) assertEquals("Doctor Smith", prepared.spokenText) assertEquals("epubcfi(/6/2)", prepared.sourceCfi) assertEquals(12, prepared.startOffsetInSource) } }