import { expect, test } from "bun:test" import { useSpring } from "@opencode-ai/ui/motion-spring" import { createRoot, createSignal } from "solid-js" test("snaps spring progress when the session changes", async () => { const state = createRoot((dispose) => { const [target, setTarget] = createSignal(0) const [session, setSession] = createSignal("session-a") const progress = useSpring(target, { visualDuration: 0.3, bounce: 0 }, session) return { dispose, progress, setTarget, setSession } }) await new Promise(queueMicrotask) state.setTarget(1) expect(state.progress()).toBe(0) state.setSession("session-b") expect(state.progress()).toBe(1) state.dispose() })