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>
56 lines
1.3 KiB
TypeScript
56 lines
1.3 KiB
TypeScript
import { expect, test } from "bun:test"
|
|
import type { Page } from "@playwright/test"
|
|
import { measureSessionSwitch } from "../timeline/session-tab-switch-probe"
|
|
|
|
function testPage(waitFailure?: Error) {
|
|
const stops: unknown[] = []
|
|
const page = {
|
|
evaluate: async (_callback: unknown, input?: unknown) => {
|
|
if (input) return
|
|
stops.push(undefined)
|
|
},
|
|
waitForFunction: async () => {
|
|
if (waitFailure) throw waitFailure
|
|
},
|
|
} as unknown as Page
|
|
return { page, stops }
|
|
}
|
|
|
|
function input(run: () => Promise<void>) {
|
|
return {
|
|
destinationIDs: ["destination"],
|
|
sourceIDs: ["source"],
|
|
lastID: "destination",
|
|
href: "/session/destination",
|
|
switch: run,
|
|
}
|
|
}
|
|
|
|
test("stops sampling when the session switch fails", async () => {
|
|
const failure = new Error("switch failed")
|
|
const context = testPage()
|
|
|
|
await expect(
|
|
measureSessionSwitch(
|
|
context.page,
|
|
input(async () => Promise.reject(failure)),
|
|
),
|
|
).rejects.toBe(failure)
|
|
|
|
expect(context.stops).toHaveLength(1)
|
|
})
|
|
|
|
test("stops sampling when the stable wait fails", async () => {
|
|
const failure = new Error("stable wait failed")
|
|
const context = testPage(failure)
|
|
|
|
await expect(
|
|
measureSessionSwitch(
|
|
context.page,
|
|
input(async () => {}),
|
|
),
|
|
).rejects.toBe(failure)
|
|
|
|
expect(context.stops).toHaveLength(1)
|
|
})
|