mirror of
https://github.com/anomalyco/opencode.git
synced 2026-07-24 04:01:10 -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>
47 lines
1.4 KiB
TypeScript
47 lines
1.4 KiB
TypeScript
import { expect, test } from "bun:test"
|
|
import type { Page, Route } from "@playwright/test"
|
|
import { mockOpenCodeServer } from "../../utils/mock-server"
|
|
|
|
test("applies message latency after a list response gate is released", async () => {
|
|
const events: string[] = []
|
|
const gate = Promise.withResolvers<void>()
|
|
let handler: ((route: Route) => Promise<void>) | undefined
|
|
const page = {
|
|
route: (_url: string, callback: (route: Route) => Promise<void>) => {
|
|
handler = callback
|
|
return Promise.resolve()
|
|
},
|
|
} as unknown as Page
|
|
await mockOpenCodeServer(page, {
|
|
provider: {},
|
|
directory: "C:/OpenCode",
|
|
project: {},
|
|
sessions: [{ id: "session" }],
|
|
messageDelay: 25,
|
|
beforeMessagesResponse: () => {
|
|
events.push("before")
|
|
return gate.promise
|
|
},
|
|
onMessages: (request) => events.push(request.phase),
|
|
pageMessages: () => {
|
|
events.push("page")
|
|
return { items: [] }
|
|
},
|
|
})
|
|
|
|
const response = handler!({
|
|
request: () => ({ url: () => "http://127.0.0.1:4096/session/session/message" }),
|
|
fulfill: () => {
|
|
events.push("fulfill")
|
|
return Promise.resolve()
|
|
},
|
|
} as unknown as Route)
|
|
expect(events).toEqual(["start", "before"])
|
|
|
|
const released = performance.now()
|
|
gate.resolve()
|
|
await response
|
|
expect(performance.now() - released).toBeGreaterThanOrEqual(20)
|
|
expect(events).toEqual(["start", "before", "page", "end", "fulfill"])
|
|
})
|