fix(app): preserve todo dock across sessions

This commit is contained in:
Brendan Allan 2026-06-25 11:53:37 +08:00
commit b27da40a48
16 changed files with 630 additions and 205 deletions

View file

@ -0,0 +1,21 @@
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<void>(queueMicrotask)
state.setTarget(1)
expect(state.progress()).toBe(0)
state.setSession("session-b")
await Bun.sleep(0)
expect(state.progress()).toBe(1)
state.dispose()
})