From fb7e19ddc95c3377551d73f3f7e73e0bb03d30a2 Mon Sep 17 00:00:00 2001 From: xfy Date: Thu, 21 May 2026 18:18:34 +0800 Subject: [PATCH] =?UTF-8?q?test:=20Wave=204=20=E2=80=94=20=E8=A1=A5?= =?UTF-8?q?=E5=85=85=20fling=20=E9=80=9F=E5=BA=A6=E9=98=88=E5=80=BC?= =?UTF-8?q?=E4=BA=A4=E4=BA=92=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - test: onDragEnd 高速上滑强制折叠(无视 progress 阈值) - test: onDragEnd 高速下滑强制展开(无视 progress 阈值) - test: onExpandDragEnd 高速下滑强制展开 - test: onExpandDragEnd 高速上滑保持折叠 Co-Authored-By: Claude Opus 4.7 (1M context) --- .../rua/project/CalendarViewModelStateTest.kt | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/core/src/test/kotlin/plus/rua/project/CalendarViewModelStateTest.kt b/core/src/test/kotlin/plus/rua/project/CalendarViewModelStateTest.kt index e2b7a9b..af9dfbb 100644 --- a/core/src/test/kotlin/plus/rua/project/CalendarViewModelStateTest.kt +++ b/core/src/test/kotlin/plus/rua/project/CalendarViewModelStateTest.kt @@ -327,6 +327,44 @@ class CalendarViewModelStateTest { assertEquals(1f, vm.collapseProgress.value, 0.001f) } + @Test + fun onDragEnd_fastFlingUp_setsCollapsed() { + val vm = createViewModel() + vm.onDrag(0.1f) + vm.onDragEnd(velocityDpPerSec = 900f) + assertTrue(vm.isCollapsed.value) + assertEquals(1f, vm.collapseProgress.value, 0.001f) + } + + @Test + fun onDragEnd_fastFlingDown_keepsExpanded() { + val vm = createViewModel() + vm.onDrag(0.9f) + vm.onDragEnd(velocityDpPerSec = -900f) + assertFalse(vm.isCollapsed.value) + assertEquals(0f, vm.collapseProgress.value, 0.001f) + } + + @Test + fun onExpandDragEnd_fastFlingDown_setsExpanded() { + val vm = createViewModel() + vm.onDrag(1f) + vm.onExpandDrag(-0.1f) + vm.onExpandDragEnd(velocityDpPerSec = -900f) + assertFalse(vm.isCollapsed.value) + assertEquals(0f, vm.collapseProgress.value, 0.001f) + } + + @Test + fun onExpandDragEnd_fastFlingUp_staysCollapsed() { + val vm = createViewModel() + vm.onDrag(1f) + vm.onExpandDrag(-0.9f) + vm.onExpandDragEnd(velocityDpPerSec = 900f) + assertTrue(vm.isCollapsed.value) + assertEquals(1f, vm.collapseProgress.value, 0.001f) + } + // ---- getMonthDays 与 selectedDate 配合 ---- @Test