mirror of
https://github.com/anomalyco/opencode.git
synced 2026-07-24 03:09:48 -04:00
9e0d3976e1
Co-authored-by: Frank <frank@anoma.ly> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan <git@brendonovich.dev> Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jack <jack@anoma.ly> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Shoubhit Dash <shoubhit2005@gmail.com> Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: James Long <longster@gmail.com> Co-authored-by: Dustin Deus <deusdustin@gmail.com> Co-authored-by: starptech <starptech@starptechs-MBP.fritz.box> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: 𝓛𝓲𝓽𝓽𝓵𝓮 𝓕𝓻𝓪𝓷𝓴 <little-frank@opencord.local> Co-authored-by: Dax <mail@thdxr.com> Co-authored-by: usrnk1 <7547651+usrnk1@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: runvip <164729189+runvip@users.noreply.github.com> Co-authored-by: opencode <opencode@sst.dev> Co-authored-by: Julian Coy <julian@ex-machina.co> Co-authored-by: Vladimir Glafirov <vglafirov@gitlab.com> Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Kit Langton <kit.langton@gmail.com> Co-authored-by: Simon Klee <hello@simonklee.dk> Co-authored-by: Jay <air@live.ca> Co-authored-by: David Hill <1879069+iamdavidhill@users.noreply.github.com>
27 lines
800 B
TypeScript
27 lines
800 B
TypeScript
import { describe, expect, test } from "bun:test"
|
|
import { createSignal, type JSX } from "solid-js"
|
|
import { showToastV2, toasterV2 } from "@opencode-ai/ui/v2/toast-v2"
|
|
|
|
describe("showToastV2", () => {
|
|
test("creates no reactive computations at call time", () => {
|
|
const [tick, setTick] = createSignal(0)
|
|
let reads = 0
|
|
const icon = (() => {
|
|
reads++
|
|
tick()
|
|
return undefined
|
|
}) as unknown as JSX.Element
|
|
|
|
const id = showToastV2({ description: "test", icon })
|
|
|
|
// Resolving the icon at call time creates an ownerless computation that is
|
|
// never disposed and tracks its dependencies forever; it must only resolve
|
|
// once the toast component renders.
|
|
expect(reads).toBe(0)
|
|
setTick(1)
|
|
expect(reads).toBe(0)
|
|
|
|
toasterV2.dismiss(id)
|
|
})
|
|
})
|