mirror of
https://github.com/anomalyco/opencode.git
synced 2026-08-09 18:23:23 +00:00
67 lines
2 KiB
TypeScript
67 lines
2 KiB
TypeScript
import type { Page } from "@playwright/test"
|
|
import { base64Encode } from "@opencode-ai/core/util/encode"
|
|
import { mockOpenCodeServer } from "../../utils/mock-server"
|
|
import { fixture } from "./session-timeline-stress.fixture"
|
|
|
|
export async function installTimelineSettings(page: Page) {
|
|
await page.addInitScript(() => {
|
|
localStorage.setItem(
|
|
"settings.v3",
|
|
JSON.stringify({
|
|
general: {
|
|
editToolPartsExpanded: true,
|
|
shellToolPartsExpanded: true,
|
|
showReasoningSummaries: true,
|
|
showSessionProgressBar: true,
|
|
},
|
|
}),
|
|
)
|
|
})
|
|
}
|
|
|
|
export function mockStressTimeline(page: Page) {
|
|
return mockOpenCodeServer(page, {
|
|
sessions: fixture.sessions,
|
|
provider: fixture.provider,
|
|
directory: fixture.directory,
|
|
project: fixture.project,
|
|
pageMessages: (sessionID) => ({ items: fixture.messages[sessionID as keyof typeof fixture.messages] ?? [] }),
|
|
})
|
|
}
|
|
|
|
export async function installStressSessionTabs(page: Page) {
|
|
const server = `http://${process.env.PLAYWRIGHT_SERVER_HOST ?? "127.0.0.1"}:${process.env.PLAYWRIGHT_SERVER_PORT ?? "4096"}`
|
|
await page.addInitScript(
|
|
({ directory, sourceID, targetID, dirBase64, server }) => {
|
|
localStorage.setItem(
|
|
"opencode.global.dat:server",
|
|
JSON.stringify({
|
|
projects: { local: [{ worktree: directory, expanded: true }] },
|
|
lastProject: { local: directory },
|
|
}),
|
|
)
|
|
localStorage.setItem(
|
|
"opencode.global.dat:tabs",
|
|
JSON.stringify(
|
|
[sourceID, targetID].map((sessionId) => ({
|
|
type: "session",
|
|
server,
|
|
dirBase64,
|
|
sessionId,
|
|
})),
|
|
),
|
|
)
|
|
},
|
|
{
|
|
directory: fixture.directory,
|
|
sourceID: fixture.sourceID,
|
|
targetID: fixture.targetID,
|
|
dirBase64: base64Encode(fixture.directory),
|
|
server,
|
|
},
|
|
)
|
|
}
|
|
|
|
export function stressSessionHref(sessionID: string) {
|
|
return `/${base64Encode(fixture.directory)}/session/${sessionID}`
|
|
}
|