Flash sequence UX polish + dirty tracking

This commit is contained in:
Tretzi
2026-04-15 10:26:46 -05:00
parent 50272cd6a6
commit 180fd0124e
5 changed files with 45 additions and 13 deletions

View File

@@ -6,9 +6,9 @@ import org.junit.Test
class DurationSliderRangeTest {
@Test
fun timeline_duration_clamps_to_one_minute_and_eight_hours() {
fun timeline_duration_clamps_to_one_minute_and_sixty_minutes() {
assertEquals(60, TimelineEditorState.default(30).durationSec)
assertEquals(8 * 60 * 60, TimelineEditorState.default(9 * 60 * 60).durationSec)
assertEquals(60 * 60, TimelineEditorState.default(9 * 60 * 60).durationSec)
}
@Test

View File

@@ -27,7 +27,7 @@ class SessionValidatorTest {
@Test
fun out_of_range_values_are_blocked() {
assertEquals("Duration must be 1 minute to 8 hours.", SessionValidator.validate(valid.copy(durationSec = 59)))
assertEquals("Duration must be 1 minute to 60 minutes.", SessionValidator.validate(valid.copy(durationSec = 59)))
assertEquals("Flash interval must be 0.05 to 2.00 seconds.", SessionValidator.validate(valid.copy(flashIntervalMs = 49)))
assertEquals("Carrier frequency must be between 200 and 1200 Hz.", SessionValidator.validate(valid.copy(carrierFrequencyHz = 0f)))
assertEquals("Carrier frequency must be between 200 and 1200 Hz.", SessionValidator.validate(valid.copy(carrierFrequencyHz = 20001f)))