mirror of
https://github.com/aljazceru/opencode.git
synced 2025-12-25 03:34:22 +01:00
test: rm flaky test
This commit is contained in:
@@ -1,112 +0,0 @@
|
||||
import { describe, expect, test } from "bun:test"
|
||||
import { spawn } from "child_process"
|
||||
|
||||
describe("ACP Server", () => {
|
||||
test("initialize and shutdown", async () => {
|
||||
const proc = spawn("bun", ["run", "dev", "acp"], {
|
||||
cwd: process.cwd(),
|
||||
stdio: ["pipe", "pipe", "pipe"],
|
||||
env: { ...process.env, OPENCODE: "1" },
|
||||
})
|
||||
|
||||
const encoder = new TextEncoder()
|
||||
const decoder = new TextDecoder()
|
||||
|
||||
let initResponse: any = null
|
||||
|
||||
proc.stdout.on("data", (chunk: Buffer) => {
|
||||
const lines = decoder.decode(chunk).split("\n")
|
||||
for (const line of lines) {
|
||||
const trimmed = line.trim()
|
||||
if (!trimmed) continue
|
||||
|
||||
try {
|
||||
const msg = JSON.parse(trimmed)
|
||||
if (msg.id === 1) initResponse = msg
|
||||
} catch (e) {}
|
||||
}
|
||||
})
|
||||
|
||||
// Wait for server to be ready
|
||||
await new Promise((resolve) => setTimeout(resolve, 500))
|
||||
|
||||
proc.stdin.write(
|
||||
encoder.encode(
|
||||
JSON.stringify({
|
||||
jsonrpc: "2.0",
|
||||
id: 1,
|
||||
method: "initialize",
|
||||
params: { protocolVersion: 1 },
|
||||
}) + "\n",
|
||||
),
|
||||
)
|
||||
|
||||
await new Promise((resolve) => setTimeout(resolve, 500))
|
||||
|
||||
expect(initResponse).toBeTruthy()
|
||||
expect(initResponse.result.protocolVersion).toBe(1)
|
||||
expect(initResponse.result.agentCapabilities).toBeTruthy()
|
||||
|
||||
proc.kill()
|
||||
}, 10000)
|
||||
|
||||
test("create session", async () => {
|
||||
const proc = spawn("bun", ["run", "dev", "acp"], {
|
||||
cwd: process.cwd(),
|
||||
stdio: ["pipe", "pipe", "pipe"],
|
||||
env: { ...process.env, OPENCODE: "1" },
|
||||
})
|
||||
|
||||
const encoder = new TextEncoder()
|
||||
const decoder = new TextDecoder()
|
||||
|
||||
let sessionResponse: any = null
|
||||
|
||||
proc.stdout.on("data", (chunk: Buffer) => {
|
||||
const lines = decoder.decode(chunk).split("\n")
|
||||
for (const line of lines) {
|
||||
const trimmed = line.trim()
|
||||
if (!trimmed) continue
|
||||
|
||||
try {
|
||||
const msg = JSON.parse(trimmed)
|
||||
if (msg.id === 2) sessionResponse = msg
|
||||
} catch (e) {}
|
||||
}
|
||||
})
|
||||
|
||||
proc.stdin.write(
|
||||
encoder.encode(
|
||||
JSON.stringify({
|
||||
jsonrpc: "2.0",
|
||||
id: 1,
|
||||
method: "initialize",
|
||||
params: { protocolVersion: 1 },
|
||||
}) + "\n",
|
||||
),
|
||||
)
|
||||
|
||||
await new Promise((resolve) => setTimeout(resolve, 500))
|
||||
|
||||
proc.stdin.write(
|
||||
encoder.encode(
|
||||
JSON.stringify({
|
||||
jsonrpc: "2.0",
|
||||
id: 2,
|
||||
method: "session/new",
|
||||
params: {
|
||||
cwd: process.cwd(),
|
||||
mcpServers: [],
|
||||
},
|
||||
}) + "\n",
|
||||
),
|
||||
)
|
||||
|
||||
await new Promise((resolve) => setTimeout(resolve, 1000))
|
||||
|
||||
expect(sessionResponse).toBeTruthy()
|
||||
expect(sessionResponse.result.sessionId).toBeTruthy()
|
||||
|
||||
proc.kill()
|
||||
}, 10000)
|
||||
})
|
||||
Reference in New Issue
Block a user