d698746951
nix-hashes / compute-hash (blacksmith-4vcpu-ubuntu-2404, x86_64-linux) (push) Has been cancelled
nix-hashes / compute-hash (blacksmith-4vcpu-ubuntu-2404-arm, aarch64-linux) (push) Has been cancelled
nix-hashes / compute-hash (macos-15-intel, x86_64-darwin) (push) Has been cancelled
nix-hashes / compute-hash (macos-latest, aarch64-darwin) (push) Has been cancelled
nix-hashes / update-hashes (push) Has been cancelled
publish / version (push) Has been cancelled
publish / build-cli (push) Has been cancelled
publish / sign-cli-macos (push) Has been cancelled
publish / build-node-cli (map[host:blacksmith-4vcpu-ubuntu-2404 target:linux-x64]) (push) Has been cancelled
publish / build-node-cli (map[host:blacksmith-4vcpu-ubuntu-2404-arm target:linux-arm64]) (push) Has been cancelled
publish / build-node-cli (map[host:blacksmith-4vcpu-windows-2025 target:windows-arm64]) (push) Has been cancelled
publish / build-node-cli (map[host:blacksmith-4vcpu-windows-2025 target:windows-x64]) (push) Has been cancelled
publish / build-node-cli (map[host:macos-26 target:darwin-arm64]) (push) Has been cancelled
publish / sign-cli-windows (push) Has been cancelled
publish / build-electron (map[bun_install_flags:--os=darwin --cpu=arm64 host:macos-26 platform_flag:--mac --arm64 target:aarch64-apple-darwin]) (push) Has been cancelled
publish / build-electron (map[bun_install_flags:--os=darwin --cpu=x64 host:macos-26-intel platform_flag:--mac --x64 target:x86_64-apple-darwin]) (push) Has been cancelled
publish / build-electron (map[host:blacksmith-4vcpu-ubuntu-2404 platform_flag:--linux target:x86_64-unknown-linux-gnu]) (push) Has been cancelled
publish / build-electron (map[host:blacksmith-4vcpu-ubuntu-2404-arm platform_flag:--linux --arm64 target:aarch64-unknown-linux-gnu]) (push) Has been cancelled
publish / build-electron (map[host:blacksmith-4vcpu-windows-2025 platform_flag:--win target:x86_64-pc-windows-msvc]) (push) Has been cancelled
publish / build-electron (map[host:windows-2025 platform_flag:--win --arm64 target:aarch64-pc-windows-msvc]) (push) Has been cancelled
publish / publish (push) Has been cancelled
deploy-www / deploy (push) Has been cancelled
deploy-lab-catalog / deploy (push) Has been cancelled
generate / generate (push) Has been cancelled
typecheck / typecheck (push) Has been cancelled
44 lines
1.1 KiB
TypeScript
44 lines
1.1 KiB
TypeScript
import { expect, test } from "bun:test"
|
|
import { createAutoScroll } from "@opencode-ai/ui/hooks"
|
|
import { createRoot } from "solid-js"
|
|
|
|
test("restores bottom anchoring when Suspense reattaches the scroll viewport", async () => {
|
|
const main = document.createElement("main")
|
|
const surface = document.createElement("div")
|
|
const viewport = document.createElement("div")
|
|
const content = document.createElement("div")
|
|
surface.append(viewport)
|
|
viewport.append(content)
|
|
main.append(surface)
|
|
document.body.append(main)
|
|
|
|
let scrollTop = 200
|
|
Object.defineProperties(viewport, {
|
|
clientHeight: { value: 100 },
|
|
scrollHeight: { value: 300 },
|
|
scrollTop: {
|
|
get: () => scrollTop,
|
|
set: (value: number) => {
|
|
scrollTop = Math.min(value, 200)
|
|
},
|
|
},
|
|
})
|
|
|
|
const dispose = createRoot((dispose) => {
|
|
const scroll = createAutoScroll({ working: () => true })
|
|
scroll.scrollRef(viewport)
|
|
scroll.contentRef(content)
|
|
return dispose
|
|
})
|
|
|
|
surface.remove()
|
|
viewport.scrollTop = 0
|
|
main.append(surface)
|
|
await Promise.resolve()
|
|
|
|
expect(viewport.scrollTop).toBe(200)
|
|
|
|
dispose()
|
|
main.remove()
|
|
})
|